aboutsummaryrefslogtreecommitdiff
path: root/src/server
diff options
context:
space:
mode:
authorJeremy Lainé <jeremy.laine@m4x.org>2012-09-02 17:23:39 +0200
committerJeremy Lainé <jeremy.laine@m4x.org>2012-09-02 17:23:39 +0200
commitbb6f1e575a1d65162c73ff4f3042c6febd4c939e (patch)
treeb7ff59e28e7fa696a03502f31fe9de6471dcbdcb /src/server
parent5a49c45d7c5788271c9e784706de7047e403eba2 (diff)
downloadqxmpp-bb6f1e575a1d65162c73ff4f3042c6febd4c939e.tar.gz
move socket disconnect handling out of QXmppStream
Diffstat (limited to 'src/server')
-rw-r--r--src/server/QXmppIncomingClient.cpp1
-rw-r--r--src/server/QXmppIncomingServer.cpp1
-rw-r--r--src/server/QXmppOutgoingServer.cpp10
-rw-r--r--src/server/QXmppOutgoingServer.h1
4 files changed, 13 insertions, 0 deletions
diff --git a/src/server/QXmppIncomingClient.cpp b/src/server/QXmppIncomingClient.cpp
index 01990960..76fa9f6f 100644
--- a/src/server/QXmppIncomingClient.cpp
+++ b/src/server/QXmppIncomingClient.cpp
@@ -449,6 +449,7 @@ void QXmppIncomingClient::onPasswordReply()
void QXmppIncomingClient::onSocketDisconnected()
{
info(QString("Socket disconnected for '%1' from %2").arg(d->jid, d->origin()));
+ emit disconnected();
}
void QXmppIncomingClient::onTimeout()
diff --git a/src/server/QXmppIncomingServer.cpp b/src/server/QXmppIncomingServer.cpp
index 0eb2754a..e692c1fb 100644
--- a/src/server/QXmppIncomingServer.cpp
+++ b/src/server/QXmppIncomingServer.cpp
@@ -236,4 +236,5 @@ void QXmppIncomingServer::slotDialbackResponseReceived(const QXmppDialback &dial
void QXmppIncomingServer::slotSocketDisconnected()
{
info(QString("Socket disconnected from %1").arg(d->origin()));
+ emit disconnected();
}
diff --git a/src/server/QXmppOutgoingServer.cpp b/src/server/QXmppOutgoingServer.cpp
index 75d9c889..3101bced 100644
--- a/src/server/QXmppOutgoingServer.cpp
+++ b/src/server/QXmppOutgoingServer.cpp
@@ -64,6 +64,10 @@ QXmppOutgoingServer::QXmppOutgoingServer(const QString &domain, QObject *parent)
QSslSocket *socket = new QSslSocket(this);
setSocket(socket);
+ check = connect(socket, SIGNAL(disconnected()),
+ this, SLOT(_q_socketDisconnected()));
+ Q_ASSERT(check);
+
check = connect(socket, SIGNAL(error(QAbstractSocket::SocketError)),
this, SLOT(socketError(QAbstractSocket::SocketError)));
Q_ASSERT(check);
@@ -134,6 +138,12 @@ void QXmppOutgoingServer::_q_dnsLookupFinished()
socket()->connectToHost(host, port);
}
+void QXmppOutgoingServer::_q_socketDisconnected()
+{
+ debug("Socket disconnected");
+ emit disconnected();
+}
+
/// \cond
void QXmppOutgoingServer::handleStart()
diff --git a/src/server/QXmppOutgoingServer.h b/src/server/QXmppOutgoingServer.h
index 1b0a320b..94139261 100644
--- a/src/server/QXmppOutgoingServer.h
+++ b/src/server/QXmppOutgoingServer.h
@@ -70,6 +70,7 @@ public slots:
private slots:
void _q_dnsLookupFinished();
+ void _q_socketDisconnected();
void sendDialback();
void slotSslErrors(const QList<QSslError> &errors);
void socketError(QAbstractSocket::SocketError error);