implement --get-data-status
authorFelix Fietkau <nbd@openwrt.org>
Sat, 8 Jun 2013 23:01:13 +0000 (01:01 +0200)
committerFelix Fietkau <nbd@openwrt.org>
Sat, 8 Jun 2013 23:01:13 +0000 (01:01 +0200)
commands-wds.c
commands-wds.h

index 2128bbf..526c1dd 100644 (file)
@@ -65,3 +65,32 @@ cmd_wds_start_network_prepare(struct qmi_dev *qmi, struct qmi_request *req, stru
        qmi_set_wds_start_network_request(msg, &wds_sn_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)
+{
+       struct qmi_wds_get_packet_service_status_response res;
+       const char *data_status[] = {
+               [QMI_WDS_CONNECTION_STATUS_UNKNOWN] = "unknown",
+               [QMI_WDS_CONNECTION_STATUS_DISCONNECTED] = "disconnected",
+               [QMI_WDS_CONNECTION_STATUS_CONNECTED] = "connected",
+               [QMI_WDS_CONNECTION_STATUS_SUSPENDED] = "suspended",
+               [QMI_WDS_CONNECTION_STATUS_AUTHENTICATING] = "authenticating",
+       };
+       int s = 0;
+
+       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;
+
+       blobmsg_add_string(&status, NULL, data_status[s]);
+}
+
+static enum qmi_cmd_result
+cmd_wds_get_packet_service_status_prepare(struct qmi_dev *qmi, struct qmi_request *req, struct qmi_msg *msg, char *arg)
+{
+       qmi_set_wds_get_packet_service_status_request(msg);
+       return QMI_CMD_REQUEST;
+}
index b6198c2..c205057 100644 (file)
@@ -2,11 +2,14 @@
        __uqmi_command(wds_start_network, start-network, required, QMI_SERVICE_WDS), \
        __uqmi_command(wds_set_auth, auth-type, required, CMD_TYPE_OPTION), \
        __uqmi_command(wds_set_username, username, required, CMD_TYPE_OPTION), \
-       __uqmi_command(wds_set_password, password, required, CMD_TYPE_OPTION)
+       __uqmi_command(wds_set_password, password, required, CMD_TYPE_OPTION), \
+       __uqmi_command(wds_get_packet_service_status, get-data-status, no, CMD_TYPE_OPTION) \
+
 
 #define wds_helptext \
                "  --start-network <apn>:            Start network connection (use with options below)\n" \
                "    --auth-type pap|chap|both|none: Use network authentication type\n" \
                "    --username <name>:              Use network username\n" \
                "    --password <password>:          Use network password\n" \
+               "  --get-data-status:                Get current data access status\n" \