diff --git a/src/qfilesystemhandler.cpp b/src/qfilesystemhandler.cpp index b5c2255..618e45f 100644 --- a/src/qfilesystemhandler.cpp +++ b/src/qfilesystemhandler.cpp @@ -85,6 +85,9 @@ void QFilesystemHandlerPrivate::processFile(QHttpSocket *socket, const QString & QIODeviceCopier *copier = new QIODeviceCopier(file, socket); connect(copier, &QIODeviceCopier::finished, copier, &QIODeviceCopier::deleteLater); connect(copier, &QIODeviceCopier::finished, file, &QFile::deleteLater); + connect(copier, &QIODeviceCopier::finished, [socket]() { + socket->close(); + }); qint64 fileSize = file->size(); diff --git a/src/qobjecthandler.cpp b/src/qobjecthandler.cpp index 736ef48..74d62f5 100644 --- a/src/qobjecthandler.cpp +++ b/src/qobjecthandler.cpp @@ -90,9 +90,11 @@ void QObjectHandler::process(QHttpSocket *socket, const QString &path) // already the case, otherwise, wait until the rest of it arrives if (!m.readAll || socket->bytesAvailable() >= socket->contentLength()) { d->invokeSlot(socket, m); + socket->close(); } else { connect(socket, &QHttpSocket::readChannelFinished, [this, socket, m]() { d->invokeSlot(socket, m); + socket->close(); }); } }