X-Git-Url: http://git.archive.openwrt.org/?p=project%2Fubus.git;a=blobdiff_plain;f=cli.c;h=d020b8e652cbaea953dcb92ea5d6c0b682c5ccd3;hp=61f1bb22a32a7386e3d1a898b49689e1382b168d;hb=fb45e383c2985c43a9aaf42050fef039473745ce;hpb=756d284a0add0796a92d874be58c61b4b66852c7;ds=sidebyside diff --git a/cli.c b/cli.c index 61f1bb2..d020b8e 100644 --- a/cli.c +++ b/cli.c @@ -108,17 +108,25 @@ static int ubus_cli_listen(struct ubus_context *ctx, int argc, char **argv) memset(&listener, 0, sizeof(listener)); listener.cb = receive_event; - if (!argc) { + if (argc > 0) { + event = argv[0]; + } else { event = "*"; - ret = ubus_register_event_handler(ctx, &listener, NULL); + argc = 1; } - for (;argc;argv++, argc--) { - event = argv[0]; - ret = ubus_register_event_handler(ctx, &listener, argv[0]); + do { + ret = ubus_register_event_handler(ctx, &listener, event); if (ret) break; - } + + argv++; + argc--; + if (argc <= 0) + break; + + event = argv[0]; + } while (1); if (ret) { fprintf(stderr, "Error while registering for event '%s': %s\n",