diff options
author | Thomas Haller <thaller@redhat.com> | 2016-02-17 16:12:46 +0100 |
---|---|---|
committer | Thomas Haller <thaller@redhat.com> | 2016-02-17 18:43:45 +0100 |
commit | e93abf0552cf67c7fac5af9d365a833e747192f5 (patch) | |
tree | a1ab8f8295b85664408e4087e181b9b4e7929708 | |
parent | f31954c07132092e30981b5fff557000a312e0a8 (diff) | |
download | NetworkManager-e93abf0552cf67c7fac5af9d365a833e747192f5.tar.gz |
device: optimize nm_manager_get_connection_iface()th/lr/conn-device-ifname
-rw-r--r-- | src/nm-manager.c | 14 |
1 files changed, 14 insertions, 0 deletions
diff --git a/src/nm-manager.c b/src/nm-manager.c index 4eb5b81eab..589fc10f68 100644 --- a/src/nm-manager.c +++ b/src/nm-manager.c @@ -987,6 +987,20 @@ nm_manager_get_connection_iface (NMManager *self, return NULL; } + if ( !out_parent + && !NM_DEVICE_FACTORY_GET_INTERFACE (factory)->get_connection_iface) { + /* optimization. Shortcut lookup of the partent device. */ + iface = g_strdup (nm_connection_get_interface_name (connection)); + if (!iface) { + g_set_error (error, + NM_MANAGER_ERROR, + NM_MANAGER_ERROR_FAILED, + "failed to determine interface name: error determine name for %s", + nm_connection_get_connection_type (connection)); + } + return iface; + } + parent = find_parent_device_for_connection (self, connection, factory); iface = nm_device_factory_get_connection_iface (factory, connection, |