On Thursday 15 March 2012, Dan Williams wrote:
> On Mon, 2012-03-12 at 20:01 +0000, Andrew Bird wrote:
> > When using the either DHCP or STATIC IpMethods the modem manager
> > or device itself negotiates the PPP session so we need to pass
> > the authentication preferences through to MM.
> > 
> > Notes:
> >     1/ Using a bitfield now that happens to match the Ericsson
> > 
> > in the lower orders so that it's far more tidy.
> > 
> >     2/ Devices that wish to utilise this should observe the
> > 
> > following:
> >     If the bitfield doesn't exist in the dict, then MM uses the
> > 
> > modem default, if it does, MM tries to fulfill the request. If the
> > modem can only accept one value (Qualcomm-type devices accept only
> > None, PAP or CHAP with AT$QCPDPP) then MM picks the appropriate one
> > from the dict if only one of PAP or CHAP was given, otherwise we
> > default to PAP.
> 
> Pushed, thanks; changed the enum entries to be the actual bitfield
> values themselves instead of the bit position though to be a bit
> clearer.
> 
> Dan
> 
> > Signed-off-by: Andrew Bird <[email protected]>
> > ---
> > 
> >  src/modem-manager/nm-modem-gsm.c |   26 ++++++++++++++++++++++++++
> >  1 files changed, 26 insertions(+), 0 deletions(-)
> > 
> > diff --git a/src/modem-manager/nm-modem-gsm.c
> > b/src/modem-manager/nm-modem-gsm.c index 66b7ad9..37edd55 100644
> > --- a/src/modem-manager/nm-modem-gsm.c
> > +++ b/src/modem-manager/nm-modem-gsm.c
> > @@ -62,6 +62,17 @@ typedef enum {
> > 
> >      MM_MODEM_GSM_ALLOWED_MODE_LAST = MM_MODEM_GSM_ALLOWED_MODE_3G_ONLY
> >  
> >  } MMModemGsmAllowedMode;
> > 
> > +typedef enum {
> > +    /* bits 0..4 order match Ericsson device bitmap */
> > +    MM_MODEM_GSM_ALLOWED_AUTH_NONE     = 0,
> > +    MM_MODEM_GSM_ALLOWED_AUTH_PAP      = 1,
> > +    MM_MODEM_GSM_ALLOWED_AUTH_CHAP     = 2,
> > +    MM_MODEM_GSM_ALLOWED_AUTH_MSCHAP   = 3,
> > +    MM_MODEM_GSM_ALLOWED_AUTH_MSCHAPV2 = 4,
> > +    MM_MODEM_GSM_ALLOWED_AUTH_EAP      = 5,
> > +
> > +    MM_MODEM_GSM_ALLOWED_AUTH_LAST = MM_MODEM_GSM_ALLOWED_AUTH_EAP
> > +} MMModemGsmAllowedAuth;
> > 
> >  G_DEFINE_TYPE (NMModemGsm, nm_modem_gsm, NM_TYPE_MODEM)
> > 
> > @@ -326,6 +337,7 @@ static GHashTable *
> > 
> >  create_connect_properties (NMConnection *connection)
> >  {
> >  
> >     NMSettingGsm *setting;
> > 
> > +   NMSettingPPP *s_ppp;
> > 
> >     GHashTable *properties;
> >     const char *str;
> > 
> > @@ -384,6 +396,20 @@ create_connect_properties (NMConnection *connection)
> > 
> >     if (nm_setting_gsm_get_home_only (setting))
> >     
> >             value_hash_add_bool (properties, "home_only", TRUE);
> > 
> > +   /* For IpMethod == STATIC or DHCP */
> > +   s_ppp = nm_connection_get_setting_ppp (connection);
> > +   if (s_ppp) {
> > +           guint32 auth = 0;
> > +           auth |= (nm_setting_ppp_get_noauth (s_ppp) <<
> > MM_MODEM_GSM_ALLOWED_AUTH_NONE); +          auth |=
> > ((!nm_setting_ppp_get_refuse_pap (s_ppp)) <<
> > MM_MODEM_GSM_ALLOWED_AUTH_PAP); +           auth |=
> > ((!nm_setting_ppp_get_refuse_chap (s_ppp)) <<
> > MM_MODEM_GSM_ALLOWED_AUTH_CHAP); +          auth |=
> > ((!nm_setting_ppp_get_refuse_mschap (s_ppp)) <<
> > MM_MODEM_GSM_ALLOWED_AUTH_MSCHAP); +                auth |=
> > ((!nm_setting_ppp_get_refuse_mschapv2 (s_ppp)) <<
> > MM_MODEM_GSM_ALLOWED_AUTH_MSCHAPV2); +              auth |=
> > ((!nm_setting_ppp_get_refuse_eap (s_ppp)) <<
> > MM_MODEM_GSM_ALLOWED_AUTH_EAP); +
> > +           value_hash_add_uint (properties, "allowed_auth", auth);
> > +   }
> > +
> > 
> >     return properties;
> >  
> >  }

Hi Dan,
        Thanks for pushing / refining this, it looks far less ugly now! I also 
just sent a patch to add the corresponding definitions to MM.


Andrew
_______________________________________________
networkmanager-list mailing list
[email protected]
http://mail.gnome.org/mailman/listinfo/networkmanager-list

Reply via email to