iwd: fix some non-interactive commands.

`get-networks` was one of the affected commands; it's especially
relevant here, given its possible usage in scripts.
This commit is contained in:
Érico Nogueira 2021-11-11 23:00:36 -03:00
parent 9108bab4b8
commit 1f9aab20b4
2 changed files with 32 additions and 1 deletions

View file

@ -0,0 +1,31 @@
From 4e61d04e0de69a2c02bb39c774adf84dcbae6bb9 Mon Sep 17 00:00:00 2001
From: James Prestwood <prestwoj@gmail.com>
Date: Tue, 2 Nov 2021 12:57:49 -0700
Subject: client: special case daemon interface for non-interactive
In non-interactive mode, when a dbus method call returns the process
exits. This is true for all methods except agent requests since e.g.
Connect() call automatically requests credentials and the client must
wait for that to return before exiting. The new daemon interface must
also be treated in the same way and not exit.
---
client/dbus-proxy.c | 3 ++-
1 file changed, 2 insertions(+), 1 deletion(-)
diff --git a/client/dbus-proxy.c b/client/dbus-proxy.c
index ab9fb5a5..0373a3df 100644
--- a/client/dbus-proxy.c
+++ b/client/dbus-proxy.c
@@ -315,7 +315,8 @@ static void proxy_callback(struct l_dbus_message *message, void *user_data)
}
proxy = callback_data->user_data;
- if (!strcmp(proxy->type->interface, IWD_AGENT_MANAGER_INTERFACE))
+ if (!strcmp(proxy->type->interface, IWD_AGENT_MANAGER_INTERFACE) ||
+ !strcmp(proxy->type->interface, IWD_DAEMON_INTERFACE))
return;
quit:
--
cgit 1.2.3-1.el7

View file

@ -1,7 +1,7 @@
# Template file for 'iwd' # Template file for 'iwd'
pkgname=iwd pkgname=iwd
version=1.19 version=1.19
revision=1 revision=2
build_style=gnu-configure build_style=gnu-configure
configure_args="--disable-systemd-service --enable-pie configure_args="--disable-systemd-service --enable-pie
--enable-dbus-policy --enable-wired" --enable-dbus-policy --enable-wired"