aboutsummaryrefslogtreecommitdiff
path: root/examples/c-analysed
diff options
context:
space:
mode:
authorToni Uhlig <matzeton@googlemail.com>2022-11-02 00:01:57 +0100
committerToni Uhlig <matzeton@googlemail.com>2022-11-02 00:01:57 +0100
commit25f4ef74acb73340bd7cba7a7d45ab7191232283 (patch)
tree0facc8be5feb4d75aaf261cb003e0ddf6a938552 /examples/c-analysed
parentd55e39792970234b0b07582378cc3ec07ab62bf3 (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.c78
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;
}