Description of what the patch does is missing John
On 26/02/2016 03:27, Zhao, Gang wrote: > Signed-off-by: Zhao, Gang <[email protected]> > --- > cli.c | 25 ++++++++++++++++++++----- > 1 file changed, 20 insertions(+), 5 deletions(-) > > diff --git a/cli.c b/cli.c > index c476f35..24b5d22 100644 > --- a/cli.c > +++ b/cli.c > @@ -125,15 +125,29 @@ static int ubus_cli_call(struct ubus_context *ctx, int > argc, char **argv) > return ubus_invoke(ctx, id, argv[1], b.head, receive_call_result_data, > NULL, timeout * 1000); > } > > +struct cli_listen_data { > + struct uloop_timeout timeout; > + struct ubus_event_handler ev; > + bool timed_out; > +}; > + > +static void listen_timeout(struct uloop_timeout *timeout) > +{ > + struct cli_listen_data *data = container_of(timeout, struct > cli_listen_data, timeout); > + data->timed_out = true; > + uloop_end(); > +} > + > static int ubus_cli_listen(struct ubus_context *ctx, int argc, char **argv) > { > - struct ubus_event_handler listener; > + struct cli_listen_data data = { > + .timeout.cb = listen_timeout, > + .ev.cb = receive_event, > + .timed_out = false, > + }; > const char *event; > int ret = 0; > > - memset(&listener, 0, sizeof(listener)); > - listener.cb = receive_event; > - > if (argc > 0) { > event = argv[0]; > } else { > @@ -142,7 +156,7 @@ static int ubus_cli_listen(struct ubus_context *ctx, int > argc, char **argv) > } > > do { > - ret = ubus_register_event_handler(ctx, &listener, event); > + ret = ubus_register_event_handler(ctx, &data.ev, event); > if (ret) > break; > > @@ -163,6 +177,7 @@ static int ubus_cli_listen(struct ubus_context *ctx, int > argc, char **argv) > > uloop_init(); > ubus_add_uloop(ctx); > + uloop_timeout_set(&data.timeout, timeout * 1000); > uloop_run(); > uloop_done(); > > _______________________________________________ openwrt-devel mailing list [email protected] https://lists.openwrt.org/cgi-bin/mailman/listinfo/openwrt-devel
