aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorDan Williams <dcbw@redhat.com>2009-11-23 23:30:04 -0800
committerDan Williams <dcbw@redhat.com>2009-11-23 23:30:04 -0800
commit500fb5f29aebb583f2f8c27fed11a5cd394c9958 (patch)
tree2317114c27c7c39f7d00b1870ba5a337194796e3
parent3c6e4056e7cded28e612a76d9321f54fb1b51ce2 (diff)
gsm: don't regress states on registration change if still registered
-rw-r--r--src/mm-generic-gsm.c3
1 files changed, 2 insertions, 1 deletions
diff --git a/src/mm-generic-gsm.c b/src/mm-generic-gsm.c
index eb712aba..468cdfc2 100644
--- a/src/mm-generic-gsm.c
+++ b/src/mm-generic-gsm.c
@@ -219,7 +219,8 @@ mm_generic_gsm_update_enabled_state (MMGenericGsm *self, MMModemStateReason reas
switch (priv->reg_status) {
case MM_MODEM_GSM_NETWORK_REG_STATUS_HOME:
case MM_MODEM_GSM_NETWORK_REG_STATUS_ROAMING:
- mm_modem_set_state (MM_MODEM (self), MM_MODEM_STATE_REGISTERED, reason);
+ if (mm_modem_get_state (MM_MODEM (self)) < MM_MODEM_STATE_CONNECTING)
+ mm_modem_set_state (MM_MODEM (self), MM_MODEM_STATE_REGISTERED, reason);
break;
case MM_MODEM_GSM_NETWORK_REG_STATUS_SEARCHING:
mm_modem_set_state (MM_MODEM (self), MM_MODEM_STATE_SEARCHING, reason);