From 211343c77944333d550301da4d757e343e5f5390 Mon Sep 17 00:00:00 2001 From: =?utf8?q?Jos=C3=A9=20Bollo?= Date: Fri, 22 Jun 2018 14:00:43 +0200 Subject: [PATCH 1/1] afb-client-demo: Add option to keep running MIME-Version: 1.0 Content-Type: text/plain; charset=utf8 Content-Transfer-Encoding: 8bit This option allows to keep the client running even when its input is closed. This will be used for tests and for reporting because it allows to write: echo 'monitor trace {"add":{"api":"*","request":"*","event":"*","session":"*","global":"*"}}' | afb-client -k $WSURL > logfile to capture all events. Change-Id: If1c7804556190fd8ec9388260fe014c50b498b1d Signed-off-by: José Bollo --- src/main-afb-client-demo.c | 16 ++++++++++++---- 1 file changed, 12 insertions(+), 4 deletions(-) diff --git a/src/main-afb-client-demo.c b/src/main-afb-client-demo.c index 4e865879..fab56f1d 100644 --- a/src/main-afb-client-demo.c +++ b/src/main-afb-client-demo.c @@ -80,6 +80,7 @@ static int exonrep; static int callcount; static int human; static int raw; +static int keeprun; static int direct; static int echo; static sd_event_source *evsrc; @@ -100,6 +101,7 @@ static void usage(int status, char *arg0) " --help, -h Display this help\n" " --human, -H Display human readable JSON\n" " --raw, -r Raw output (default)\n" + " --keep-running, -k Keep running until disconnect, even if input closed\n" "Example:\n" " %s --human 'localhost:1234/api?token=HELLO&uuid=magic' hello ping\n" "\n", name @@ -135,6 +137,9 @@ int main(int ac, char **av, char **env) else if (!strcmp(av[1], "--break")) /* request to break connection */ breakcon = 1; + else if (!strcmp(av[1], "--keep-running")) /* request to break connection */ + keeprun = 1; + else if (!strcmp(av[1], "--echo")) /* request to echo inputs */ echo = 1; @@ -149,6 +154,7 @@ int main(int ac, char **av, char **env) case 'r': raw = 1; break; case 'd': direct = 1; break; case 'b': breakcon = 1; break; + case 'k': keeprun = 1; break; case 'e': echo = 1; break; default: usage(av[1][rc] != 'h', a0); } @@ -195,7 +201,7 @@ int main(int ac, char **av, char **env) sd_event_add_io(loop, &evsrc, 0, EPOLLIN, io_event_callback, NULL); } else { /* the request is defined by the arguments */ - exonrep = 1; + exonrep = !keeprun; if (direct) pws_call(av[2], av[3]); else @@ -336,9 +342,11 @@ static int io_event_callback(sd_event_source *src, int fd, uint32_t revents, voi exit(1); } if (rc == 0) { - if (!callcount) - exit(0); - exonrep = 1; + if (!keeprun) { + if (!callcount) + exit(0); + exonrep = 1; + } sd_event_source_unref(evsrc); } count += (size_t)rc; -- 2.16.6