diff options
author | Aleksander Morgado <aleksander@lanedo.com> | 2012-03-26 16:28:28 +0200 |
---|---|---|
committer | Aleksander Morgado <aleksander@lanedo.com> | 2012-03-28 15:50:51 +0200 |
commit | b19f97ae7dbbe38f1613c978a5760ac05e0bd72f (patch) | |
tree | be07219bd7743327e7ae37c509444db2c6a11807 | |
parent | 3b481cf17f7c28edd58da87f3f0a0373f7c03131 (diff) |
port: new `MM_PORT_TYPE_NET' for pure net devices
Net devices will be MMPorts of type MM_PORT_TYPE_NET.
-rw-r--r-- | src/mm-base-modem.c | 21 | ||||
-rw-r--r-- | src/mm-port-probe.c | 2 | ||||
-rw-r--r-- | src/mm-port.h | 1 |
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, |