* [PATCH v2] dbus: register interface before acquiring name
@ 2026-01-31 21:53 Ronan Pigott
2026-02-05 18:32 ` Denis Kenzior
0 siblings, 1 reply; 2+ messages in thread
From: Ronan Pigott @ 2026-01-31 21:53 UTC (permalink / raw)
To: iwd; +Cc: Ronan Pigott
If the interface isn't available by the time we acquire the well-known
name, clients can get confused when the expected interfaces are missing
during bus activation.
---
changes in v2:
- put the NL80211 request back into the name handler
src/main.c | 38 +++++++++++++++++---------------------
1 file changed, 17 insertions(+), 21 deletions(-)
diff --git a/src/main.c b/src/main.c
index beaf228fb3cd..27b2ced2a0b0 100644
--- a/src/main.c
+++ b/src/main.c
@@ -197,29 +197,12 @@ static void request_name_callback(struct l_dbus *dbus, bool success,
{
if (!success) {
l_error("Name request failed");
- goto fail_exit;
+ l_main_quit();
}
- if (!l_dbus_object_manager_enable(dbus, "/"))
- l_warn("Unable to register the ObjectManager");
-
- if (!l_dbus_object_add_interface(dbus, IWD_BASE_PATH,
- IWD_DAEMON_INTERFACE,
- NULL) ||
- !l_dbus_object_add_interface(dbus, IWD_BASE_PATH,
- L_DBUS_INTERFACE_PROPERTIES,
- NULL))
- l_info("Unable to add %s and/or %s at %s",
- IWD_DAEMON_INTERFACE, L_DBUS_INTERFACE_PROPERTIES,
- IWD_BASE_PATH);
-
/* TODO: Always request nl80211 for now, ignoring auto-loading */
l_genl_request_family(genl, NL80211_GENL_NAME, nl80211_appeared,
NULL, NULL);
- return;
-
-fail_exit:
- l_main_quit();
}
static struct l_dbus_message *iwd_dbus_get_info(struct l_dbus *dbus,
@@ -249,12 +232,25 @@ static void dbus_ready(void *user_data)
{
struct l_dbus *dbus = user_data;
- l_dbus_name_acquire(dbus, "net.connman.iwd", false, false, false,
- request_name_callback, NULL);
-
l_dbus_register_interface(dbus, IWD_DAEMON_INTERFACE,
iwd_setup_deamon_interface,
NULL, false);
+
+ if (!l_dbus_object_manager_enable(dbus, "/"))
+ l_warn("Unable to register the ObjectManager");
+
+ if (!l_dbus_object_add_interface(dbus, IWD_BASE_PATH,
+ IWD_DAEMON_INTERFACE,
+ NULL) ||
+ !l_dbus_object_add_interface(dbus, IWD_BASE_PATH,
+ L_DBUS_INTERFACE_PROPERTIES,
+ NULL))
+ l_info("Unable to add %s and/or %s at %s",
+ IWD_DAEMON_INTERFACE, L_DBUS_INTERFACE_PROPERTIES,
+ IWD_BASE_PATH);
+
+ l_dbus_name_acquire(dbus, "net.connman.iwd", false, false, false,
+ request_name_callback, NULL);
}
static void dbus_disconnected(void *user_data)
--
2.52.0
^ permalink raw reply related [flat|nested] 2+ messages in thread* Re: [PATCH v2] dbus: register interface before acquiring name
2026-01-31 21:53 [PATCH v2] dbus: register interface before acquiring name Ronan Pigott
@ 2026-02-05 18:32 ` Denis Kenzior
0 siblings, 0 replies; 2+ messages in thread
From: Denis Kenzior @ 2026-02-05 18:32 UTC (permalink / raw)
To: Ronan Pigott, iwd
Hi Ronan,
On 1/31/26 3:53 PM, Ronan Pigott wrote:
> If the interface isn't available by the time we acquire the well-known
> name, clients can get confused when the expected interfaces are missing
> during bus activation.
> ---
> changes in v2:
> - put the NL80211 request back into the name handler
> src/main.c | 38 +++++++++++++++++---------------------
> 1 file changed, 17 insertions(+), 21 deletions(-)
>
Applied, thanks.
Regards,
-Denis
^ permalink raw reply [flat|nested] 2+ messages in thread
end of thread, other threads:[~2026-02-05 18:32 UTC | newest]
Thread overview: 2+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2026-01-31 21:53 [PATCH v2] dbus: register interface before acquiring name Ronan Pigott
2026-02-05 18:32 ` Denis Kenzior
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox