diff options
author | Dan Williams <dcbw@redhat.com> | 2010-03-26 00:14:23 -0700 |
---|---|---|
committer | Dan Williams <dcbw@redhat.com> | 2010-03-26 00:14:23 -0700 |
commit | a83dcdba8a154e32e7112434a96f588dac3303f1 (patch) | |
tree | ddc62e2a9ed7f35ff8915c8778171e055696f7a0 /src | |
parent | 4dbc2f2e9b840e34c23a56ab698799a9b9c3195b (diff) |
gsm: update access technology on successful registration
Diffstat (limited to 'src')
-rw-r--r-- | src/mm-generic-gsm.c | 14 |
1 files changed, 14 insertions, 0 deletions
diff --git a/src/mm-generic-gsm.c b/src/mm-generic-gsm.c index e8a72a25..87df005c 100644 --- a/src/mm-generic-gsm.c +++ b/src/mm-generic-gsm.c @@ -1492,6 +1492,16 @@ roam_disconnect_done (MMModem *modem, g_message ("Disconnected because roaming is not allowed"); } +static void +get_reg_act_done (MMModem *modem, + guint32 act, + GError *error, + gpointer user_data) +{ + if (modem && !error) + mm_generic_gsm_update_access_technology (MM_GENERIC_GSM (modem), act); +} + void mm_generic_gsm_set_reg_status (MMGenericGsm *self, MMModemGsmNetworkRegStatus status) @@ -1528,7 +1538,11 @@ mm_generic_gsm_set_reg_status (MMGenericGsm *self, mm_at_serial_port_queue_command (port, "+COPS=3,2;+COPS?", 3, read_operator_code_done, self); mm_at_serial_port_queue_command (port, "+COPS=3,0;+COPS?", 3, read_operator_name_done, self); } + + /* And update signal quality and access technology */ mm_modem_gsm_network_get_signal_quality (MM_MODEM_GSM_NETWORK (self), got_signal_quality, NULL); + if (MM_GENERIC_GSM_GET_CLASS (self)->get_access_technology) + MM_GENERIC_GSM_GET_CLASS (self)->get_access_technology (self, get_reg_act_done, NULL); } } else reg_info_updated (self, FALSE, 0, TRUE, NULL, TRUE, NULL); |