aboutsummaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
Diffstat (limited to 'src')
-rw-r--r--src/mm-base-modem.c20
-rw-r--r--src/mm-base-modem.h1
2 files changed, 21 insertions, 0 deletions
diff --git a/src/mm-base-modem.c b/src/mm-base-modem.c
index 50717471..465ceb59 100644
--- a/src/mm-base-modem.c
+++ b/src/mm-base-modem.c
@@ -697,6 +697,26 @@ mm_base_modem_peek_best_data_port (MMBaseModem *self,
return NULL;
}
+MMPort *
+mm_base_modem_peek_current_data_port (MMBaseModem *self,
+ MMPortType type)
+{
+ GList *l;
+
+ g_return_val_if_fail (MM_IS_BASE_MODEM (self), NULL);
+
+ /* Return first connected data port */
+ for (l = self->priv->data; l; l = g_list_next (l)) {
+ if (mm_port_get_connected ((MMPort *)l->data) &&
+ (mm_port_get_port_type ((MMPort *)l->data) == type ||
+ type == MM_PORT_TYPE_UNKNOWN)) {
+ return (MMPort *)l->data;
+ }
+ }
+
+ return NULL;
+}
+
GList *
mm_base_modem_get_data_ports (MMBaseModem *self)
{
diff --git a/src/mm-base-modem.h b/src/mm-base-modem.h
index db3d54d3..6a5b88c5 100644
--- a/src/mm-base-modem.h
+++ b/src/mm-base-modem.h
@@ -131,6 +131,7 @@ MMPortMbim *mm_base_modem_peek_port_mbim_for_data (MMBaseModem *self, MMPo
#endif
MMPortSerialAt *mm_base_modem_peek_best_at_port (MMBaseModem *self, GError **error);
MMPort *mm_base_modem_peek_best_data_port (MMBaseModem *self, MMPortType type);
+MMPort *mm_base_modem_peek_current_data_port (MMBaseModem *self, MMPortType type);
GList *mm_base_modem_peek_data_ports (MMBaseModem *self);
MMPortSerialAt *mm_base_modem_get_port_primary (MMBaseModem *self);