Workaround crash when multiple QNetworkAccessManager instances are used
authorShane Kearns <shane.kearns@accenture.com>
Wed, 5 Jan 2011 11:07:56 +0000 (11:07 +0000)
committerJason McDonald <jason.mcdonald@nokia.com>
Tue, 18 Jan 2011 16:16:41 +0000 (02:16 +1000)
commit4fdc4913539bcca01a327fe9cb4edf9fd41ae3b2
tree15ebae9a5a620fc58b23ef06d259708f86212ad3
parent85c868964979946a783f3c05462b2045c9b3efef
Workaround crash when multiple QNetworkAccessManager instances are used

Instead of each QNetworkAccessManager owning a QNetworkSession, they now
share a QNetworkSession if they have the same QNetworkConfiguration.
QNetworkAccessManager now uses passive roaming instead of application
level roaming. The state change signal (entering connected state) is used
to indicate reconnection instead of being triggered when sending an ALR
accept().
This preserves the previous behaviour, as QNAM always accepted the
suggested access point from bearer mobility.
In the case of multithreaded applications, one QNetworkSession will be
created for each thread which uses QNetworkAccessManager, as QNetworkSession
is not thread safe.

Task-number: QT-4378
Reviewed-by: Markus Goetz
Reviewed-by: juhvu
(cherry picked from commit ec4b73992eb7fb7254bb7a1524b8691ef2123b9f)
src/network/access/qnetworkaccessmanager.cpp
src/network/access/qnetworkaccessmanager.h
src/network/access/qnetworkaccessmanager_p.h
src/network/access/qnetworkreplyimpl.cpp
src/network/bearer/bearer.pri
src/network/bearer/qsharednetworksession.cpp [new file with mode: 0644]
src/network/bearer/qsharednetworksession_p.h [new file with mode: 0644]