1 /*
2  * wpa_gui - UserDataRequest class
3  * Copyright (c) 2005-2006, Jouni Malinen <j@w1.fi>
4  *
5  * This software may be distributed under the terms of the BSD license.
6  * See README for more details.
7  */
8 
9 #include "userdatarequest.h"
10 #include "wpagui.h"
11 #include "common/wpa_ctrl.h"
12 
13 
UserDataRequest(QWidget * parent,const char *,bool,Qt::WindowFlags)14 UserDataRequest::UserDataRequest(QWidget *parent, const char *, bool,
15                                          Qt::WindowFlags)
16           : QDialog(parent)
17 {
18           setupUi(this);
19 
20           connect(buttonOk, SIGNAL(clicked()), this, SLOT(sendReply()));
21           connect(buttonCancel, SIGNAL(clicked()), this, SLOT(reject()));
22           connect(queryEdit, SIGNAL(returnPressed()), this, SLOT(sendReply()));
23 }
24 
25 
~UserDataRequest()26 UserDataRequest::~UserDataRequest()
27 {
28 }
29 
30 
languageChange()31 void UserDataRequest::languageChange()
32 {
33           retranslateUi(this);
34 }
35 
36 
setParams(WpaGui * _wpagui,const char * reqMsg)37 int UserDataRequest::setParams(WpaGui *_wpagui, const char *reqMsg)
38 {
39           char *tmp, *pos, *pos2;
40           wpagui = _wpagui;
41           tmp = strdup(reqMsg);
42           if (tmp == NULL)
43                     return -1;
44           pos = strchr(tmp, '-');
45           if (pos == NULL) {
46                     free(tmp);
47                     return -1;
48           }
49           *pos++ = '\0';
50           field = tmp;
51           pos2 = strchr(pos, ':');
52           if (pos2 == NULL) {
53                     free(tmp);
54                     return -1;
55           }
56           *pos2++ = '\0';
57 
58           networkid = atoi(pos);
59           queryInfo->setText(pos2);
60           if (strcmp(tmp, "PASSWORD") == 0) {
61                     queryField->setText(tr("Password: "));
62                     queryEdit->setEchoMode(QLineEdit::Password);
63           } else if (strcmp(tmp, "NEW_PASSWORD") == 0) {
64                     queryField->setText(tr("New password: "));
65                     queryEdit->setEchoMode(QLineEdit::Password);
66           } else if (strcmp(tmp, "IDENTITY") == 0)
67                     queryField->setText(tr("Identity: "));
68           else if (strcmp(tmp, "PASSPHRASE") == 0) {
69                     queryField->setText(tr("Private key passphrase: "));
70                     queryEdit->setEchoMode(QLineEdit::Password);
71           } else
72                     queryField->setText(field + ":");
73           free(tmp);
74 
75           return 0;
76 }
77 
78 
sendReply()79 void UserDataRequest::sendReply()
80 {
81           char reply[10];
82           size_t reply_len = sizeof(reply);
83 
84           if (wpagui == NULL) {
85                     reject();
86                     return;
87           }
88 
89           QString cmd = QString(WPA_CTRL_RSP) + field + '-' +
90                     QString::number(networkid) + ':' +
91                     queryEdit->text();
92           wpagui->ctrlRequest(cmd.toLocal8Bit().constData(), reply, &reply_len);
93           accept();
94 }
95