diff options
author | Toni Uhlig <matzeton@googlemail.com> | 2022-11-02 00:01:57 +0100 |
---|---|---|
committer | Toni Uhlig <matzeton@googlemail.com> | 2022-11-02 00:01:57 +0100 |
commit | 25f4ef74acb73340bd7cba7a7d45ab7191232283 (patch) | |
tree | 0facc8be5feb4d75aaf261cb003e0ddf6a938552 /examples/c-analysed | |
parent | d55e39792970234b0b07582378cc3ec07ab62bf3 (diff) |
Improved examples.
Signed-off-by: Toni Uhlig <matzeton@googlemail.com>
Diffstat (limited to 'examples/c-analysed')
-rw-r--r-- | examples/c-analysed/c-analysed.c | 78 |
1 files changed, 41 insertions, 37 deletions
diff --git a/examples/c-analysed/c-analysed.c b/examples/c-analysed/c-analysed.c index 0fabd223a..5e6e14fa8 100644 --- a/examples/c-analysed/c-analysed.c +++ b/examples/c-analysed/c-analysed.c @@ -523,13 +523,47 @@ static int parse_options(int argc, char ** argv) return 0; } -int main(int argc, char ** argv) +static int mainloop(void) { - signal(SIGUSR1, sighandler); - signal(SIGINT, sighandler); - signal(SIGTERM, sighandler); - signal(SIGPIPE, sighandler); + enum nDPIsrvd_read_return read_ret = READ_OK; + + while (main_thread_shutdown == 0) + { + read_ret = nDPIsrvd_read(sock); + if (errno == EINTR) + { + continue; + } + if (read_ret == READ_TIMEOUT) + { + printf("No data received during the last %llu second(s).\n", + (long long unsigned int)sock->read_timeout.tv_sec); + continue; + } + if (read_ret != READ_OK) + { + printf("Could not read from socket: %s\n", nDPIsrvd_enum_to_string(read_ret)); + break; + } + + enum nDPIsrvd_parse_return parse_ret = nDPIsrvd_parse_all(sock); + if (parse_ret != PARSE_NEED_MORE_DATA) + { + printf("Could not parse json string: %s\n", nDPIsrvd_enum_to_string(parse_ret)); + break; + } + } + + if (main_thread_shutdown == 0 && read_ret != READ_OK) + { + return 1; + } + return 0; +} + +int main(int argc, char ** argv) +{ sock = nDPIsrvd_socket_init(0, 0, 0, 0, simple_json_callback, NULL, NULL); if (sock == NULL) { @@ -581,41 +615,11 @@ int main(int argc, char ** argv) return 1; } - enum nDPIsrvd_read_return read_ret = READ_OK; - while (main_thread_shutdown == 0) - { - read_ret = nDPIsrvd_read(sock); - if (errno == EINTR) - { - continue; - } - if (read_ret == READ_TIMEOUT) - { - printf("No data received during the last %llu second(s).\n", - (long long unsigned int)sock->read_timeout.tv_sec); - continue; - } - if (read_ret != READ_OK) - { - break; - } - - enum nDPIsrvd_parse_return parse_ret = nDPIsrvd_parse_all(sock); - if (parse_ret != PARSE_NEED_MORE_DATA) - { - printf("Could not parse json string: %s\n", nDPIsrvd_enum_to_string(parse_ret)); - break; - } - } - - if (main_thread_shutdown == 0 && read_ret != READ_OK) - { - printf("Parse read %s\n", nDPIsrvd_enum_to_string(read_ret)); - } + int retval = mainloop(); nDPIsrvd_socket_free(&sock); daemonize_shutdown(pidfile); closelog(); - return read_ret; + return retval; } |