diff options
author | Felix Fietkau <nbd@openwrt.org> | 2011-02-11 01:21:07 +0100 |
---|---|---|
committer | Felix Fietkau <nbd@openwrt.org> | 2011-02-11 01:21:07 +0100 |
commit | fb45e383c2985c43a9aaf42050fef039473745ce (patch) | |
tree | b3154b4b3d4dfb8cd8518f89fd404e249c8cbf82 /cli.c | |
parent | 756d284a0add0796a92d874be58c61b4b66852c7 (diff) | |
download | ubus-fb45e383c2985c43a9aaf42050fef039473745ce.tar.gz |
remove separate catch all list, always require a pattern argument for registering events, even if it is just *
Diffstat (limited to 'cli.c')
-rw-r--r-- | cli.c | 20 |
1 files changed, 14 insertions, 6 deletions
@@ -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", |