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)
committerShane Kearns <shane.kearns@accenture.com>
Fri, 14 Jan 2011 16:38:22 +0000 (16:38 +0000)
commitec4b73992eb7fb7254bb7a1524b8691ef2123b9f
tree2a1fc8f73d3de1cb0a10999fc6c9e7490dd4366d
parent8062464ce3f5fd6eb92f94d1fafa697385de72ce
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
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]