aboutsummaryrefslogtreecommitdiff
path: root/src/base/QXmppSocks.cpp
diff options
context:
space:
mode:
authorJeremy Lainé <jeremy.laine@m4x.org>2012-09-18 13:28:11 +0200
committerJeremy Lainé <jeremy.laine@m4x.org>2012-09-18 13:28:11 +0200
commitb0ab0287f7c8a16e1f8db39ba2e202574fbd6ac2 (patch)
treeb9dc34544816f1bdec92fe515b7111b04cb76162 /src/base/QXmppSocks.cpp
parent502d08dc25086af5bae7b4906ed59b19b5170312 (diff)
downloadqxmpp-b0ab0287f7c8a16e1f8db39ba2e202574fbd6ac2.tar.gz
move IPv6 specifics inside QXmppSocksServer
Diffstat (limited to 'src/base/QXmppSocks.cpp')
-rw-r--r--src/base/QXmppSocks.cpp23
1 files changed, 15 insertions, 8 deletions
diff --git a/src/base/QXmppSocks.cpp b/src/base/QXmppSocks.cpp
index aa6d4b0d..adb7a5a6 100644
--- a/src/base/QXmppSocks.cpp
+++ b/src/base/QXmppSocks.cpp
@@ -201,16 +201,24 @@ QXmppSocksServer::QXmppSocksServer(QObject *parent)
{
m_server = new QTcpServer(this);
connect(m_server, SIGNAL(newConnection()), this, SLOT(slotNewConnection()));
+
+ m_server_v6 = new QTcpServer(this);
+ connect(m_server_v6, SIGNAL(newConnection()), this, SLOT(slotNewConnection()));
}
void QXmppSocksServer::close()
{
m_server->close();
+ m_server_v6->close();
}
-bool QXmppSocksServer::listen(const QHostAddress &address, quint16 port)
+bool QXmppSocksServer::listen(quint16 port)
{
- return m_server->listen(address, port);
+ if (!m_server->listen(QHostAddress::Any, port))
+ return false;
+
+ m_server_v6->listen(QHostAddress::AnyIPv6, m_server->serverPort());
+ return true;
}
bool QXmppSocksServer::isListening() const
@@ -218,11 +226,6 @@ bool QXmppSocksServer::isListening() const
return m_server->isListening();
}
-QHostAddress QXmppSocksServer::serverAddress() const
-{
- return m_server->serverAddress();
-}
-
quint16 QXmppSocksServer::serverPort() const
{
return m_server->serverPort();
@@ -230,7 +233,11 @@ quint16 QXmppSocksServer::serverPort() const
void QXmppSocksServer::slotNewConnection()
{
- QTcpSocket *socket = m_server->nextPendingConnection();
+ QTcpServer *server = qobject_cast<QTcpServer*>(sender());
+ if (!server)
+ return;
+
+ QTcpSocket *socket = server->nextPendingConnection();
if (!socket)
return;