diff options
Diffstat (limited to 'commands-wds.c')
-rw-r--r-- | commands-wds.c | 25 |
1 files changed, 25 insertions, 0 deletions
diff --git a/commands-wds.c b/commands-wds.c index a1804cf..08244a8 100644 --- a/commands-wds.c +++ b/commands-wds.c @@ -117,6 +117,31 @@ cmd_wds_get_packet_service_status_prepare(struct qmi_dev *qmi, struct qmi_reques return QMI_CMD_REQUEST; } +#define cmd_wds_set_autoconnect_setting_cb no_cb +static enum qmi_cmd_result +cmd_wds_set_autoconnect_setting_prepare(struct qmi_dev *qmi, struct qmi_request *req, struct qmi_msg *msg, char *arg) +{ + struct qmi_wds_set_autoconnect_setting_request ac_req; + const char *modes[] = { + [QMI_WDS_AUTOCONNECT_DISABLED] = "disabled", + [QMI_WDS_AUTOCONNECT_ENABLED] = "enabled", + [QMI_WDS_AUTOCONNECT_PAUSED] = "paused", + }; + int i; + + for (i = 0; i < ARRAY_SIZE(modes); i++) { + if (strcasecmp(modes[i], arg) != 0) + continue; + + qmi_set(&ac_req, setting, i); + qmi_set_wds_set_autoconnect_setting_request(msg, &ac_req); + return QMI_CMD_DONE; + } + + uqmi_add_error("Invalid value (valid: disabled, enabled, paused)"); + return QMI_CMD_EXIT; +} + #define cmd_wds_reset_cb no_cb static enum qmi_cmd_result cmd_wds_reset_prepare(struct qmi_dev *qmi, struct qmi_request *req, struct qmi_msg *msg, char *arg) |