Skip to content

Commit

Permalink
fixed wfs-connection triggering ssl-error response leading to crash
Browse files Browse the repository at this point in the history
  • Loading branch information
notguiltyspark committed Jan 16, 2025
1 parent 9f055dd commit c47bb84
Showing 1 changed file with 11 additions and 4 deletions.
15 changes: 11 additions & 4 deletions src/providers/wfs/qgsbasenetworkrequest.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -306,15 +306,22 @@ bool QgsBaseNetworkRequest::issueRequest( QNetworkRequest &request, const QByteA
// note that we don't need to handle waking this thread back up - that's done automatically by QgsNetworkAccessManager
};

connect( QgsNetworkAccessManager::instance(), &QgsNetworkAccessManager::authRequestOccurred, this, resumeMainThread, Qt::DirectConnection );
connect( QgsNetworkAccessManager::instance(), &QgsNetworkAccessManager::proxyAuthenticationRequired, this, resumeMainThread, Qt::DirectConnection );

QMetaObject::Connection authRequestConnection = connect( QgsNetworkAccessManager::instance(), &QgsNetworkAccessManager::authRequestOccurred, this, resumeMainThread, Qt::DirectConnection );
QMetaObject::Connection proxyAuthenticationConnection = connect( QgsNetworkAccessManager::instance(), &QgsNetworkAccessManager::proxyAuthenticationRequired, this, resumeMainThread, Qt::DirectConnection );
#ifndef QT_NO_SSL
connect( QgsNetworkAccessManager::instance(), &QgsNetworkAccessManager::sslErrorsOccurred, this, resumeMainThread, Qt::DirectConnection );
QMetaObject::Connection sslErrorConnection = connect( QgsNetworkAccessManager::instance(), &QgsNetworkAccessManager::sslErrorsOccurred, this, resumeMainThread, Qt::DirectConnection );
#endif

QEventLoop loop;
connect( this, &QgsBaseNetworkRequest::downloadFinished, &loop, &QEventLoop::quit, Qt::DirectConnection );
loop.exec();

// event loop exited - need to disconnect as to not leave functor hanging to receive signals in future
disconnect( authRequestConnection );
disconnect( proxyAuthenticationConnection );
#ifndef QT_NO_SSL
disconnect( sslErrorConnection );
#endif
}
}
waitConditionMutex.lock();
Expand Down

0 comments on commit c47bb84

Please sign in to comment.