summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorThomas Haller <thaller@redhat.com>2017-03-14 12:14:21 +0100
committerThomas Haller <thaller@redhat.com>2017-03-15 10:33:44 +0100
commit4d71327c82825bbc723e797b9c82c3bd34f69207 (patch)
treecfca6c78784954339d49fd59cbc6dbec7b856f03
parent6845b9b80a9fcec9d2c9e7b56a37329f38089f2e (diff)
downloadNetworkManager-4d71327c82825bbc723e797b9c82c3bd34f69207.tar.gz
manager: process events of platform cache during nm_manager_start()
Possibly pending messages from the netlink socket were not processed since the platform instance was created earlier. As nm_manager_start() may take a long time to run, make sure that there are no pending messages before querying the devices.
-rw-r--r--src/nm-manager.c12
1 files changed, 7 insertions, 5 deletions
diff --git a/src/nm-manager.c b/src/nm-manager.c
index df7b8eb33a..07237f50f1 100644
--- a/src/nm-manager.c
+++ b/src/nm-manager.c
@@ -4814,11 +4814,6 @@ nm_manager_start (NMManager *self, GError **error)
if (!nm_settings_start (priv->settings, error))
return FALSE;
- g_signal_connect (NM_PLATFORM_GET,
- NM_PLATFORM_SIGNAL_LINK_CHANGED,
- G_CALLBACK (platform_link_cb),
- self);
-
/* Set initial radio enabled/disabled state */
for (i = 0; i < RFKILL_TYPE_MAX; i++) {
RadioState *rstate = &priv->radio_states[i];
@@ -4851,6 +4846,13 @@ nm_manager_start (NMManager *self, GError **error)
nm_device_factory_manager_load_factories (_register_device_factory, self);
nm_device_factory_manager_for_each_factory (start_factory, NULL);
+ nm_platform_process_events (NM_PLATFORM_GET);
+
+ g_signal_connect (NM_PLATFORM_GET,
+ NM_PLATFORM_SIGNAL_LINK_CHANGED,
+ G_CALLBACK (platform_link_cb),
+ self);
+
platform_query_devices (self);
/* Load VPN plugins */