diff options
| author | Jeremy Lainé <jeremy.laine@m4x.org> | 2012-09-18 13:28:11 +0200 |
|---|---|---|
| committer | Jeremy Lainé <jeremy.laine@m4x.org> | 2012-09-18 13:28:11 +0200 |
| commit | b0ab0287f7c8a16e1f8db39ba2e202574fbd6ac2 (patch) | |
| tree | b9dc34544816f1bdec92fe515b7111b04cb76162 /src/base/QXmppSocks.cpp | |
| parent | 502d08dc25086af5bae7b4906ed59b19b5170312 (diff) | |
| download | qxmpp-b0ab0287f7c8a16e1f8db39ba2e202574fbd6ac2.tar.gz | |
move IPv6 specifics inside QXmppSocksServer
Diffstat (limited to 'src/base/QXmppSocks.cpp')
| -rw-r--r-- | src/base/QXmppSocks.cpp | 23 |
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; |
