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

Reply via email to