From 0947e36e3d1e63920e4b1fa9193d6f1d1690eae7 Mon Sep 17 00:00:00 2001 From: Jeremy Lainé Date: Thu, 27 Aug 2015 09:35:49 +0200 Subject: don't try to send stream end if socket is disconnected --- src/base/QXmppStream.cpp | 11 +++++++---- 1 file changed, 7 insertions(+), 4 deletions(-) (limited to 'src/base/QXmppStream.cpp') diff --git a/src/base/QXmppStream.cpp b/src/base/QXmppStream.cpp index 80f2c9f3..4feb266c 100644 --- a/src/base/QXmppStream.cpp +++ b/src/base/QXmppStream.cpp @@ -86,10 +86,13 @@ QXmppStream::~QXmppStream() void QXmppStream::disconnectFromHost() { - sendData(streamRootElementEnd); - if (d->socket) - { - d->socket->flush(); + if (d->socket) { + if (d->socket->state() == QAbstractSocket::ConnectedState) { + sendData(streamRootElementEnd); + d->socket->flush(); + } + // FIXME: according to RFC 6120 section 4.4, we should wait for + // the incoming stream to end before closing the socket d->socket->disconnectFromHost(); } } -- cgit v1.2.3