aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--src/mm-broadband-modem.c21
1 files changed, 15 insertions, 6 deletions
diff --git a/src/mm-broadband-modem.c b/src/mm-broadband-modem.c
index 3fa7661a..1dfebe50 100644
--- a/src/mm-broadband-modem.c
+++ b/src/mm-broadband-modem.c
@@ -239,16 +239,25 @@ modem_create_bearer (MMIfaceModem *self,
return;
}
- /* On mixed LTE and CDMA modems, we'll default to building a 3GPP bearer.
+ /* On mixed LTE and CDMA modems, we'll build a 3GPP bearer if 'apn' was
+ * given, and a CDMA bearer otherwise.
* Plugins supporting mixed LTE+CDMA modems can override this and provide
* their own specific and detailed logic. */
if (mm_iface_modem_is_cdma (self) &&
mm_iface_modem_is_3gpp_lte (self)) {
- mm_dbg ("Creating 3GPP Bearer in mixed CDMA+LTE modem");
- mm_iface_modem_3gpp_create_bearer (MM_IFACE_MODEM_3GPP (self),
- properties,
- (GAsyncReadyCallback)modem_3gpp_create_bearer_ready,
- result);
+ if (mm_common_bearer_properties_get_apn (properties)) {
+ mm_dbg ("Creating 3GPP Bearer in mixed CDMA+LTE modem");
+ mm_iface_modem_3gpp_create_bearer (MM_IFACE_MODEM_3GPP (self),
+ properties,
+ (GAsyncReadyCallback)modem_3gpp_create_bearer_ready,
+ result);
+ } else {
+ mm_dbg ("Creating CDMA Bearer in mixed CDMA+LTE modem");
+ mm_iface_modem_cdma_create_bearer (MM_IFACE_MODEM_CDMA (self),
+ properties,
+ (GAsyncReadyCallback)modem_cdma_create_bearer_ready,
+ result);
+ }
return;
}