3
0
mirror of https://git.kernel.org/pub/scm/network/wireless/iwd.git synced 2026-02-10 06:07:56 +01:00

Compare commits

..

2 Commits
3.10 ... master

Author SHA1 Message Date
Marcel Holtmann
9d9d1a8ce1 Release 3.11 2026-02-09 10:41:13 +01:00
Ronan Pigott
b49ed01626 dbus: register interface before acquiring name
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.
2026-02-05 12:29:46 -06:00
3 changed files with 21 additions and 22 deletions

View File

@ -1,3 +1,6 @@
ver 3.11:
Fix issue with interface registration before acquiring name.
ver 3.10:
Fix issue with handling neighbor report on BSS TM request.
Fix issue with handling deauth and FT association failure.

View File

@ -1,5 +1,5 @@
AC_PREREQ([2.69])
AC_INIT([iwd],[3.10])
AC_INIT([iwd],[3.11])
AC_CONFIG_HEADERS(config.h)
AC_CONFIG_AUX_DIR(build-aux)

View File

@ -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)