aboutsummaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorDan Williams <dcbw@redhat.com>2010-03-26 00:14:23 -0700
committerDan Williams <dcbw@redhat.com>2010-03-26 00:14:23 -0700
commita83dcdba8a154e32e7112434a96f588dac3303f1 (patch)
treeddc62e2a9ed7f35ff8915c8778171e055696f7a0 /src
parent4dbc2f2e9b840e34c23a56ab698799a9b9c3195b (diff)
gsm: update access technology on successful registration
Diffstat (limited to 'src')
-rw-r--r--src/mm-generic-gsm.c14
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);