diff --git a/python/core/auto_generated/qgsnetworkaccessmanager.sip.in b/python/core/auto_generated/qgsnetworkaccessmanager.sip.in index 67a79b014d4a..ecaeb29e0d28 100644 --- a/python/core/auto_generated/qgsnetworkaccessmanager.sip.in +++ b/python/core/auto_generated/qgsnetworkaccessmanager.sip.in @@ -267,6 +267,7 @@ Returns the network timeout length, in milliseconds. static void setTimeout( int time ); %Docstring Sets the maximum timeout ``time`` for network requests, in milliseconds. +If set to 0, no timeout is set. .. seealso:: :py:func:`timeout` diff --git a/src/core/qgsnetworkaccessmanager.cpp b/src/core/qgsnetworkaccessmanager.cpp index 538a6c2b5ade..6e05c00a6d9e 100644 --- a/src/core/qgsnetworkaccessmanager.cpp +++ b/src/core/qgsnetworkaccessmanager.cpp @@ -276,15 +276,18 @@ QNetworkReply *QgsNetworkAccessManager::createRequest( QNetworkAccessManager::Op // The timer will call abortRequest slot to abort the connection if needed. // The timer is stopped by the finished signal and is restarted on downloadProgress and // uploadProgress. - QTimer *timer = new QTimer( reply ); - timer->setObjectName( QStringLiteral( "timeoutTimer" ) ); - connect( timer, &QTimer::timeout, this, &QgsNetworkAccessManager::abortRequest ); - timer->setSingleShot( true ); - timer->start( timeout() ); - - connect( reply, &QNetworkReply::downloadProgress, timer, [timer] { timer->start(); } ); - connect( reply, &QNetworkReply::uploadProgress, timer, [timer] { timer->start(); } ); - connect( reply, &QNetworkReply::finished, timer, &QTimer::stop ); + if ( timeout() ) + { + QTimer *timer = new QTimer( reply ); + timer->setObjectName( QStringLiteral( "timeoutTimer" ) ); + connect( timer, &QTimer::timeout, this, &QgsNetworkAccessManager::abortRequest ); + timer->setSingleShot( true ); + timer->start( timeout() ); + + connect( reply, &QNetworkReply::downloadProgress, timer, [timer] { timer->start(); } ); + connect( reply, &QNetworkReply::uploadProgress, timer, [timer] { timer->start(); } ); + connect( reply, &QNetworkReply::finished, timer, &QTimer::stop ); + } QgsDebugMsgLevel( QStringLiteral( "Created [reply:%1]" ).arg( reinterpret_cast< qint64 >( reply ), 0, 16 ), 3 ); return reply; diff --git a/src/core/qgsnetworkaccessmanager.h b/src/core/qgsnetworkaccessmanager.h index 97ca9ee06cbc..a7b066f7259c 100644 --- a/src/core/qgsnetworkaccessmanager.h +++ b/src/core/qgsnetworkaccessmanager.h @@ -424,6 +424,7 @@ class CORE_EXPORT QgsNetworkAccessManager : public QNetworkAccessManager /** * Sets the maximum timeout \a time for network requests, in milliseconds. + * If set to 0, no timeout is set. * * \see timeout() * \since QGIS 3.6