X-Git-Url: https://gerrit.automotivelinux.org/gerrit/gitweb?a=blobdiff_plain;f=src%2Fafb-client-demo.c;h=434c6d17b0ebaa17e526c2fe11a55021949cd1a2;hb=5d248158cc380d0a164fa56b46a7bdede4115407;hp=6f494a6a0581dc6de4c61a6c302e62fc07adc924;hpb=f5c013e32d1c8ee931bec45cee7bc04c5d536d50;p=src%2Fapp-framework-binder.git diff --git a/src/afb-client-demo.c b/src/afb-client-demo.c index 6f494a6a..434c6d17 100644 --- a/src/afb-client-demo.c +++ b/src/afb-client-demo.c @@ -1,5 +1,5 @@ -/* - * Copyright (C) 2015, 2016 "IoT.bzh" +/* + * Copyright (C) 2015, 2016, 2017 "IoT.bzh" * Author "Fulup Ar Foll" * Author José Bollo * @@ -30,7 +30,6 @@ #include -#include "afb-common.h" /* TODO: remove dependency to afb-common.h */ #include "afb-wsj1.h" #include "afb-ws-client.h" @@ -66,6 +65,9 @@ static void usage(int status, char *arg0) /* entry function */ int main(int ac, char **av, char **env) { + int rc; + sd_event *loop; + /* check the argument count */ if (ac != 2 && ac != 4 && ac != 5) usage(1, av[0]); @@ -74,8 +76,15 @@ int main(int ac, char **av, char **env) if (!strcmp(av[1], "-h") || !strcmp(av[1], "--help")) usage(0, av[0]); + /* get the default event loop */ + rc = sd_event_default(&loop); + if (rc < 0) { + fprintf(stderr, "connection to default event loop failed: %s\n", strerror(-rc)); + return 1; + } + /* connect the websocket wsj1 to the uri given by the first argument */ - wsj1 = afb_ws_client_connect_wsj1(av[1], &itf, NULL); + wsj1 = afb_ws_client_connect_wsj1(loop, av[1], &itf, NULL); if (wsj1 == NULL) { fprintf(stderr, "connection to %s failed: %m\n", av[1]); return 1; @@ -85,7 +94,7 @@ int main(int ac, char **av, char **env) if (ac == 2) { /* get requests from stdin */ fcntl(0, F_SETFL, O_NONBLOCK); - sd_event_add_io(afb_common_get_event_loop(), &evsrc, 0, EPOLLIN, io_event_callback, NULL); + sd_event_add_io(loop, &evsrc, 0, EPOLLIN, io_event_callback, NULL); } else { /* the request is defined by the arguments */ exonrep = 1; @@ -94,7 +103,7 @@ int main(int ac, char **av, char **env) /* loop until end */ for(;;) - sd_event_run(afb_common_get_event_loop(), 30000000); + sd_event_run(loop, 30000000); return 0; } @@ -213,9 +222,10 @@ static int io_event_callback(sd_event_source *src, int fd, uint32_t revents, voi rest[0] = i; while(i < count && line[i] != '\n') i++; rest[1] = i; if (i == count) break; line[i++] = 0; - if (api[0] == api[1] || verb[0] == verb[1]) - fprintf(stderr, "bad line: %s\n", line+pos); - else { + if (api[0] == api[1] || verb[0] == verb[1]) { + if (api[0] != api[1] || verb[0] != verb[1]) + fprintf(stderr, "bad line: %s\n", line+pos); + } else { line[api[1]] = line[verb[1]] = 0; emit(line + api[0], line + verb[0], line + rest[0]); }