From bb6f1e575a1d65162c73ff4f3042c6febd4c939e Mon Sep 17 00:00:00 2001 From: Jeremy Lainé Date: Sun, 2 Sep 2012 17:23:39 +0200 Subject: move socket disconnect handling out of QXmppStream --- src/server/QXmppIncomingClient.cpp | 1 + src/server/QXmppIncomingServer.cpp | 1 + src/server/QXmppOutgoingServer.cpp | 10 ++++++++++ src/server/QXmppOutgoingServer.h | 1 + 4 files changed, 13 insertions(+) (limited to 'src/server') 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 &errors); void socketError(QAbstractSocket::SocketError error); -- cgit v1.2.3