aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorFranko Fang <fangxiaozhi@huawei.com>2013-04-03 13:12:43 +0200
committerAleksander Morgado <aleksander@lanedo.com>2013-04-03 13:35:47 +0200
commit1a875e3bf68119af4bad9c8ef88c425fb98d87e5 (patch)
treeff12b373fa890b0e875d672320828a450e8b9947
parent41e706b241b6c1600f3351f95a70c28695bac0ba (diff)
base-modem: keep AT port as possible data port if flagged as PPP
-rw-r--r--src/mm-base-modem.c16
1 files changed, 12 insertions, 4 deletions
diff --git a/src/mm-base-modem.c b/src/mm-base-modem.c
index 7e74328a..7226e5e2 100644
--- a/src/mm-base-modem.c
+++ b/src/mm-base-modem.c
@@ -891,8 +891,12 @@ mm_base_modem_organize_ports (MMBaseModem *self,
}
}
- if (!data_primary && (flags & MM_AT_PORT_FLAG_PPP))
- data_primary = candidate;
+ if (flags & MM_AT_PORT_FLAG_PPP) {
+ if (!data_primary)
+ data_primary = candidate;
+ else
+ data = g_list_append (data, candidate);
+ }
/* Explicitly flagged secondary ports trump NONE ports for secondary */
if (flags & MM_AT_PORT_FLAG_SECONDARY) {
@@ -921,9 +925,13 @@ mm_base_modem_organize_ports (MMBaseModem *self,
break;
case MM_PORT_TYPE_NET:
- /* Net device (if any) is the preferred data port */
- if (!data_primary || MM_IS_AT_SERIAL_PORT (data_primary))
+ if (!data_primary)
data_primary = candidate;
+ else if (MM_IS_AT_SERIAL_PORT (data_primary)) {
+ /* Net device (if any) is the preferred data port */
+ data = g_list_append (data, data_primary);
+ data_primary = candidate;
+ }
else
/* All non-primary net ports get added to the list of data ports */
data = g_list_append (data, candidate);