summaryrefslogtreecommitdiff
path: root/client/SslClient.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'client/SslClient.cpp')
-rw-r--r--client/SslClient.cpp19
1 files changed, 17 insertions, 2 deletions
diff --git a/client/SslClient.cpp b/client/SslClient.cpp
index e13a028..3909210 100644
--- a/client/SslClient.cpp
+++ b/client/SslClient.cpp
@@ -13,6 +13,7 @@ SslClient::SslClient(): port(13666)
SslClient::SslClient(QString addr): port(13666)
{
server = addr;
+ _currentRequest = Unknown;
/* read certificates */
QFile ca_cert_file(":/ca.crt");
@@ -74,8 +75,8 @@ void SslClient::SendRequest(RequestType type)
if (sslSocket.state() != QAbstractSocket::ConnectedState)
{
Logger::Trace("Connecting to server %s:%u\n", server.toLocal8Bit().data(), port);
+ _currentRequest = type;
sslSocket.connectToHostEncrypted(server, port);
- sslSocket.waitForEncrypted(-1);
}
else
{
@@ -101,6 +102,7 @@ void SslClient::SendRequest(RequestType type)
char data[5] = {0x13, 0x13, rcode, 0x14, 0x14};
QByteArray pkt(data);
sslSocket.write(pkt);
+ _currentRequest = Unknown;
}
void SslClient::SendFileRequest(string filename)
@@ -109,8 +111,9 @@ void SslClient::SendFileRequest(string filename)
if (sslSocket.state() != QAbstractSocket::ConnectedState)
{
Logger::Trace("Connecting to server %s:%u\n", server.toLocal8Bit().data(), port);
+ _currentFile = filename;
+ _currentRequest = RegularFile;
sslSocket.connectToHostEncrypted(server, port);
- sslSocket.waitForEncrypted(-1);
}
else
{
@@ -128,6 +131,7 @@ void SslClient::SendFileRequest(string filename)
data[pkt_size - 1] = data[pkt_size - 2] = 0x14;
QByteArray pkt(data);
sslSocket.write(pkt);
+ _currentRequest = Unknown;
}
@@ -137,6 +141,17 @@ void SslClient::SendFileRequest(string filename)
void SslClient::Connected()
{
Logger::Info("Connected to server %s\n", server.toStdString().c_str());
+ if (_currentRequest != Unknown)
+ {
+ if (_currentRequest == RegularFile)
+ {
+ SendFileRequest(_currentFile);
+ }
+ else
+ {
+ SendRequest(_currentRequest);
+ }
+ }
}
void SslClient::Disconnected()