From 4dc7cdb8f779b22de2ce2db64a68068dfaead592 Mon Sep 17 00:00:00 2001 From: John Sennesael Date: Fri, 21 Aug 2020 10:20:57 -0500 Subject: bugfix for issue #48 --- src/protocols/fingerclient.cpp | 5 +++++ src/protocols/geminiclient.cpp | 4 ++++ src/protocols/gopherclient.cpp | 5 +++++ 3 files changed, 14 insertions(+) (limited to 'src') 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; -- cgit v1.2.3