diff --git a/src/core/main.c b/src/core/main.c index 4c436a631..4c7de6cd3 100644 --- a/src/core/main.c +++ b/src/core/main.c @@ -508,6 +508,9 @@ main(int argc, char *argv[]) nm_log_dbg(LOGD_CORE, "setting up local loopback"); nm_platform_link_change_flags(NM_PLATFORM_GET, 1, IFF_UP, TRUE); + if (!nm_dbus_manager_request_name_sync(nm_dbus_manager_get())) + goto done; + success = TRUE; if (configure_and_quit == FALSE) { diff --git a/src/core/nm-dbus-manager.c b/src/core/nm-dbus-manager.c index 5ecd9fe68..0bde5971d 100644 --- a/src/core/nm-dbus-manager.c +++ b/src/core/nm-dbus-manager.c @@ -1421,6 +1421,11 @@ nm_dbus_manager_request_name_sync(NMDBusManager *self) priv = NM_DBUS_MANAGER_GET_PRIVATE(self); + if (priv->objmgr_registration_id == 0) { + /* Do nothing. We're presumably in the configure-and-quit mode. */ + return TRUE; + } + g_return_val_if_fail(G_IS_DBUS_CONNECTION(priv->main_dbus_connection), FALSE); ret = g_dbus_connection_call_sync( @@ -1499,9 +1504,6 @@ nm_dbus_manager_setup(NMDBusManager *self) _LOGD("D-Bus connection created and ObjectManager object registered"); - if (!nm_dbus_manager_request_name_sync(self)) - return FALSE; - return TRUE; }