summaryrefslogtreecommitdiffstats
path: root/src/network/access/qhttpnetworkconnectionchannel.cpp
diff options
context:
space:
mode:
authorMartin Petersson <martin.petersson@nokia.com>2011-08-24 17:24:21 +0200
committerQt by Nokia <qt-info@nokia.com>2011-08-30 13:01:59 +0200
commit13df02ad044cca3c0414f5e34c57fe04b69b414c (patch)
tree890a7b5691c23feb1be43e4a87fd6e706762663b /src/network/access/qhttpnetworkconnectionchannel.cpp
parent6f3e93e3cb90bb8551132880e0d158eaeb633c07 (diff)
QHttpNetworkConnection : Fix the case when we only have one channel
For the Happy eyeballs implementation we use two channels for the case where a host lookup gives us both Ipv4 and Ipv6 addresses. In the case where the Connection is setup to only use one channel we can not use this solution, so in this case we should use the old way of connecting with one channel. Task-number: QTBUG-20981 Change-Id: I6590fb4c67d6a8261cd0e4da8f99cd3603bbb524 Reviewed-on: http://codereview.qt.nokia.com/3524 Reviewed-by: Qt Sanity Bot <qt_sanity_bot@ovi.com> Reviewed-by: Peter Hartmann <peter.hartmann@nokia.com>
Diffstat (limited to 'src/network/access/qhttpnetworkconnectionchannel.cpp')
-rw-r--r--src/network/access/qhttpnetworkconnectionchannel.cpp6
1 files changed, 6 insertions, 0 deletions
diff --git a/src/network/access/qhttpnetworkconnectionchannel.cpp b/src/network/access/qhttpnetworkconnectionchannel.cpp
index 8be876dd48..b1630c7b2b 100644
--- a/src/network/access/qhttpnetworkconnectionchannel.cpp
+++ b/src/network/access/qhttpnetworkconnectionchannel.cpp
@@ -955,6 +955,12 @@ void QHttpNetworkConnectionChannel::_q_connected()
connection->d_func()->networkLayerState = QHttpNetworkConnectionPrivate::IPv4;
else if (networkLayerPreference == QAbstractSocket::IPv6Protocol)
connection->d_func()->networkLayerState = QHttpNetworkConnectionPrivate::IPv6;
+ else {
+ if (socket->peerAddress().protocol() == QAbstractSocket::IPv4Protocol)
+ connection->d_func()->networkLayerState = QHttpNetworkConnectionPrivate::IPv4;
+ else
+ connection->d_func()->networkLayerState = QHttpNetworkConnectionPrivate::IPv6;
+ }
} else {
if (((connection->d_func()->networkLayerState == QHttpNetworkConnectionPrivate::IPv4) && (networkLayerPreference != QAbstractSocket::IPv4Protocol))
|| ((connection->d_func()->networkLayerState == QHttpNetworkConnectionPrivate::IPv6) && (networkLayerPreference != QAbstractSocket::IPv6Protocol))) {