aboutsummaryrefslogtreecommitdiff
path: root/src/mm-base-modem.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/mm-base-modem.c')
-rw-r--r--src/mm-base-modem.c52
1 files changed, 39 insertions, 13 deletions
diff --git a/src/mm-base-modem.c b/src/mm-base-modem.c
index e5030dcb..72b9b849 100644
--- a/src/mm-base-modem.c
+++ b/src/mm-base-modem.c
@@ -822,21 +822,18 @@ port_cmp (MMPort *a,
}
GList *
-mm_base_modem_find_ports (MMBaseModem *self,
- MMPortSubsys subsys,
- MMPortType type,
- const gchar *name)
+mm_base_modem_find_ports (MMBaseModem *self,
+ MMPortSubsys subsys,
+ MMPortType type)
{
- GList *out = NULL;
- GHashTableIter iter;
- gpointer value;
- gpointer key;
+ GList *out = NULL;
+ GHashTableIter iter;
+ gpointer value;
+ gpointer key;
if (!self->priv->ports)
return NULL;
- /* We'll iterate the ht of ports, looking for any port which is matches
- * the compare function */
g_hash_table_iter_init (&iter, self->priv->ports);
while (g_hash_table_iter_next (&iter, &key, &value)) {
MMPort *port = MM_PORT (value);
@@ -847,15 +844,44 @@ mm_base_modem_find_ports (MMBaseModem *self,
if (type != MM_PORT_TYPE_UNKNOWN && mm_port_get_port_type (port) != type)
continue;
- if (name != NULL && !g_str_equal (mm_port_get_device (port), name))
- continue;
-
out = g_list_append (out, g_object_ref (port));
}
return g_list_sort (out, (GCompareFunc) port_cmp);
}
+MMPort *
+mm_base_modem_peek_port (MMBaseModem *self,
+ const gchar *name)
+{
+ GHashTableIter iter;
+ gpointer value;
+ gpointer key;
+
+ if (!self->priv->ports)
+ return NULL;
+
+ g_hash_table_iter_init (&iter, self->priv->ports);
+ while (g_hash_table_iter_next (&iter, &key, &value)) {
+ MMPort *port = MM_PORT (value);
+
+ if (g_str_equal (mm_port_get_device (port), name))
+ return port;
+ }
+
+ return NULL;
+}
+
+MMPort *
+mm_base_modem_get_port (MMBaseModem *self,
+ const gchar *name)
+{
+ MMPort *port;
+
+ port = mm_base_modem_peek_port (self, name);
+ return (port ? g_object_ref (port) : NULL);
+}
+
static void
initialize_ready (MMBaseModem *self,
GAsyncResult *res)