aboutsummaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorAleksander Morgado <aleksander@lanedo.com>2012-03-26 16:28:28 +0200
committerAleksander Morgado <aleksander@lanedo.com>2012-03-28 15:50:51 +0200
commitb19f97ae7dbbe38f1613c978a5760ac05e0bd72f (patch)
treebe07219bd7743327e7ae37c509444db2c6a11807 /src
parent3b481cf17f7c28edd58da87f3f0a0373f7c03131 (diff)
port: new `MM_PORT_TYPE_NET' for pure net devices
Net devices will be MMPorts of type MM_PORT_TYPE_NET.
Diffstat (limited to 'src')
-rw-r--r--src/mm-base-modem.c21
-rw-r--r--src/mm-port-probe.c2
-rw-r--r--src/mm-port.h1
3 files changed, 18 insertions, 6 deletions
diff --git a/src/mm-base-modem.c b/src/mm-base-modem.c
index 0314c97f..8490651f 100644
--- a/src/mm-base-modem.c
+++ b/src/mm-base-modem.c
@@ -219,7 +219,7 @@ mm_base_modem_grab_port (MMBaseModem *self,
port = MM_PORT (g_object_new (MM_TYPE_PORT,
MM_PORT_DEVICE, name,
MM_PORT_SUBSYS, MM_PORT_SUBSYS_NET,
- /* MM_PORT_TYPE, MM_PORT_TYPE_IGNORED, */
+ MM_PORT_TYPE, MM_PORT_TYPE_NET,
NULL));
} else
/* We already filter out before all non-tty, non-net ports */
@@ -580,9 +580,10 @@ mm_base_modem_organize_ports (MMBaseModem *self,
g_hash_table_iter_init (&iter, self->priv->ports);
while (g_hash_table_iter_next (&iter, NULL, (gpointer *) &candidate)) {
- MMPortSubsys subsys = mm_port_get_subsys (candidate);
+ switch (mm_port_get_port_type (candidate)) {
- if (MM_IS_AT_SERIAL_PORT (candidate)) {
+ case MM_PORT_TYPE_AT:
+ g_assert (MM_IS_AT_SERIAL_PORT (candidate));
flags = mm_at_serial_port_get_flags (MM_AT_SERIAL_PORT (candidate));
if (flags & MM_AT_PORT_FLAG_PRIMARY) {
@@ -613,13 +614,23 @@ mm_base_modem_organize_ports (MMBaseModem *self,
else if (!backup_secondary)
backup_secondary = MM_AT_SERIAL_PORT (candidate);
}
- } else if (MM_IS_QCDM_SERIAL_PORT (candidate)) {
+ break;
+
+ case MM_PORT_TYPE_QCDM:
+ g_assert (MM_IS_QCDM_SERIAL_PORT (candidate));
if (!qcdm)
qcdm = MM_QCDM_SERIAL_PORT (candidate);
- } else if (subsys == MM_PORT_SUBSYS_NET) {
+ break;
+
+ case MM_PORT_TYPE_NET:
/* Net device (if any) is the preferred data port */
if (!data || MM_IS_AT_SERIAL_PORT (data))
data = candidate;
+ break;
+
+ default:
+ /* Ignore port */
+ break;
}
}
diff --git a/src/mm-port-probe.c b/src/mm-port-probe.c
index 21261b68..baadee01 100644
--- a/src/mm-port-probe.c
+++ b/src/mm-port-probe.c
@@ -919,7 +919,7 @@ mm_port_probe_get_port_type (MMPortProbe *self)
g_return_val_if_fail (MM_IS_PORT_PROBE (self), FALSE);
if (g_str_equal (self->priv->subsys, "net"))
- return MM_PORT_TYPE_UNKNOWN;
+ return MM_PORT_TYPE_NET;
if (self->priv->flags & MM_PORT_PROBE_QCDM &&
self->priv->is_qcdm)
diff --git a/src/mm-port.h b/src/mm-port.h
index 847e5a4c..2edd7094 100644
--- a/src/mm-port.h
+++ b/src/mm-port.h
@@ -30,6 +30,7 @@ typedef enum { /*< underscore_name=mm_port_subsys >*/
typedef enum { /*< underscore_name=mm_port_type >*/
MM_PORT_TYPE_UNKNOWN = 0x0,
MM_PORT_TYPE_IGNORED,
+ MM_PORT_TYPE_NET,
MM_PORT_TYPE_AT,
MM_PORT_TYPE_QCDM,