diff options
author | Beniamino Galvani <bgalvani@redhat.com> | 2017-02-23 18:15:10 +0100 |
---|---|---|
committer | Beniamino Galvani <bgalvani@redhat.com> | 2017-03-27 21:51:55 +0200 |
commit | 52b1f0415d558d02afb62f01c8abac75a2ee245b (patch) | |
tree | faab2249d78e54545b264b45bd997e338bed98b8 | |
parent | 6e1616ba69e58d52a217d6be36d26e1d4e3fec16 (diff) | |
download | NetworkManager-52b1f0415d558d02afb62f01c8abac75a2ee245b.tar.gz |
manager: check that slaves connection have a compatible device
When slave connections are autoactivated as dependency to master we
don't check if a compatible device is available before trying to
activate them, leading to the following failed assertion:
nm_act_request_new: assertion 'NM_IS_DEVICE (device)' failed
-rw-r--r-- | src/nm-manager.c | 17 |
1 files changed, 16 insertions, 1 deletions
diff --git a/src/nm-manager.c b/src/nm-manager.c index 6c74a770ee..5b749bdcb2 100644 --- a/src/nm-manager.c +++ b/src/nm-manager.c @@ -2947,6 +2947,7 @@ autoconnect_slaves (NMManager *self, while (iter) { NMSettingsConnection *slave_connection = iter->data; const char *uuid; + NMDevice *slave_device; iter = iter->next; @@ -2974,6 +2975,20 @@ autoconnect_slaves (NMManager *self, g_strdup (uuid), g_free); + slave_device = nm_manager_get_best_device_for_connection (self, + NM_CONNECTION (slave_connection), + FALSE); + if (!slave_device) { + _LOGD (LOGD_CORE, + "will NOT activate slave connection '%s' (%s) as a dependency for master '%s' (%s): " + "no compatible device found", + nm_settings_connection_get_id (slave_connection), + nm_settings_connection_get_uuid (slave_connection), + nm_settings_connection_get_id (master_connection), + nm_settings_connection_get_uuid (master_connection)); + continue; + } + _LOGD (LOGD_CORE, "will activate slave connection '%s' (%s) as a dependency for master '%s' (%s)", nm_settings_connection_get_id (slave_connection), nm_settings_connection_get_uuid (slave_connection), @@ -2985,7 +3000,7 @@ autoconnect_slaves (NMManager *self, slave_connection, NULL, NULL, - nm_manager_get_best_device_for_connection (self, NM_CONNECTION (slave_connection), FALSE), + slave_device, subject, NM_ACTIVATION_TYPE_MANAGED, &local_err); |