add a command for changing the autoconnect setting
[project/uqmi.git] / commands-wds.c
index a1804cf..08244a8 100644 (file)
@@ -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)