diff options
author | Aleksander Morgado <aleksander@aleksander.es> | 2015-12-03 12:01:00 +0100 |
---|---|---|
committer | Aleksander Morgado <aleksander@aleksander.es> | 2015-12-03 12:01:14 +0100 |
commit | 4c036eb8f96cae06da1f968fb9eb48f6faa12796 (patch) | |
tree | db8555c15360759df792e0c485c6922d98c296c7 /src/mm-bearer-list.c | |
parent | ea3cb005b8e276178187654bd1aadbe8b33abf63 (diff) |
iface-modem: explicitly disconnect bearer before removing it
https://bugs.freedesktop.org/show_bug.cgi?id=90408
Diffstat (limited to 'src/mm-bearer-list.c')
-rw-r--r-- | src/mm-bearer-list.c | 23 |
1 files changed, 14 insertions, 9 deletions
diff --git a/src/mm-bearer-list.c b/src/mm-bearer-list.c index b90448f6..205193ae 100644 --- a/src/mm-bearer-list.c +++ b/src/mm-bearer-list.c @@ -105,15 +105,6 @@ mm_bearer_list_delete_bearer (MMBearerList *self, { GList *l; - if (!g_str_has_prefix (path, MM_DBUS_BEARER_PREFIX)) { - g_set_error (error, - MM_CORE_ERROR, - MM_CORE_ERROR_INVALID_ARGS, - "Cannot delete bearer: invalid path '%s'", - path); - return FALSE; - } - for (l = self->priv->bearers; l; l = g_list_next (l)) { if (g_str_equal (path, mm_base_bearer_get_path (MM_BASE_BEARER (l->data)))) { g_object_unref (l->data); @@ -169,6 +160,20 @@ mm_bearer_list_find_by_properties (MMBearerList *self, return NULL; } +MMBaseBearer * +mm_bearer_list_find_by_path (MMBearerList *self, + const gchar *path) +{ + GList *l; + + for (l = self->priv->bearers; l; l = g_list_next (l)) { + if (g_str_equal (path, mm_base_bearer_get_path (MM_BASE_BEARER (l->data)))) + return g_object_ref (l->data); + } + + return NULL; +} + /*****************************************************************************/ typedef struct { |