diff options
author | Gluzskiy Alexandr <sss@sss.chaoslab.ru> | 2011-11-08 00:38:12 +0200 |
---|---|---|
committer | Gluzskiy Alexandr <sss@sss.chaoslab.ru> | 2011-11-08 00:38:12 +0200 |
commit | a555d8f848e94a62d1cf159e5718341e68e73e92 (patch) | |
tree | 1b98604f6a07b81463f3b664c65d228f89ae7874 | |
parent | c68a4124fc698c4b050df039075db4dd3d263080 (diff) | |
parent | c02539a547846c096ed493f70fcb440dcaec3978 (diff) |
Merge branch 'master' of ssh://sss.chaoslab.ru//home/private_git/proxy_ui
-rwxr-xr-x | client/Config.cpp | 2 | ||||
-rw-r--r-- | client/SslClient.cpp | 44 | ||||
-rw-r--r-- | client/SslClient.h | 10 | ||||
-rw-r--r-- | client/config.cfg | 3 |
4 files changed, 19 insertions, 40 deletions
diff --git a/client/Config.cpp b/client/Config.cpp index 31e5189..acb3684 100755 --- a/client/Config.cpp +++ b/client/Config.cpp @@ -96,7 +96,7 @@ Config::Config(): QObject(), StaticProxySpeedLow(50) connect(configUpdateTimer, SIGNAL(timeout()), this, SLOT(updateConfig())); - client = new SslClient(servers[0].host); + client = new SslClient(QString::fromStdString(servers[0].host)); connect(client, SIGNAL(ReplyRecieved(SslClient::RequestType&, QByteArray&)), this, SLOT(gotServerReply(SslClient::RequestType&, QByteArray&))); client->SendRequest(SslClient::Config); diff --git a/client/SslClient.cpp b/client/SslClient.cpp index 085cb16..729daaa 100644 --- a/client/SslClient.cpp +++ b/client/SslClient.cpp @@ -5,15 +5,10 @@ SslClient::SslClient(): port(13666) { - SslClient((char*)"127.0.0.1"); + SslClient(QString("127.0.0.1")); } -SslClient::SslClient(string &addr): port(13666) -{ - SslClient((char*)addr.c_str()); -} - -SslClient::SslClient(char* addr): port(13666) +SslClient::SslClient(QString addr): port(13666) { server = addr; @@ -21,22 +16,22 @@ SslClient::SslClient(char* addr): port(13666) QFile ca_cert_file(":/ca.crt"); ca_cert_file.open(QIODevice::ReadOnly); QByteArray ca_cert_arr = ca_cert_file.readAll(); - ca_cert_file.close(); QSslCertificate ca_cert(ca_cert_arr); QList<QSslCertificate> ca_certs; ca_certs.push_back(ca_cert); + ca_cert_file.close(); QFile key_file(":/client.key"); key_file.open(QIODevice::ReadOnly); QByteArray key_arr = key_file.readAll(); - key_file.close(); QSslKey key(key_arr, QSsl::Rsa); + key_file.close(); QFile cert_file(":/client.crt"); cert_file.open(QIODevice::ReadOnly); QByteArray cert_arr = cert_file.readAll(); - cert_file.close(); QSslCertificate cert(cert_arr); + cert_file.close(); /* create ssl socket */ //sslSocket = new QSslSocket; @@ -45,18 +40,6 @@ SslClient::SslClient(char* addr): port(13666) sslSocket.setCaCertificates(ca_certs); sslSocket.setPeerVerifyMode(QSslSocket::VerifyPeer); sslSocket.setProtocol(QSsl::SslV3); -#ifdef DEBUG - Logger::Trace("We have following ca certs:\n"); - for(QList<QSslCertificate>::iterator it = sslSocket.caCertificates().begin(), end = sslSocket.caCertificates().begin(); it != end; ++it) - { - Logger::Trace(it->toPem().data()); - Logger::Trace("\n"); - } - Logger::Trace("We have following local cert:\n"); - Logger::Trace(sslSocket.localCertificate().toPem().data()); - Logger::Trace("\n"); - -#endif /* setup signal handlers */ connect(&sslSocket, SIGNAL(encrypted()), @@ -73,7 +56,7 @@ SslClient::SslClient(char* addr): port(13666) this, SLOT(SslErrors(const QList<QSslError> &))); } -void SslClient::SetServerAddr(char* addr) +void SslClient::SetServerAddr(QString addr) { server = addr; } @@ -82,7 +65,10 @@ void SslClient::SendRequest(RequestType type) { Logger::Trace("Sending request w code %x\n", type); if (sslSocket.state() != QAbstractSocket::ConnectedState) - sslSocket.connectToHostEncrypted(server, port); + { + Logger::Trace("Connecting to server %s:%u\n", server.toLocal8Bit().data(), port); + sslSocket.connectToHostEncrypted(server, port); + } unsigned char rcode = 0x00; switch (type) @@ -94,7 +80,7 @@ void SslClient::SendRequest(RequestType type) rcode = type; break; default: - Logger::Error("Invalid server request type"); + Logger::Error("Invalid server request type\n"); break; } @@ -129,7 +115,7 @@ void SslClient::DataRecieved() if ((h1 != 0x13) || (h2 != 0x13) || (t1 != 0x14) || (t2 != 0x14)) { - Logger::Error("Invalid data packet recieved!"); + Logger::Error("Invalid data packet recieved!\n"); return; } @@ -221,7 +207,7 @@ void SslClient::Error(QAbstractSocket::SocketError e) desc = "Unknown error"; } - Logger::Fatal(QString("Socket error! (" + desc + ")").toStdString()); + Logger::Fatal("Socket error! ( %s)\n", desc.toLocal8Bit().data()); } void SslClient::PeerVerifyError(const QSslError &error) @@ -238,7 +224,7 @@ void SslClient::PeerVerifyError(const QSslError &error) sslSocket.abort(); break; default: - Logger::Fatal("Can't verify peer: %s", error.errorString().toStdString().c_str()); + Logger::Fatal("Can't verify peer: %s\n", error.errorString().toStdString().c_str()); break; } } @@ -249,7 +235,7 @@ void SslClient::SslErrors(const QList<QSslError> &errors) { for (int i = 0; i < errors.size(); i++) { - Logger::Fatal("%s", errors[i].errorString().toStdString().c_str()); + Logger::Fatal("%s\n", errors[i].errorString().toStdString().c_str()); } } } diff --git a/client/SslClient.h b/client/SslClient.h index 030c335..d99fd47 100644 --- a/client/SslClient.h +++ b/client/SslClient.h @@ -60,22 +60,16 @@ public: SslClient(); /** - * @brief setup ssl socket ans it's type, certificates and key - * @param addr server address or hostname to connect to - */ - SslClient(string &addr); - - /** * @brief setup ssl socket ans it's type, certificates and key * @param addr server address or hostname to connect to */ - SslClient(char* addr); + SslClient(QString addr); /** * @brief set server address to connect to * @param addr server address or hostname to connect to */ - void SetServerAddr(char* addr); + void SetServerAddr(QString addr); /** * @brief Request generic proxy list diff --git a/client/config.cfg b/client/config.cfg index dcc139b..7d79909 100644 --- a/client/config.cfg +++ b/client/config.cfg @@ -1,7 +1,6 @@ config_update_interval=600; client_update_interval=60000; -server=8.8.8.8 600 60; -server=8.8.4.4 100 50; +server=127.0.0.1 600 60; welcome_msg=Hello, world!; config_downloaded_msg=Конфиг успешно загружен!; top_panel_text=Верхняя панель; |