From 91adf5ba32c45b83a839d4962fe9a36203a7e27f Mon Sep 17 00:00:00 2001 From: Jonas Kvinge Date: Thu, 18 Dec 2025 20:32:07 +0100 Subject: [PATCH] NetworkAccessManager: Handle network state changes after system suspend/resume Fixes #1521 --- src/core/networkaccessmanager.cpp | 17 +++++++++++++++++ 1 file changed, 17 insertions(+) diff --git a/src/core/networkaccessmanager.cpp b/src/core/networkaccessmanager.cpp index 817039aee..dfdb2fcaf 100644 --- a/src/core/networkaccessmanager.cpp +++ b/src/core/networkaccessmanager.cpp @@ -29,6 +29,7 @@ #include #include #include +#include #include "networkaccessmanager.h" #include "threadsafenetworkdiskcache.h" @@ -41,6 +42,22 @@ NetworkAccessManager::NetworkAccessManager(QObject *parent) setRedirectPolicy(QNetworkRequest::NoLessSafeRedirectPolicy); setCache(new ThreadSafeNetworkDiskCache(this)); + // Handle network state changes after system suspend/resume + // QNetworkInformation provides cross-platform network reachability monitoring in Qt 6 + if (QNetworkInformation::loadDefaultBackend()) { + QNetworkInformation *network_info = QNetworkInformation::instance(); + if (network_info) { + QObject::connect(network_info, &QNetworkInformation::reachabilityChanged, this, [this](QNetworkInformation::Reachability reachability) { + if (reachability == QNetworkInformation::Reachability::Online) { + // Clear connection cache to force reconnection after network becomes available + // This fixes issues after system suspend/resume + clearConnectionCache(); + clearAccessCache(); + } + }); + } + } + } QNetworkReply *NetworkAccessManager::createRequest(Operation op, const QNetworkRequest &network_request, QIODevice *outgoing_data) {