diff options
-rw-r--r-- | data/qmi-service-wds.json | 8 | ||||
-rw-r--r-- | src/qmicli/qmicli-helpers.h | 3 | ||||
-rw-r--r-- | src/qmicli/qmicli-wds.c | 21 |
3 files changed, 29 insertions, 3 deletions
diff --git a/data/qmi-service-wds.json b/data/qmi-service-wds.json index 9f253b0..68042d3 100644 --- a/data/qmi-service-wds.json +++ b/data/qmi-service-wds.json @@ -1138,7 +1138,7 @@ // 0x30, PDN inactivity timeout // 0x31, APN class { "common-ref" : "WDS Roaming Disallowed Flag", - "since" : "1.22" } ], + "since" : "1.22" }, // 0x90, Negotiate DNS server preference // 0x91, PPP session close timer for DO // 0x92, PPP session close timer for 1X @@ -1167,6 +1167,8 @@ // 0xA9, APN enabled // 0xAA, PDN inactivity timeout // 0xAB, APN class + { "common-ref" : "WDS APN Type", + "since" : "1.30" } ], "output" : [ { "common-ref" : "Operation Result" }, { "common-ref" : "WDS Profile Identifier", "since" : "1.18", @@ -1245,7 +1247,7 @@ // 0x30, PDN inactivity timeout // 0x31, APN class { "common-ref" : "WDS Roaming Disallowed Flag", - "since" : "1.22" } ], + "since" : "1.22" }, // 0x90, Negotiate DNS server preference // 0x91, PPP session close timer for DO // 0x92, PPP session close timer for 1X @@ -1274,6 +1276,8 @@ // 0xA9, APN enabled // 0xAA, PDN inactivity timeout // 0xAB, APN class + { "common-ref" : "WDS APN Type", + "since" : "1.30" } ], "output" : [ { "common-ref" : "Operation Result" }, { "common-ref" : "WDS Extended Error Code", "since" : "1.18" } ] }, diff --git a/src/qmicli/qmicli-helpers.h b/src/qmicli/qmicli-helpers.h index a3a84d4..266c08c 100644 --- a/src/qmicli/qmicli-helpers.h +++ b/src/qmicli/qmicli-helpers.h @@ -72,7 +72,8 @@ QMICLI_FLAGS_LIST /* Common helpers to read 64bit flags from strings */ #define QMICLI_FLAGS64_LIST \ - QMICLI_FLAGS64_LIST_ITEM (QmiDsdApnTypePreference, dsd_apn_type_preference, "apn type preference") + QMICLI_FLAGS64_LIST_ITEM (QmiDsdApnTypePreference, dsd_apn_type_preference, "apn type preference") \ + QMICLI_FLAGS64_LIST_ITEM (QmiWdsApnTypeMask, wds_apn_type_mask, "apn type mask") #define QMICLI_FLAGS64_LIST_ITEM(TYPE,TYPE_UNDERSCORE,DESCR) \ gboolean qmicli_read_## TYPE_UNDERSCORE ##_from_string (const gchar *str, TYPE *out); diff --git a/src/qmicli/qmicli-wds.c b/src/qmicli/qmicli-wds.c index 6e8f75d..8bcf20d 100644 --- a/src/qmicli/qmicli-wds.c +++ b/src/qmicli/qmicli-wds.c @@ -1375,6 +1375,8 @@ typedef struct { gchar *name; QmiWdsPdpType pdp_type; gboolean pdp_type_set; + QmiWdsApnTypeMask apn_type; + gboolean apn_type_set; gchar *apn; gchar *username; gchar *password; @@ -1466,6 +1468,19 @@ create_modify_profile_properties_handle (const gchar *key, return TRUE; } + if (g_ascii_strcasecmp (key, "apn-type-mask") == 0 && !props->apn_type_set) { + if (!qmicli_read_wds_apn_type_mask_from_string (value, &(props->apn_type))) { + g_set_error (error, + QMI_CORE_ERROR, + QMI_CORE_ERROR_FAILED, + "unknown apn type '%s'", + value); + return FALSE; + } + props->apn_type_set = TRUE; + return TRUE; + } + if (g_ascii_strcasecmp (key, "no-roaming") == 0 && !props->no_roaming_set) { if (!qmicli_read_yes_no_from_string (value, &(props->no_roaming))) { g_set_error (error, @@ -1567,6 +1582,9 @@ create_profile_input_create (const gchar *str, if (props.pdp_type_set) qmi_message_wds_create_profile_input_set_pdp_type (*input, props.pdp_type, NULL); + if (props.apn_type_set) + qmi_message_wds_create_profile_input_set_apn_type_mask (*input, props.apn_type, NULL); + if (props.name) qmi_message_wds_create_profile_input_set_profile_name (*input, props.name, NULL); @@ -1880,6 +1898,9 @@ modify_profile_input_create (const gchar *str, if (props.pdp_type_set) qmi_message_wds_modify_profile_input_set_pdp_type (*input, props.pdp_type, NULL); + if (props.apn_type_set) + qmi_message_wds_modify_profile_input_set_apn_type_mask (*input, props.apn_type, NULL); + if (props.name) qmi_message_wds_modify_profile_input_set_profile_name (*input, props.name, NULL); |