[PATCH v2] mbimcli: add "ip-type" property to --connect
Dan Williams
dcbw at redhat.com
Tue Jan 23 19:09:00 UTC 2018
On Tue, 2018-01-23 at 19:05 +0100, Aleksander Morgado wrote:
> On Tue, Jan 23, 2018 at 6:30 PM, Dan Williams <dcbw at redhat.com>
> wrote:
> > ---
> > * v2: update help text (and thus manpages)
> >
> > src/mbimcli/mbimcli-basic-connect.c | 64
> > ++++++++++++++++++++++++++++---------
> > 1 file changed, 49 insertions(+), 15 deletions(-)
> >
>
> LGTM
Thanks, pushed to git master and 1-16.
Dan
> > diff --git a/src/mbimcli/mbimcli-basic-connect.c
> > b/src/mbimcli/mbimcli-basic-connect.c
> > index b27e179..3b0d5ef 100644
> > --- a/src/mbimcli/mbimcli-basic-connect.c
> > +++ b/src/mbimcli/mbimcli-basic-connect.c
> > @@ -181,7 +181,7 @@ static GOptionEntry entries[] = {
> > "[SessionID]"
> > },
> > { "connect", 0, 0, G_OPTION_ARG_STRING,
> > &set_connect_activate_str,
> > - "Connect (allowed keys: session-id, apn, auth
> > (PAP|CHAP|MSCHAPV2), username, password)",
> > + "Connect (allowed keys: session-id, apn, ip-type
> > (ipv4|ipv6|ipv4v6), auth (PAP|CHAP|MSCHAPV2), username, password)",
> > "[\"key=value,...\"]"
> > },
> > { "query-ip-configuration", 0, G_OPTION_FLAG_OPTIONAL_ARG,
> > G_OPTION_ARG_CALLBACK, G_CALLBACK
> > (query_ip_configuration_arg_parse),
> > @@ -1054,6 +1054,24 @@ mbim_auth_protocol_from_string (const
> > gchar *str,
> > return FALSE;
> > }
> >
> > +static gboolean
> > +mbim_context_ip_type_from_string (const gchar *str,
> > + MbimContextIpType *ip_type)
> > +{
> > + if (g_ascii_strcasecmp (str, "ipv4") == 0) {
> > + *ip_type = MBIM_CONTEXT_IP_TYPE_IPV4;
> > + return TRUE;
> > + } else if (g_ascii_strcasecmp (str, "ipv6") == 0) {
> > + *ip_type = MBIM_CONTEXT_IP_TYPE_IPV6;
> > + return TRUE;
> > + } else if (g_ascii_strcasecmp (str, "ipv4v6") == 0) {
> > + *ip_type = MBIM_CONTEXT_IP_TYPE_IPV4V6;
> > + return TRUE;
> > + }
> > +
> > + return FALSE;
> > +}
> > +
> > static gboolean
> > connect_session_id_parse (const gchar *str,
> > gboolean allow_empty,
> > @@ -1094,11 +1112,12 @@ connect_session_id_parse (const
> > gchar *str,
> > }
> >
> > typedef struct {
> > - guint32 session_id;
> > - gchar *apn;
> > - MbimAuthProtocol auth_protocol;
> > - gchar *username;
> > - gchar *password;
> > + guint32 session_id;
> > + gchar *apn;
> > + MbimAuthProtocol auth_protocol;
> > + gchar *username;
> > + gchar *password;
> > + MbimContextIpType ip_type;
> > } ConnectActivateProperties;
> >
> > static gboolean connect_activate_properties_handle (const
> > gchar *key,
> > @@ -1136,6 +1155,15 @@ static gboolean
> > connect_activate_properties_handle (const gchar *key,
> > props->username = g_strdup (value);
> > } else if (g_ascii_strcasecmp (key, "password") == 0 &&
> > !props->password) {
> > props->password = g_strdup (value);
> > + } else if (g_ascii_strcasecmp (key, "ip-type") == 0) {
> > + if (!mbim_context_ip_type_from_string (value, &props-
> > >ip_type)) {
> > + g_set_error (error,
> > + MBIM_CORE_ERROR,
> > + MBIM_CORE_ERROR_FAILED,
> > + "unknown ip type '%s'",
> > + value);
> > + return FALSE;
> > + }
> > } else {
> > g_set_error (error,
> > MBIM_CORE_ERROR,
> > @@ -1149,19 +1177,21 @@ static gboolean
> > connect_activate_properties_handle (const gchar *key,
> > }
> >
> > static gboolean
> > -set_connect_activate_parse (const gchar *str,
> > - guint32 *session_id,
> > - gchar **apn,
> > - MbimAuthProtocol *auth_protocol,
> > - gchar **username,
> > - gchar **password)
> > +set_connect_activate_parse (const gchar *str,
> > + guint32 *session_id,
> > + gchar **apn,
> > + MbimAuthProtocol *auth_protocol,
> > + gchar **username,
> > + gchar **password,
> > + MbimContextIpType *ip_type)
> > {
> > ConnectActivateProperties props = {
> > .session_id = 0,
> > .apn = NULL,
> > .auth_protocol = MBIM_AUTH_PROTOCOL_NONE,
> > .username = NULL,
> > - .password = NULL
> > + .password = NULL,
> > + .ip_type = MBIM_CONTEXT_IP_TYPE_DEFAULT
> > };
> > gchar **split = NULL;
> >
> > @@ -1170,6 +1200,7 @@ set_connect_activate_parse (const
> > gchar *str,
> > g_assert (auth_protocol != NULL);
> > g_assert (username != NULL);
> > g_assert (password != NULL);
> > + g_assert (ip_type != NULL);
> >
> > if (strchr (str, '=')) {
> > GError *error = NULL;
> > @@ -1231,6 +1262,7 @@ set_connect_activate_parse (const
> > gchar *str,
> > *auth_protocol = props.auth_protocol;
> > *username = props.username;
> > *password = props.password;
> > + *ip_type = props.ip_type;
> >
> > if (split)
> > g_strfreev (split);
> > @@ -2139,13 +2171,15 @@ mbimcli_basic_connect_run
> > (MbimDevice *device,
> > MbimAuthProtocol auth_protocol;
> > gchar *username = NULL;
> > gchar *password = NULL;
> > + MbimContextIpType ip_type = MBIM_CONTEXT_IP_TYPE_DEFAULT;
> >
> > if (!set_connect_activate_parse (set_connect_activate_str,
> > &session_id,
> > &apn,
> > &auth_protocol,
> > &username,
> > - &password)) {
> > + &password,
> > + &ip_type)) {
> > shutdown (FALSE);
> > return;
> > }
> > @@ -2157,7 +2191,7 @@ mbimcli_basic_connect_run
> > (MbimDevice *device,
> > password,
> > MBIM_COMPRESSION_N
> > ONE,
> > auth_protocol,
> > - MBIM_CONTEXT_IP_TY
> > PE_DEFAULT,
> > + ip_type,
> > mbim_uuid_from_con
> > text_type (MBIM_CONTEXT_TYPE_INTERNET),
> > &error);
> > g_free (apn);
> > --
> > 2.14.3
> > _______________________________________________
> > libmbim-devel mailing list
> > libmbim-devel at lists.freedesktop.org
> > https://lists.freedesktop.org/mailman/listinfo/libmbim-devel
>
>
>
More information about the libmbim-devel
mailing list