diff options
-rw-r--r-- | src/nm-manager.c | 22 | ||||
-rw-r--r-- | src/nm-manager.h | 1 |
2 files changed, 23 insertions, 0 deletions
diff --git a/src/nm-manager.c b/src/nm-manager.c index dfbe10c049..8967031ea2 100644 --- a/src/nm-manager.c +++ b/src/nm-manager.c @@ -2288,6 +2288,28 @@ nm_manager_get_devices (NMManager *manager) return NM_MANAGER_GET_PRIVATE (manager)->devices; } +const char ** +nm_manager_get_device_paths (NMManager *self) +{ + const GSList *devices, *iter; + GPtrArray *paths; + const char *path; + + g_return_val_if_fail (NM_IS_MANAGER (self), NULL); + devices = NM_MANAGER_GET_PRIVATE (self)->devices; + paths = g_ptr_array_new (); + + for (iter = devices; iter; iter = g_slist_next (iter)) { + path = nm_exported_object_get_path (NM_EXPORTED_OBJECT (iter->data)); + if (path) + g_ptr_array_add (paths, (gpointer) path); + } + + g_ptr_array_add (paths, NULL); + + return (const char **) g_ptr_array_free (paths, FALSE); +} + static NMDevice * nm_manager_get_connection_device (NMManager *self, NMConnection *connection) diff --git a/src/nm-manager.h b/src/nm-manager.h index fb97951ce3..9e0b4e3e79 100644 --- a/src/nm-manager.h +++ b/src/nm-manager.h @@ -91,6 +91,7 @@ void nm_manager_write_device_state (NMManager *manager); /* Device handling */ const GSList * nm_manager_get_devices (NMManager *manager); +const char ** nm_manager_get_device_paths (NMManager *self); NMDevice * nm_manager_get_device_by_ifindex (NMManager *manager, int ifindex); |