2013/2/11 Dan Williams <[email protected]> > On Mon, 2013-02-11 at 12:09 -0200, Jonh Wendell wrote: > > From: Jonh Wendell <[email protected]> > > > > It returns whether we are behind a captive portal and, if we are, > > also returns the url to login at the hotspot. > > Any particular reason this is a method and not a property? Also I think > we may want more properties available later in which case it might be > better to have a dict instead of a hard method signature. There are a > number of different portal types, and I think in the future we may want > to have NM store some of the credentials for user login too. Also, > stuff like Hotspot 2.0 can use a SIM card on your WWAN modem to perform > authentication and log into the hotspot automatically; we might need to > pass more information to whatever actually handles the login stuff. >
No, there's no strong reason to choose a method over a property. So, what's more appropriate here? A method returning a dict or individual properties? or both? :) > Dan > > > Signed-off-by: Jonh Wendell <[email protected]> > > --- > > introspection/nm-manager.xml | 20 ++++++++++++++++++++ > > src/nm-manager.c | 18 ++++++++++++++++++ > > 2 files changed, 38 insertions(+) > > > > diff --git a/introspection/nm-manager.xml b/introspection/nm-manager.xml > > index 6f3c8ca..cd3c902 100644 > > --- a/introspection/nm-manager.xml > > +++ b/introspection/nm-manager.xml > > @@ -253,6 +253,26 @@ > > <arg name="state" type="u" direction="out" tp:type="NM_STATE"/> > > </method> > > > > + <method name="CaptivePortalState"> > > + <tp:docstring> > > + Indicates whether we are behind a captive portal. If we are, it > also gives > > + the login URL supplied by the captive portal. It only makes > sense to call > > + this method when the State is NM_STATE_CONNECTED_SITE. > > + </tp:docstring> > > + <annotation name="org.freedesktop.DBus.GLib.CSymbol" > value="impl_manager_get_captive_portal_state"/> > > + <arg name="behind_captive_portal" type="b" direction="out"> > > + <tp:docstring> > > + The boolean value indicating whether we are behind a captive > portal. > > + </tp:docstring> > > + </arg> > > + <arg name="login_url" type="s" direction="out"> > > + <tp:docstring> > > + If we are behind a captive portal, this contains the URL used > to login on it. > > + A NULL value is valid here, meaning we couldn't guess the > login URL. > > + </tp:docstring> > > + </arg> > > + </method> > > + > > <property name="NetworkingEnabled" type="b" access="read"> > > <tp:docstring> > > Indicates if overall networking is currently enabled or not. > See the > > diff --git a/src/nm-manager.c b/src/nm-manager.c > > index eb7eb9a..feb618d 100644 > > --- a/src/nm-manager.c > > +++ b/src/nm-manager.c > > @@ -120,6 +120,10 @@ static gboolean impl_manager_get_state (NMManager > *manager, > > guint32 *state, > > GError **error); > > > > +static gboolean impl_manager_get_captive_portal_state (NMManager > *manager, > > + gboolean > *behind_captive_portal, > > + char > **login_url); > > + > > static gboolean impl_manager_set_logging (NMManager *manager, > > const char *level, > > const char *domains, > > @@ -3691,6 +3695,20 @@ impl_manager_get_state (NMManager *manager, > guint32 *state, GError **error) > > } > > > > static gboolean > > +impl_manager_get_captive_portal_state (NMManager *manager, gboolean > *behind_captive_portal, char **login_url) > > +{ > > +#if WITH_CONCHECK > > + NMManagerPrivate *priv = NM_MANAGER_GET_PRIVATE (manager); > > + *behind_captive_portal = nm_connectivity_get_state > (priv->connectivity) == NM_CONNECTIVITY_STATE_BEHIND_CAPTIVE_PORTAL; > > + *login_url = g_strdup (nm_connectivity_get_login_url > (priv->connectivity)); > > +#else > > + *behind_captive_portal = FALSE; > > + *login_url = NULL; > > +#endif > > + return TRUE; > > +} > > + > > +static gboolean > > impl_manager_set_logging (NMManager *manager, > > const char *level, > > const char *domains, > > > -- Jonh Wendell http://www.bani.com.br
_______________________________________________ networkmanager-list mailing list [email protected] https://mail.gnome.org/mailman/listinfo/networkmanager-list
