diff --git a/client/dbus-proxy.c b/client/dbus-proxy.c index e7b18835..bce349cd 100644 --- a/client/dbus-proxy.c +++ b/client/dbus-proxy.c @@ -696,14 +696,18 @@ static void get_managed_objects_callback(struct l_dbus_message *message, while (l_dbus_message_iter_next_entry(&objects, &path, &object)) proxy_interface_create(path, &object); - if (!command_is_interactive_mode()) { - command_noninteractive_trigger(); + if (!command_is_interactive_mode() && !command_has_options()) + goto proceed; + + if (!agent_manager_register_agent()) { + l_main_quit(); return; } - if (!agent_manager_register_agent()) { - l_main_quit(); +proceed: + if (!command_is_interactive_mode()) { + command_noninteractive_trigger(); return; } @@ -816,7 +820,9 @@ bool dbus_proxy_exit(void) { struct interface_type_desc *desc; - if (command_is_interactive_mode()) + if (command_is_interactive_mode() || + (!command_is_interactive_mode() && + command_has_options())) agent_manager_unregister_agent(); for (desc = __start___interface; desc < __stop___interface; desc++) {