From c806e6a32a1dabbe9d0e642ad9b1033af270bf53 Mon Sep 17 00:00:00 2001 From: Tim Kourt Date: Thu, 15 Aug 2019 11:40:42 -0700 Subject: [PATCH] client: Don't quit on agent manager's callbacks in non-interactive mode In non-interactive mode the agent managers' agent registration callback precede the actual action command's callback such as 'connect'. iwctl continues execution until anything else besides the agent registration callback arrives unless the agent registration has failed. --- client/dbus-proxy.c | 10 +++++++++- 1 file changed, 9 insertions(+), 1 deletion(-) diff --git a/client/dbus-proxy.c b/client/dbus-proxy.c index bce349cd..c2306ece 100644 --- a/client/dbus-proxy.c +++ b/client/dbus-proxy.c @@ -299,6 +299,7 @@ struct proxy_callback_data { static void proxy_callback(struct l_dbus_message *message, void *user_data) { struct proxy_callback_data *callback_data = user_data; + const struct proxy_interface *proxy; const char *name; const char *text; @@ -308,9 +309,16 @@ static void proxy_callback(struct l_dbus_message *message, void *user_data) if (command_is_interactive_mode()) return; - if (l_dbus_message_get_error(message, &name, &text)) + if (l_dbus_message_get_error(message, &name, &text)) { command_set_exit_status(EXIT_FAILURE); + goto quit; + } + proxy = callback_data->user_data; + if (!strcmp(proxy->type->interface, IWD_AGENT_MANAGER_INTERFACE)) + return; + +quit: l_main_quit(); }