aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--src/protocols/fingerclient.cpp5
-rw-r--r--src/protocols/geminiclient.cpp4
-rw-r--r--src/protocols/gopherclient.cpp5
3 files changed, 14 insertions, 0 deletions
diff --git a/src/protocols/fingerclient.cpp b/src/protocols/fingerclient.cpp
index 1c9a6a3..83d5e1e 100644
--- a/src/protocols/fingerclient.cpp
+++ b/src/protocols/fingerclient.cpp
@@ -49,6 +49,11 @@ bool FingerClient::isInProgress() const
bool FingerClient::cancelRequest()
{
was_cancelled = true;
+ if (socket.state() != QTcpSocket::UnconnectedState)
+ {
+ socket.disconnectFromHost();
+ this->socket.waitForDisconnected(500);
+ }
socket.close();
body.clear();
return true;
diff --git a/src/protocols/geminiclient.cpp b/src/protocols/geminiclient.cpp
index 13f795a..8be1cb6 100644
--- a/src/protocols/geminiclient.cpp
+++ b/src/protocols/geminiclient.cpp
@@ -87,6 +87,10 @@ bool GeminiClient::cancelRequest()
this->socket.disconnectFromHost();
this->buffer.clear();
this->body.clear();
+ if (socket.state() != QTcpSocket::UnconnectedState)
+ {
+ socket.disconnectFromHost();
+ }
this->socket.waitForDisconnected(500);
this->socket.close();
bool success = not isInProgress();
diff --git a/src/protocols/gopherclient.cpp b/src/protocols/gopherclient.cpp
index 658a3de..ec0fa70 100644
--- a/src/protocols/gopherclient.cpp
+++ b/src/protocols/gopherclient.cpp
@@ -64,6 +64,11 @@ bool GopherClient::isInProgress() const
bool GopherClient::cancelRequest()
{
was_cancelled = true;
+ if (socket.state() != QTcpSocket::UnconnectedState)
+ {
+ socket.disconnectFromHost();
+ socket.waitForDisconnected(1500);
+ }
socket.close();
body.clear();
return true;