Re: [PATCH] gsm: pass the PPP auth preferences for STATIC and DHCP device use
- From: "Andrew Bird (Sphere Systems)" <ajb spheresystems co uk>
- To: Dan Williams <dcbw redhat com>
- Cc: networkmanager-list gnome org
- Subject: Re: [PATCH] gsm: pass the PPP auth preferences for STATIC and DHCP device use
- Date: Fri, 16 Mar 2012 09:38:14 +0000
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 <ajb spheresystems co uk>
> > ---
> >
> > 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
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]