a5c4dcbfd37abd8bbd9aebb2700cdae59947f55f
[project/uqmi.git] / commands-wds.c
1 static struct qmi_wds_start_network_request wds_sn_req = {
2 QMI_INIT(authentication_preference,
3 QMI_WDS_AUTHENTICATION_PAP | QMI_WDS_AUTHENTICATION_CHAP),
4 };
5
6 #define cmd_wds_set_auth_cb no_cb
7 static enum qmi_cmd_result
8 cmd_wds_set_auth_prepare(struct qmi_dev *qmi, struct qmi_request *req, struct qmi_msg *msg, char *arg)
9 {
10 static const struct {
11 const char *name;
12 QmiWdsAuthentication auth;
13 } modes[] = {
14 { "pap", QMI_WDS_AUTHENTICATION_PAP },
15 { "chap", QMI_WDS_AUTHENTICATION_CHAP },
16 { "both", QMI_WDS_AUTHENTICATION_PAP | QMI_WDS_AUTHENTICATION_CHAP },
17 { "none", QMI_WDS_AUTHENTICATION_NONE },
18 };
19 int i;
20
21 for (i = 0; i < ARRAY_SIZE(modes); i++) {
22 if (strcasecmp(modes[i].name, arg) != 0)
23 continue;
24
25 qmi_set(&wds_sn_req, authentication_preference, modes[i].auth);
26 return QMI_CMD_DONE;
27 }
28
29 fprintf(stderr, "Invalid auth mode (valid: pap, chap, both, none)\n");
30 return QMI_CMD_EXIT;
31 }
32
33 #define cmd_wds_set_username_cb no_cb
34 static enum qmi_cmd_result
35 cmd_wds_set_username_prepare(struct qmi_dev *qmi, struct qmi_request *req, struct qmi_msg *msg, char *arg)
36 {
37 qmi_set_ptr(&wds_sn_req, username, arg);
38 return QMI_CMD_DONE;
39 }
40
41 #define cmd_wds_set_password_cb no_cb
42 static enum qmi_cmd_result
43 cmd_wds_set_password_prepare(struct qmi_dev *qmi, struct qmi_request *req, struct qmi_msg *msg, char *arg)
44 {
45 qmi_set_ptr(&wds_sn_req, password, arg);
46 return QMI_CMD_DONE;
47 }