Tue, Mar 05, 2013 at 07:32:21PM CET, aleksan...@lanedo.com wrote: >On 03/05/2013 03:37 AM, Ben Chan wrote: >> This patch changes MMIfaceModem3gpp to differentiate between deferrable >> and non-deferrable 3GPP registration state updates. Periodic or >> unsolicited registration state updates are deferrable, while internal >> updates, e.g. due to modem being disabled, are non-deferrable. >> --- >> src/mm-iface-modem-3gpp.c | 40 ++++++++++++++++++++++------------------ >> 1 file changed, 22 insertions(+), 18 deletions(-) > > >Pushed after some minor modifications.
Sorry, I'm not sure I understand this correctly. Can you please tell be what does this message mean? Thanks. Jiri > >Thanks. > >> >> diff --git a/src/mm-iface-modem-3gpp.c b/src/mm-iface-modem-3gpp.c >> index 6c8bb14..7049ec8 100644 >> --- a/src/mm-iface-modem-3gpp.c >> +++ b/src/mm-iface-modem-3gpp.c >> @@ -1093,7 +1093,8 @@ run_deferred_registration_state_update >> (MMIfaceModem3gpp *self) >> >> static void >> update_registration_state (MMIfaceModem3gpp *self, >> - MMModem3gppRegistrationState new_state) >> + MMModem3gppRegistrationState new_state, >> + gboolean deferrable) >> { >> MMModem3gppRegistrationState old_state = >> MM_MODEM_3GPP_REGISTRATION_STATE_UNKNOWN; >> RegistrationStateContext *ctx; >> @@ -1106,18 +1107,20 @@ update_registration_state (MMIfaceModem3gpp *self, >> g_assert (ctx); >> >> if (ctx->deferred_update_id != 0) { >> - /* If there is already a deferred 'registration loss' state update >> and the new update >> - * is not a registered state, update the deferred state update >> without extending the >> - * timeout. */ >> - if (new_state != MM_MODEM_3GPP_REGISTRATION_STATE_HOME && >> - new_state != MM_MODEM_3GPP_REGISTRATION_STATE_ROAMING) { >> - mm_info ("Modem %s: 3GPP Registration state changed (%s -> %s), >> update deferred", >> - g_dbus_object_get_object_path (G_DBUS_OBJECT (self)), >> - mm_modem_3gpp_registration_state_get_string >> (old_state), >> - mm_modem_3gpp_registration_state_get_string >> (new_state)); >> - >> - ctx->deferred_new_state = new_state; >> - return; >> + if (deferrable) { >> + /* If there is already a deferred 'registration loss' state >> update and the new update >> + * is not a registered state, update the deferred state update >> without extending the >> + * timeout. */ >> + if (new_state != MM_MODEM_3GPP_REGISTRATION_STATE_HOME && >> + new_state != MM_MODEM_3GPP_REGISTRATION_STATE_ROAMING) { > > > >> + mm_info ("Modem %s: 3GPP Registration state changed (%s -> >> %s), update deferred", >> + g_dbus_object_get_object_path (G_DBUS_OBJECT >> (self)), >> + mm_modem_3gpp_registration_state_get_string >> (old_state), >> + mm_modem_3gpp_registration_state_get_string >> (new_state)); >> + >> + ctx->deferred_new_state = new_state; >> + return; >> + } >> } >> >> /* Otherwise, cancel any deferred registration state update */ >> @@ -1153,7 +1156,8 @@ update_registration_state (MMIfaceModem3gpp *self, >> if ((old_state == MM_MODEM_3GPP_REGISTRATION_STATE_HOME || >> old_state == MM_MODEM_3GPP_REGISTRATION_STATE_ROAMING) && >> (new_state == MM_MODEM_3GPP_REGISTRATION_STATE_SEARCHING || >> - new_state == MM_MODEM_3GPP_REGISTRATION_STATE_UNKNOWN)) { >> + new_state == MM_MODEM_3GPP_REGISTRATION_STATE_UNKNOWN) && >> + deferrable) { >> mm_info ("Modem %s: 3GPP Registration state changed (%s -> %s), >> update deferred", >> g_dbus_object_get_object_path (G_DBUS_OBJECT (self)), >> mm_modem_3gpp_registration_state_get_string (old_state), >> @@ -1191,7 +1195,7 @@ mm_iface_modem_3gpp_update_cs_registration_state >> (MMIfaceModem3gpp *self, >> >> ctx = get_registration_state_context (self); >> ctx->cs = state; >> - update_registration_state (self, get_consolidated_reg_state (ctx)); >> + update_registration_state (self, get_consolidated_reg_state (ctx), >> TRUE); >> } >> >> void >> @@ -1210,7 +1214,7 @@ mm_iface_modem_3gpp_update_ps_registration_state >> (MMIfaceModem3gpp *self, >> >> ctx = get_registration_state_context (self); >> ctx->ps = state; >> - update_registration_state (self, get_consolidated_reg_state (ctx)); >> + update_registration_state (self, get_consolidated_reg_state (ctx), >> TRUE); >> } >> >> void >> @@ -1229,7 +1233,7 @@ mm_iface_modem_3gpp_update_eps_registration_state >> (MMIfaceModem3gpp *self, >> >> ctx = get_registration_state_context (self); >> ctx->eps = state; >> - update_registration_state (self, get_consolidated_reg_state (ctx)); >> + update_registration_state (self, get_consolidated_reg_state (ctx), >> TRUE); >> } >> >> >> /*****************************************************************************/ >> @@ -1492,7 +1496,7 @@ interface_disabling_step (DisablingContext *ctx) >> ctx->step++; >> >> case DISABLING_STEP_REGISTRATION_STATE: >> - update_registration_state (ctx->self, >> MM_MODEM_3GPP_REGISTRATION_STATE_UNKNOWN); >> + update_registration_state (ctx->self, >> MM_MODEM_3GPP_REGISTRATION_STATE_UNKNOWN, FALSE); >> mm_iface_modem_3gpp_update_access_technologies (ctx->self, >> MM_MODEM_ACCESS_TECHNOLOGY_UNKNOWN); >> mm_iface_modem_3gpp_update_location (ctx->self, 0, 0); >> /* Fall down to next step */ >> > > >-- >Aleksander >_______________________________________________ >networkmanager-list mailing list >networkmanager-list@gnome.org >https://mail.gnome.org/mailman/listinfo/networkmanager-list _______________________________________________ networkmanager-list mailing list networkmanager-list@gnome.org https://mail.gnome.org/mailman/listinfo/networkmanager-list