From 57f1481a438348f499bf3d4b61ac7c6af24772f8 Mon Sep 17 00:00:00 2001 From: Liran BN Date: Fri, 20 Jun 2014 20:13:21 +0300 Subject: [PATCH] fixing qt ssl socket --- main/loginhandler.cpp | 1 + main/loginhandler.h | 3 +++ main/mainscreen.cpp | 22 ++++++++--------- main/mainscreen.ui | 13 ++++------ src/connection/qtsslsocket.cpp | 43 ++++++++++++++++++++++------------ src/connection/qtsslsocket.h | 10 +++++++- src/jce/jcelogin.cpp | 1 + src/jce/jcelogin.h | 4 ++-- 8 files changed, 60 insertions(+), 37 deletions(-) diff --git a/main/loginhandler.cpp b/main/loginhandler.cpp index 6c73ecb..14e1b73 100644 --- a/main/loginhandler.cpp +++ b/main/loginhandler.cpp @@ -82,6 +82,7 @@ bool loginHandler::makeConnection() return false; } + bool loginHandler::isLoggedInFlag() { return this->logggedInFlag; diff --git a/main/loginhandler.h b/main/loginhandler.h index 1f5c08f..ed89a91 100644 --- a/main/loginhandler.h +++ b/main/loginhandler.h @@ -34,6 +34,9 @@ private: QLabel *statusLabelPtr; QLineEdit *pswdEditPtr; QLineEdit *usrnmEditPtr; + + + }; #endif // LOGINHANDLER_H diff --git a/main/mainscreen.cpp b/main/mainscreen.cpp index d1027b9..c3291c2 100644 --- a/main/mainscreen.cpp +++ b/main/mainscreen.cpp @@ -50,9 +50,18 @@ MainScreen::~MainScreen() delete loginHandel; delete ui; } +void MainScreen::on_loginButton_clicked() +{ + if (loginHandel->isLoggedInFlag()) + uiSetDisconnectMode(); + + else + uiSetConnectMode(); + +} + void MainScreen::on_ratesButton_clicked() { - std::string pageString; int status = 0; if (loginHandel->isLoggedInFlag()) @@ -72,7 +81,6 @@ void MainScreen::on_ratesButton_clicked() } - void MainScreen::on_spinBoxFromYear_editingFinished() { if (ui->spinBoxFromYear->value() > ui->spinBoxToYear->value()) @@ -128,15 +136,7 @@ void MainScreen::on_coursesTable_itemChanged(QTableWidgetItem *item) QMessageBox::critical(this,"Error","Missmatching data"); } -void MainScreen::on_loginButton_clicked() -{ - if (loginHandel->isLoggedInFlag()) - uiSetDisconnectMode(); - else - uiSetConnectMode(); - -} void MainScreen::on_checkBox_toggled(bool checked) { @@ -192,7 +192,6 @@ void MainScreen::uiSetConnectMode() //fix before distrbute userLoginSetting->setPassword(password); this->loginHandel->setPointers(statusLabel,ui->pswdLineEdit,ui->usrnmLineEdit); - if (loginHandel->makeConnection() == true) { setLabelConnectionStatus(jceLogin::jceStatus::JCE_YOU_ARE_IN); @@ -200,6 +199,7 @@ void MainScreen::uiSetConnectMode() //fix before distrbute this->ui->ratesButton->setEnabled(true); ui->CoursesTab->setEnabled(true); ui->SettingsTab->setEnabled(true); + } else { diff --git a/main/mainscreen.ui b/main/mainscreen.ui index 71fd677..44007b2 100644 --- a/main/mainscreen.ui +++ b/main/mainscreen.ui @@ -293,9 +293,6 @@ font-size: 15px; - - - @@ -587,9 +584,6 @@ font-size: 15px; false - - false - 2009 @@ -599,6 +593,9 @@ font-size: 15px; 2009 + + false + @@ -655,7 +652,7 @@ font-size: 15px; - Only influences Courses + Only influence Courses false @@ -678,7 +675,7 @@ font-size: 15px; 0 0 855 - 29 + 21 diff --git a/src/connection/qtsslsocket.cpp b/src/connection/qtsslsocket.cpp index 26698d4..d5e5823 100644 --- a/src/connection/qtsslsocket.cpp +++ b/src/connection/qtsslsocket.cpp @@ -3,29 +3,24 @@ bool qtsslsocket::makeConnect(std::string server,int port) { - if (this->socket != NULL) //already connected? - { - socket->close(); - socket = NULL; - } - - if (this->socket == NULL) //if was connected, we deleted it and remake it - socket = new QSslSocket(); + if (isCon()) + socket->abort(); - if (this->socket != NULL) //now we will connect it to host - { - socket->connectToHostEncrypted(server.c_str(), port); - if (socket->waitForEncrypted()) //waiting for encryption - flag = true; - } + socket->connectToHostEncrypted(server.c_str(), port); + socket->waitForEncrypted(); - return isCon(); //return true/false upon isCon function + return true; //return true/false upon isCon function } qtsslsocket::qtsslsocket() : flag(false) { socket = new QSslSocket(); + connect(socket,SIGNAL(error(QAbstractSocket::SocketError)),this,SLOT(checkErrors(QAbstractSocket::SocketError))); + connect(socket,SIGNAL(connected()),this,SLOT(setConnected())); + connect(socket,SIGNAL(encrypted()),this,SLOT(setEncrypted())); + this->flag = true; + } @@ -72,3 +67,21 @@ bool qtsslsocket::makeDiconnect() return false; return true; } + +void qtsslsocket::checkErrors(QAbstractSocket::SocketError info) +{ +} + +void qtsslsocket::setConnected() +{ +// socket->waitForEncrypted(); + +} + +void qtsslsocket::setEncrypted() +{ + +// this->flag = true; +} + + diff --git a/src/connection/qtsslsocket.h b/src/connection/qtsslsocket.h index d469fdc..fb60910 100644 --- a/src/connection/qtsslsocket.h +++ b/src/connection/qtsslsocket.h @@ -7,7 +7,7 @@ #include #include #include -#define milisTimeOut 3000 +#define milisTimeOut 3500 class qtsslsocket : public QObject { @@ -24,10 +24,18 @@ public: bool makeDiconnect(); +private slots: + void checkErrors(QAbstractSocket::SocketError); + void setConnected(); + void setEncrypted(); + + private: QSslSocket *socket; bool flag; + }; + #endif // QTSSLSOCKET_H diff --git a/src/jce/jcelogin.cpp b/src/jce/jcelogin.cpp index 9bf92f2..d2b0fe5 100644 --- a/src/jce/jcelogin.cpp +++ b/src/jce/jcelogin.cpp @@ -5,6 +5,7 @@ jceLogin::jceLogin(user * username) this->recieverPage = new std::string(); this->jceA = username; this->JceConnector = new qtsslsocket(); + } jceLogin::~jceLogin() diff --git a/src/jce/jcelogin.h b/src/jce/jcelogin.h index ff9468e..e3a1a4c 100644 --- a/src/jce/jcelogin.h +++ b/src/jce/jcelogin.h @@ -9,8 +9,6 @@ #include "jceLoginHtmlScripts.h" - - class jceLogin { public: @@ -43,6 +41,8 @@ public: + + private: int makeFirstVisit(); bool checkValidation();