diff options
author | Beniamino Galvani <bgalvani@redhat.com> | 2017-02-24 09:08:02 +0100 |
---|---|---|
committer | Beniamino Galvani <bgalvani@redhat.com> | 2017-03-27 21:51:55 +0200 |
commit | 7fd987f7becc16cfca8092caba4d085c7dd512c1 (patch) | |
tree | 0c8bc4b28d021548dd64cf111915b28473f36143 | |
parent | 39d0559d9a7a2fe334d0f730f397fc7872a89faa (diff) | |
download | NetworkManager-7fd987f7becc16cfca8092caba4d085c7dd512c1.tar.gz |
manager: change nm_manager_get_best_device_for_connection() signature
Add a @unavailable_devices argument that specifies an hash table of
devices to be excluded from the search.
-rw-r--r-- | src/nm-manager.c | 11 |
1 files changed, 8 insertions, 3 deletions
diff --git a/src/nm-manager.c b/src/nm-manager.c index 5b749bdcb2..1f81a29d83 100644 --- a/src/nm-manager.c +++ b/src/nm-manager.c @@ -2473,7 +2473,8 @@ nm_manager_get_device_paths (NMManager *self) static NMDevice * nm_manager_get_best_device_for_connection (NMManager *self, NMConnection *connection, - gboolean for_user_request) + gboolean for_user_request, + GHashTable *unavailable_devices) { const GSList *devices, *iter; NMActiveConnection *ac; @@ -2494,6 +2495,9 @@ nm_manager_get_best_device_for_connection (NMManager *self, for (iter = devices; iter; iter = g_slist_next (iter)) { NMDevice *device = NM_DEVICE (iter->data); + if (unavailable_devices && g_hash_table_contains (unavailable_devices, device)) + continue; + if (nm_device_check_connection_available (device, connection, flags, NULL)) return device; } @@ -2977,7 +2981,8 @@ autoconnect_slaves (NMManager *self, slave_device = nm_manager_get_best_device_for_connection (self, NM_CONNECTION (slave_connection), - FALSE); + FALSE, + NULL); if (!slave_device) { _LOGD (LOGD_CORE, "will NOT activate slave connection '%s' (%s) as a dependency for master '%s' (%s): " @@ -3617,7 +3622,7 @@ validate_activation_request (NMManager *self, goto error; } } else - device = nm_manager_get_best_device_for_connection (self, connection, TRUE); + device = nm_manager_get_best_device_for_connection (self, connection, TRUE, NULL); if (!device && !vpn) { gboolean is_software = nm_connection_is_virtual (connection); |