summaryrefslogtreecommitdiffstats
path: root/src/network/socket/qsocks5socketengine.cpp
diff options
context:
space:
mode:
authorShane Kearns <shane.kearns@accenture.com>2011-02-25 17:24:50 (GMT)
committerShane Kearns <shane.kearns@accenture.com>2011-02-25 17:32:07 (GMT)
commit37b6d6ef16606c11ba46ef4cb7c96e0989e78d7e (patch)
treea7a1ee4c4957716ec9b0ea38d95a5b1ece305e61 /src/network/socket/qsocks5socketengine.cpp
parenta722a716641d596b9a799e776e81167a47a261fa (diff)
downloadQt-37b6d6ef16606c11ba46ef4cb7c96e0989e78d7e.zip
Qt-37b6d6ef16606c11ba46ef4cb7c96e0989e78d7e.tar.gz
Qt-37b6d6ef16606c11ba46ef4cb7c96e0989e78d7e.tar.bz2
Make socks5 socket engine push session down to real sockets
This ensures the specified QNetworkSession from the QNetworkAccessManager is used to route the packets, when using a SOCKS proxy. Reviewed-by: Markus Goetz
Diffstat (limited to 'src/network/socket/qsocks5socketengine.cpp')
-rw-r--r--src/network/socket/qsocks5socketengine.cpp3
1 files changed, 3 insertions, 0 deletions
diff --git a/src/network/socket/qsocks5socketengine.cpp b/src/network/socket/qsocks5socketengine.cpp
index ab3d260..91dfdf3 100644
--- a/src/network/socket/qsocks5socketengine.cpp
+++ b/src/network/socket/qsocks5socketengine.cpp
@@ -556,6 +556,7 @@ void QSocks5SocketEnginePrivate::initialize(Socks5Mode socks5Mode)
udpData = new QSocks5UdpAssociateData;
data = udpData;
udpData->udpSocket = new QUdpSocket(q);
+ udpData->udpSocket->setProperty("_q_networksession", q->property("_q_networksession"));
udpData->udpSocket->setProxy(QNetworkProxy::NoProxy);
QObject::connect(udpData->udpSocket, SIGNAL(readyRead()),
q, SLOT(_q_udpSocketReadNotification()),
@@ -567,6 +568,7 @@ void QSocks5SocketEnginePrivate::initialize(Socks5Mode socks5Mode)
}
data->controlSocket = new QTcpSocket(q);
+ data->controlSocket->setProperty("_q_networksession", q->property("_q_networksession"));
data->controlSocket->setProxy(QNetworkProxy::NoProxy);
QObject::connect(data->controlSocket, SIGNAL(connected()), q, SLOT(_q_controlSocketConnected()),
Qt::DirectConnection);
@@ -1376,6 +1378,7 @@ bool QSocks5SocketEngine::bind(const QHostAddress &address, quint16 port)
d->udpData->associatePort = d->localPort;
d->localPort = 0;
QUdpSocket dummy;
+ dummy.setProperty("_q_networksession", property("_q_networksession"));
dummy.setProxy(QNetworkProxy::NoProxy);
if (!dummy.bind()
|| writeDatagram(0,0, d->data->controlSocket->localAddress(), dummy.localPort()) != 0