summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMatti Laakso <malaakso@elisanet.fi>2014-05-27 21:12:13 +0200
committerFelix Fietkau <nbd@openwrt.org>2014-05-27 22:26:05 +0200
commitec21ac7168f0f404266e4498beddb962b21a6384 (patch)
treea8f36ca222e7051fba813ac41994529997a03dc4
parent6e92c519f4276e883388f7831e1506905be0c511 (diff)
Add --stop-network
Signed-off-by: Matti Laakso <malaakso@elisanet.fi>
-rw-r--r--commands-wds.c15
-rw-r--r--commands-wds.h3
2 files changed, 18 insertions, 0 deletions
diff --git a/commands-wds.c b/commands-wds.c
index 91cf15c..ce7d715 100644
--- a/commands-wds.c
+++ b/commands-wds.c
@@ -1,9 +1,12 @@
+#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
@@ -53,6 +56,7 @@ 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(&wds_sn_req, enable_autoconnect, true);
+ qmi_set(&wds_stn_req, disable_autoconnect, true);
return QMI_CMD_DONE;
}
@@ -74,6 +78,17 @@ cmd_wds_start_network_prepare(struct qmi_dev *qmi, struct qmi_request *req, stru
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)
{
diff --git a/commands-wds.h b/commands-wds.h
index ea64e82..60e922d 100644
--- a/commands-wds.h
+++ b/commands-wds.h
@@ -4,6 +4,7 @@
__uqmi_command(wds_set_username, username, required, CMD_TYPE_OPTION), \
__uqmi_command(wds_set_password, password, required, CMD_TYPE_OPTION), \
__uqmi_command(wds_set_autoconnect, autoconnect, no, CMD_TYPE_OPTION), \
+ __uqmi_command(wds_stop_network, stop-network, required, QMI_SERVICE_WDS), \
__uqmi_command(wds_get_packet_service_status, get-data-status, no, QMI_SERVICE_WDS), \
__uqmi_command(wds_reset, reset-wds, no, QMI_SERVICE_WDS) \
@@ -14,5 +15,7 @@
" --username <name>: Use network username\n" \
" --password <password>: Use network password\n" \
" --autoconnect: Enable automatic connect/reconnect\n" \
+ " --stop-network <pdh>: Stop network connection (use with option below)\n" \
+ " --autoconnect: Disable automatic connect/reconnect\n" \
" --get-data-status: Get current data access status\n" \