mirror of
https://github.com/d47081/qBittorrent.git
synced 2025-02-05 03:14:44 +00:00
Restart idle timer on sending network response
This commit is contained in:
parent
c652123145
commit
ece92a886a
@ -45,8 +45,18 @@ Connection::Connection(QTcpSocket *socket, IRequestHandler *requestHandler, QObj
|
||||
, m_requestHandler(requestHandler)
|
||||
{
|
||||
m_socket->setParent(this);
|
||||
|
||||
// reset timer when there are activity
|
||||
m_idleTimer.start();
|
||||
connect(m_socket, &QTcpSocket::readyRead, this, &Connection::read);
|
||||
connect(m_socket, &QIODevice::readyRead, this, [this]()
|
||||
{
|
||||
m_idleTimer.start();
|
||||
read();
|
||||
});
|
||||
connect(m_socket, &QIODevice::bytesWritten, this, [this]()
|
||||
{
|
||||
m_idleTimer.start();
|
||||
});
|
||||
}
|
||||
|
||||
Connection::~Connection()
|
||||
@ -56,7 +66,6 @@ Connection::~Connection()
|
||||
|
||||
void Connection::read()
|
||||
{
|
||||
m_idleTimer.restart();
|
||||
m_receivedData.append(m_socket->readAll());
|
||||
|
||||
while (!m_receivedData.isEmpty())
|
||||
@ -66,7 +75,7 @@ void Connection::read()
|
||||
switch (result.status)
|
||||
{
|
||||
case RequestParser::ParseStatus::Incomplete:
|
||||
{
|
||||
{
|
||||
const long bufferLimit = RequestParser::MAX_CONTENT_SIZE * 1.1; // some margin for headers
|
||||
if (m_receivedData.size() > bufferLimit)
|
||||
{
|
||||
@ -83,7 +92,7 @@ void Connection::read()
|
||||
return;
|
||||
|
||||
case RequestParser::ParseStatus::BadRequest:
|
||||
{
|
||||
{
|
||||
Logger::instance()->addMessage(tr("Bad Http request, closing socket. IP: %1")
|
||||
.arg(m_socket->peerAddress().toString()), Log::WARNING);
|
||||
|
||||
@ -96,7 +105,7 @@ void Connection::read()
|
||||
return;
|
||||
|
||||
case RequestParser::ParseStatus::OK:
|
||||
{
|
||||
{
|
||||
const Environment env {m_socket->localAddress(), m_socket->localPort(), m_socket->peerAddress(), m_socket->peerPort()};
|
||||
|
||||
Response resp = m_requestHandler->processRequest(result.request, env);
|
||||
|
@ -52,11 +52,9 @@ namespace Http
|
||||
bool hasExpired(qint64 timeout) const;
|
||||
bool isClosed() const;
|
||||
|
||||
private slots:
|
||||
void read();
|
||||
|
||||
private:
|
||||
static bool acceptsGzipEncoding(QString codings);
|
||||
void read();
|
||||
void sendResponse(const Response &response) const;
|
||||
|
||||
QTcpSocket *m_socket;
|
||||
|
Loading…
x
Reference in New Issue
Block a user