1202375Srdivacky/*
2202375Srdivacky * wpa_gui - UserDataRequest class
3202375Srdivacky * Copyright (c) 2005-2006, Jouni Malinen <j@w1.fi>
4202375Srdivacky *
5202375Srdivacky * This software may be distributed under the terms of the BSD license.
6202375Srdivacky * See README for more details.
7202375Srdivacky */
8202375Srdivacky
9202375Srdivacky#include "userdatarequest.h"
10202375Srdivacky#include "wpagui.h"
11202375Srdivacky#include "common/wpa_ctrl.h"
12202375Srdivacky
13202375Srdivacky
14202375SrdivackyUserDataRequest::UserDataRequest(QWidget *parent, const char *, bool,
15202375Srdivacky				 Qt::WindowFlags)
16202375Srdivacky	: QDialog(parent)
17249423Sdim{
18249423Sdim	setupUi(this);
19249423Sdim
20202375Srdivacky	connect(buttonOk, SIGNAL(clicked()), this, SLOT(sendReply()));
21202375Srdivacky	connect(buttonCancel, SIGNAL(clicked()), this, SLOT(reject()));
22249423Sdim	connect(queryEdit, SIGNAL(returnPressed()), this, SLOT(sendReply()));
23202375Srdivacky}
24249423Sdim
25202375Srdivacky
26202375SrdivackyUserDataRequest::~UserDataRequest()
27202375Srdivacky{
28249423Sdim}
29202375Srdivacky
30202375Srdivacky
31202375Srdivackyvoid UserDataRequest::languageChange()
32202375Srdivacky{
33202375Srdivacky	retranslateUi(this);
34202375Srdivacky}
35202375Srdivacky
36202375Srdivacky
37202375Srdivackyint UserDataRequest::setParams(WpaGui *_wpagui, const char *reqMsg)
38218893Sdim{
39202375Srdivacky	char *tmp, *pos, *pos2;
40202375Srdivacky	wpagui = _wpagui;
41202375Srdivacky	tmp = strdup(reqMsg);
42202375Srdivacky	if (tmp == NULL)
43202375Srdivacky		return -1;
44202375Srdivacky	pos = strchr(tmp, '-');
45202375Srdivacky	if (pos == NULL) {
46202375Srdivacky		free(tmp);
47202375Srdivacky		return -1;
48202375Srdivacky	}
49202375Srdivacky	*pos++ = '\0';
50202375Srdivacky	field = tmp;
51202375Srdivacky	pos2 = strchr(pos, ':');
52202375Srdivacky	if (pos2 == NULL) {
53202375Srdivacky		free(tmp);
54202375Srdivacky		return -1;
55202375Srdivacky	}
56202375Srdivacky	*pos2++ = '\0';
57249423Sdim
58249423Sdim	networkid = atoi(pos);
59202375Srdivacky	queryInfo->setText(pos2);
60202375Srdivacky	if (strcmp(tmp, "PASSWORD") == 0) {
61202375Srdivacky		queryField->setText(tr("Password: "));
62202375Srdivacky		queryEdit->setEchoMode(QLineEdit::Password);
63202375Srdivacky	} else if (strcmp(tmp, "NEW_PASSWORD") == 0) {
64202375Srdivacky		queryField->setText(tr("New password: "));
65202375Srdivacky		queryEdit->setEchoMode(QLineEdit::Password);
66202375Srdivacky	} else if (strcmp(tmp, "IDENTITY") == 0)
67202375Srdivacky		queryField->setText(tr("Identity: "));
68202375Srdivacky	else if (strcmp(tmp, "PASSPHRASE") == 0) {
69249423Sdim		queryField->setText(tr("Private key passphrase: "));
70202375Srdivacky		queryEdit->setEchoMode(QLineEdit::Password);
71202375Srdivacky	} else
72202375Srdivacky		queryField->setText(field + ":");
73202375Srdivacky	free(tmp);
74202375Srdivacky
75202375Srdivacky	return 0;
76202375Srdivacky}
77202375Srdivacky
78202375Srdivacky
79202375Srdivackyvoid UserDataRequest::sendReply()
80202375Srdivacky{
81202375Srdivacky	char reply[10];
82202375Srdivacky	size_t reply_len = sizeof(reply);
83202375Srdivacky
84202375Srdivacky	if (wpagui == NULL) {
85202375Srdivacky		reject();
86202375Srdivacky		return;
87202375Srdivacky	}
88202375Srdivacky
89202375Srdivacky	QString cmd = QString(WPA_CTRL_RSP) + field + '-' +
90249423Sdim		QString::number(networkid) + ':' +
91202375Srdivacky		queryEdit->text();
92202375Srdivacky	wpagui->ctrlRequest(cmd.toLocal8Bit().constData(), reply, &reply_len);
93202375Srdivacky	accept();
94202375Srdivacky}
95202375Srdivacky