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
14UserDataRequest::UserDataRequest(QWidget *parent, const char *, bool,
15				 Qt::WFlags)
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
26UserDataRequest::~UserDataRequest()
27{
28}
29
30
31void UserDataRequest::languageChange()
32{
33	retranslateUi(this);
34}
35
36
37int 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
79void 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.toAscii().constData(), reply, &reply_len);
93	accept();
94}
95