aboutsummaryrefslogtreecommitdiff
path: root/src/client/QXmppOutgoingClient.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/client/QXmppOutgoingClient.cpp')
-rw-r--r--src/client/QXmppOutgoingClient.cpp14
1 files changed, 14 insertions, 0 deletions
diff --git a/src/client/QXmppOutgoingClient.cpp b/src/client/QXmppOutgoingClient.cpp
index 9d5043d0..04929362 100644
--- a/src/client/QXmppOutgoingClient.cpp
+++ b/src/client/QXmppOutgoingClient.cpp
@@ -106,6 +106,9 @@ public:
QString resumeHost;
quint16 resumePort;
+ // Client State Indication
+ bool clientStateIndicationEnabled;
+
// Timers
QTimer *pingTimer;
QTimer *timeoutTimer;
@@ -126,6 +129,7 @@ QXmppOutgoingClientPrivate::QXmppOutgoingClientPrivate(QXmppOutgoingClient *qq)
, canResume(false)
, isResuming(false)
, resumePort(0)
+ , clientStateIndicationEnabled(false)
, pingTimer(0)
, timeoutTimer(0)
, q(qq)
@@ -294,6 +298,13 @@ bool QXmppOutgoingClient::isConnected() const
return QXmppStream::isConnected() && d->sessionStarted;
}
+/// Returns true if client state indication (xep-0352) is supported by the server
+
+bool QXmppOutgoingClient::isClientStateIndicationEnabled() const
+{
+ return d->clientStateIndicationEnabled;
+}
+
void QXmppOutgoingClient::_q_socketDisconnected()
{
debug("Socket disconnected");
@@ -400,6 +411,9 @@ void QXmppOutgoingClient::handleStanza(const QDomElement &nodeRecv)
QXmppStreamFeatures features;
features.parse(nodeRecv);
+ if(features.clientStateIndicationMode() == QXmppStreamFeatures::Enabled)
+ d->clientStateIndicationEnabled = true;
+
if (!socket()->isEncrypted())
{
// determine TLS mode to use