+#include <stdlib.h>
+
#include "qmi-message.h"
static struct qmi_wds_start_network_request wds_sn_req = {
QMI_INIT(authentication_preference,
QMI_WDS_AUTHENTICATION_PAP | QMI_WDS_AUTHENTICATION_CHAP),
};
+static struct qmi_wds_stop_network_request wds_stn_req;
#define cmd_wds_set_auth_cb no_cb
static enum qmi_cmd_result
static enum qmi_cmd_result
cmd_wds_set_autoconnect_prepare(struct qmi_dev *qmi, struct qmi_request *req, struct qmi_msg *msg, char *arg)
{
- qmi_set_ptr(&wds_sn_req, enable_autoconnect, true);
+ qmi_set(&wds_sn_req, enable_autoconnect, true);
+ qmi_set(&wds_stn_req, disable_autoconnect, true);
return QMI_CMD_DONE;
}
return QMI_CMD_REQUEST;
}
+#define cmd_wds_stop_network_cb no_cb
+static enum qmi_cmd_result
+cmd_wds_stop_network_prepare(struct qmi_dev *qmi, struct qmi_request *req, struct qmi_msg *msg, char *arg)
+{
+ uint32_t pdh = strtoul(arg, NULL, 0);
+
+ qmi_set(&wds_stn_req, packet_data_handle, pdh);
+ qmi_set_wds_stop_network_request(msg, &wds_stn_req);
+ return QMI_CMD_REQUEST;
+}
+
static void
cmd_wds_get_packet_service_status_cb(struct qmi_dev *qmi, struct qmi_request *req, struct qmi_msg *msg)
{
qmi_parse_wds_get_packet_service_status_response(msg, &res);
if (res.set.connection_status &&
- res.data.connection_status >= 0 &&
res.data.connection_status < ARRAY_SIZE(data_status))
s = res.data.connection_status;
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)