diff options
author | Thomas Haller <thaller@redhat.com> | 2017-03-14 12:14:21 +0100 |
---|---|---|
committer | Thomas Haller <thaller@redhat.com> | 2017-03-15 10:33:44 +0100 |
commit | 4d71327c82825bbc723e797b9c82c3bd34f69207 (patch) | |
tree | cfca6c78784954339d49fd59cbc6dbec7b856f03 | |
parent | 6845b9b80a9fcec9d2c9e7b56a37329f38089f2e (diff) | |
download | NetworkManager-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.c | 12 |
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 */ |