summaryrefslogtreecommitdiff
path: root/client/SslClient.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'client/SslClient.cpp')
-rw-r--r--client/SslClient.cpp40
1 files changed, 36 insertions, 4 deletions
diff --git a/client/SslClient.cpp b/client/SslClient.cpp
index d54523c..5a309c4 100644
--- a/client/SslClient.cpp
+++ b/client/SslClient.cpp
@@ -97,19 +97,51 @@ void SslClient::SendRequest(RequestType type)
*/
void SslClient::Connected()
{
- Logger::Info("Connected to server\n");
+ Logger::Info("Connected to server %s\n", server.toStdString().c_str());
}
void SslClient::Disconnected()
{
- Logger::Info("Disconnected from server\n");
+ Logger::Info("Disconnected from server %s\n", server.toStdString().c_str());
}
void SslClient::DataRecieved()
{
- Logger::Trace("Reply recieved\n");
+ Logger::Trace("Recieved reply from %s\n", server.toStdString().c_str());
QByteArray data = sslSocket->readAll();
- qDebug() << data;
+
+ int length = data.size();
+ char h1 = data[0];
+ char h2 = data[1];
+ char t1 = data[length-1];
+ char t2 = data[length];
+ if ((h1 != 0x13) || (h2 != 0x13) ||
+ (t1 != 0x14) || (t2 != 0x14))
+ {
+ Logger::Error("Invalid data packet recieved!");
+ return;
+ }
+
+ RequestType type;
+ char rcode = data[2];
+ switch (rcode)
+ {
+ case 0x01:
+ case 0x02:
+ case 0x04:
+ case 0x08:
+ type = (RequestType)rcode;
+ break;
+ default:
+ Logger::Error("Invalid reply code: %x\n", rcode);
+ return;
+ }
+
+ /* remove header and tail */
+ data.remove(0, 3);
+ data.remove(length-1, 2);
+
+ emit ReplyRecieved(type, data);
}
void SslClient::Error(QAbstractSocket::SocketError socketError)