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