From 617dd2f07a30203fd885a5bad041ada73f9f8db0 Mon Sep 17 00:00:00 2001 From: Jeremy Lainé Date: Wed, 10 Mar 2010 10:49:51 +0000 Subject: add configuration options for keep alive --- source/QXmppConfiguration.cpp | 36 +++++++++++++++++++++++++++++++++++- source/QXmppConfiguration.h | 11 +++++++++-- 2 files changed, 44 insertions(+), 3 deletions(-) (limited to 'source') diff --git a/source/QXmppConfiguration.cpp b/source/QXmppConfiguration.cpp index 771f305f..059a93ba 100644 --- a/source/QXmppConfiguration.cpp +++ b/source/QXmppConfiguration.cpp @@ -31,7 +31,8 @@ QXmppConfiguration::QXmppConfiguration() : m_port(5222), m_autoAcceptSubscriptions(true), m_sendIntialPresence(true), m_sendRosterRequest(true), - m_keepAlivePingsInterval(100), + m_keepAliveInterval(0), + m_keepAliveTimeout(0), m_autoReconnectionEnabled(true), m_useSASLAuthentication(true), m_ignoreSslErrors(true), @@ -367,6 +368,39 @@ QNetworkProxy QXmppConfiguration::networkProxy() const return m_networkProxy; } +/// Specifies the interval in seconds at which keep alive (ping) packets +/// will be sent to the server. +/// If set to zero, no keep alive packets will be sent. + +void QXmppConfiguration::setKeepAliveInterval(int secs) +{ + m_keepAliveInterval = secs; +} + +/// Returns the keep alive interval in seconds. + +int QXmppConfiguration::keepAliveInterval() const +{ + return m_keepAliveInterval; +} + +/// Specifies the maximum time in seconds to wait for a keep alive response +/// from the server before considering we are disconnected. +/// +/// If set to zero or a value larger than the keep alive interval, +/// no timeout will occur. + +void QXmppConfiguration::setKeepAliveTimeout(int secs) +{ + m_keepAliveTimeout = secs; +} + +/// Returns the keep alive timeout in seconds. + +int QXmppConfiguration::keepAliveTimeout() const +{ + return m_keepAliveTimeout; +} QString QXmppConfiguration::getHost() const { diff --git a/source/QXmppConfiguration.h b/source/QXmppConfiguration.h index ba9e37e2..26eb1ac0 100644 --- a/source/QXmppConfiguration.h +++ b/source/QXmppConfiguration.h @@ -93,6 +93,11 @@ public: QXmppConfiguration::SASLAuthMechanism sASLAuthMechanism() const; QNetworkProxy networkProxy() const; + int keepAliveInterval() const; + void setKeepAliveInterval(int secs); + int keepAliveTimeout() const; + void setKeepAliveTimeout(int secs); + void setHost(const QString&); void setDomain(const QString&); void setPort(int); @@ -146,8 +151,10 @@ private: bool m_sendIntialPresence; // default is true bool m_sendRosterRequest; - // interval in seconds, if negative it won't ping - int m_keepAlivePingsInterval; + // interval in seconds, if zero won't ping + int m_keepAliveInterval; + // interval in seconds, if zero won't timeout + int m_keepAliveTimeout; // will keep reconnecting if disconnected, default is true bool m_autoReconnectionEnabled; bool m_useSASLAuthentication; ///< flag to specify what authentication system -- cgit v1.2.3