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