diff options
author | Aleksander Morgado <aleksander@lanedo.com> | 2011-12-20 21:44:03 +0100 |
---|---|---|
committer | Aleksander Morgado <aleksander@lanedo.com> | 2012-03-15 14:14:36 +0100 |
commit | 405f7c8660218d363bef10b7ae36b9374cd05b32 (patch) | |
tree | f277c4d6ca69dc600d8257d6e1989dd243767726 /cli/mmcli-modem.c | |
parent | 6f98da93100d3635b173edb1802678be03775c9e (diff) |
cli: allow passing the new 'allow-roaming' in the bearer creation string
Diffstat (limited to 'cli/mmcli-modem.c')
-rw-r--r-- | cli/mmcli-modem.c | 51 |
1 files changed, 36 insertions, 15 deletions
diff --git a/cli/mmcli-modem.c b/cli/mmcli-modem.c index 6ca16ba5..03b25550 100644 --- a/cli/mmcli-modem.c +++ b/cli/mmcli-modem.c @@ -505,6 +505,7 @@ static void create_bearer_parse_known_input (const gchar *input, gchar **apn, gchar **ip_type, + gboolean *allow_roaming, gchar **user, gchar **password, gchar **number) @@ -515,7 +516,8 @@ create_bearer_parse_known_input (const gchar *input, guint i; /* Expecting input as: - * key1=value1,key2=value2,... */ + * key1=string,key2=true,key3=false... + * */ words = g_strsplit_set (input, ",= ", -1); if (!words) @@ -534,6 +536,18 @@ create_bearer_parse_known_input (const gchar *input, *apn = value; else if (g_str_equal (key, MM_BEARER_PROPERTY_IP_TYPE)) *ip_type = value; + else if (g_str_equal (key, MM_BEARER_PROPERTY_ALLOW_ROAMING)) { + if (g_ascii_strcasecmp (value, "true") || + g_str_equal (value, "1")) { + *allow_roaming = TRUE; + } else if (g_ascii_strcasecmp (value, "false") || + g_str_equal (value, "0")) { + *allow_roaming = FALSE; + } else + g_printerr ("error: invalid value '%s' for boolean property '%s'", + value, key); + g_free (value); + } else if (g_str_equal (key, MM_BEARER_PROPERTY_USER)) *user = value; else if (g_str_equal (key, MM_BEARER_PROPERTY_PASSWORD)) @@ -684,10 +698,12 @@ get_modem_ready (GObject *source, gchar *user = NULL; gchar *password = NULL; gchar *number = NULL; + gboolean allow_roaming = TRUE; create_bearer_parse_known_input (create_bearer_str, &apn, &ip_type, + &allow_roaming, &user, &password, &number); @@ -697,11 +713,12 @@ get_modem_ready (GObject *source, ctx->cancellable, (GAsyncReadyCallback)create_bearer_ready, NULL, - MM_BEARER_PROPERTY_APN, apn, - MM_BEARER_PROPERTY_IP_TYPE, ip_type, - MM_BEARER_PROPERTY_USER, user, - MM_BEARER_PROPERTY_PASSWORD, password, - MM_BEARER_PROPERTY_NUMBER, number, + MM_BEARER_PROPERTY_APN, apn, + MM_BEARER_PROPERTY_IP_TYPE, ip_type, + MM_BEARER_PROPERTY_USER, user, + MM_BEARER_PROPERTY_PASSWORD, password, + MM_BEARER_PROPERTY_NUMBER, number, + MM_BEARER_PROPERTY_ALLOW_ROAMING, allow_roaming, NULL); g_free (apn); @@ -822,25 +839,29 @@ mmcli_modem_run_synchronous (GDBusConnection *connection) gchar *user = NULL; gchar *password = NULL; gchar *number = NULL; + gboolean allow_roaming = TRUE; MMBearer *bearer; create_bearer_parse_known_input (create_bearer_str, &apn, &ip_type, + &allow_roaming, &user, &password, &number); g_debug ("Synchronously creating new bearer in modem..."); - bearer = mm_modem_create_bearer_sync (ctx->modem, - NULL, - &error, - MM_BEARER_PROPERTY_APN, apn, - MM_BEARER_PROPERTY_IP_TYPE, ip_type, - MM_BEARER_PROPERTY_USER, user, - MM_BEARER_PROPERTY_PASSWORD, password, - MM_BEARER_PROPERTY_NUMBER, number, - NULL); + bearer = mm_modem_create_bearer_sync ( + ctx->modem, + NULL, + &error, + MM_BEARER_PROPERTY_APN, apn, + MM_BEARER_PROPERTY_IP_TYPE, ip_type, + MM_BEARER_PROPERTY_USER, user, + MM_BEARER_PROPERTY_PASSWORD, password, + MM_BEARER_PROPERTY_NUMBER, number, + MM_BEARER_PROPERTY_ALLOW_ROAMING, allow_roaming, + NULL); g_free (apn); g_free (ip_type); |