From 528fc5b010cba6418f92af0790c0d89e4050f52f Mon Sep 17 00:00:00 2001 From: Thomas Haller Date: Wed, 17 Feb 2016 16:12:46 +0100 Subject: device: optimize nm_manager_get_connection_iface() --- src/nm-manager.c | 14 ++++++++++++++ 1 file changed, 14 insertions(+) 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, -- cgit v1.2.1