From b0598738f1e99d3902a2aa79d5c3f74b686310f1 Mon Sep 17 00:00:00 2001 From: Dan Williams Date: Tue, 9 Mar 2010 22:12:21 -0800 Subject: gsm: only update access technology when enabled --- src/mm-generic-gsm.c | 24 +++++++++++++++++++----- 1 file changed, 19 insertions(+), 5 deletions(-) (limited to 'src') diff --git a/src/mm-generic-gsm.c b/src/mm-generic-gsm.c index 5d209366..a7149fd1 100644 --- a/src/mm-generic-gsm.c +++ b/src/mm-generic-gsm.c @@ -114,6 +114,9 @@ static gboolean handle_reg_status_response (MMGenericGsm *self, static MMModemGsmAccessTech etsi_act_to_mm_act (gint act); +static void _internal_update_access_technology (MMGenericGsm *modem, + MMModemGsmAccessTech act); + MMModem * mm_generic_gsm_new (const char *device, const char *driver, @@ -908,7 +911,7 @@ disable (MMModem *modem, priv->lac[1] = 0; priv->cell_id[0] = 0; priv->cell_id[1] = 0; - mm_generic_gsm_update_access_technology (self, MM_MODEM_GSM_ACCESS_TECH_UNKNOWN); + _internal_update_access_technology (self, MM_MODEM_GSM_ACCESS_TECH_UNKNOWN); /* Close the secondary port if its open */ if (priv->secondary && mm_serial_port_is_open (priv->secondary)) @@ -2307,15 +2310,14 @@ etsi_act_to_mm_act (gint act) return MM_MODEM_GSM_ACCESS_TECH_UNKNOWN; } -void -mm_generic_gsm_update_access_technology (MMGenericGsm *modem, - MMModemGsmAccessTech act) +static void +_internal_update_access_technology (MMGenericGsm *modem, + MMModemGsmAccessTech act) { MMGenericGsmPrivate *priv; g_return_if_fail (modem != NULL); g_return_if_fail (MM_IS_GENERIC_GSM (modem)); - g_return_if_fail (act >= MM_MODEM_GSM_ACCESS_TECH_UNKNOWN && act <= MM_MODEM_GSM_ACCESS_TECH_LAST); priv = MM_GENERIC_GSM_GET_PRIVATE (modem); @@ -2332,6 +2334,18 @@ mm_generic_gsm_update_access_technology (MMGenericGsm *modem, } } +void +mm_generic_gsm_update_access_technology (MMGenericGsm *self, + MMModemGsmAccessTech act) +{ + g_return_if_fail (self != NULL); + g_return_if_fail (MM_IS_GENERIC_GSM (self)); + + /* For plugins, don't update the access tech when the modem isn't enabled */ + if (mm_modem_get_state (MM_MODEM (self)) >= MM_MODEM_STATE_ENABLED) + _internal_update_access_technology (self, act); +} + void mm_generic_gsm_update_allowed_mode (MMGenericGsm *self, MMModemGsmAllowedMode mode) -- cgit v1.2.3-70-g09d2