summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorBeniamino Galvani <bgalvani@redhat.com>2017-02-24 09:08:02 +0100
committerBeniamino Galvani <bgalvani@redhat.com>2017-03-27 21:51:55 +0200
commit7fd987f7becc16cfca8092caba4d085c7dd512c1 (patch)
tree0c8bc4b28d021548dd64cf111915b28473f36143
parent39d0559d9a7a2fe334d0f730f397fc7872a89faa (diff)
downloadNetworkManager-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.c11
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);