aboutsummaryrefslogtreecommitdiff
path: root/src/base
diff options
context:
space:
mode:
Diffstat (limited to 'src/base')
-rw-r--r--src/base/QXmppStream.cpp13
-rw-r--r--src/base/QXmppStream.h2
-rw-r--r--src/base/QXmppStreamManagement.cpp5
-rw-r--r--src/base/QXmppStreamManagement_p.h1
4 files changed, 21 insertions, 0 deletions
diff --git a/src/base/QXmppStream.cpp b/src/base/QXmppStream.cpp
index 3c640b03..bffaf4c7 100644
--- a/src/base/QXmppStream.cpp
+++ b/src/base/QXmppStream.cpp
@@ -166,6 +166,19 @@ bool QXmppStream::sendPacket(const QXmppStanza &packet)
}
///
+/// Resets the stream management packages cache.
+///
+/// This can be done to prevent that packages from the last connection are being
+/// resent.
+///
+/// \since QXmpp 1.4
+///
+void QXmppStream::resetPacketCache()
+{
+ d->streamManager.resetCache();
+}
+
+///
/// Returns the QSslSocket used for this stream.
///
QSslSocket *QXmppStream::socket() const
diff --git a/src/base/QXmppStream.h b/src/base/QXmppStream.h
index 804a6f26..2530dea8 100644
--- a/src/base/QXmppStream.h
+++ b/src/base/QXmppStream.h
@@ -49,6 +49,8 @@ public:
virtual bool isConnected() const;
bool sendPacket(const QXmppStanza &);
+ void resetPacketCache();
+
Q_SIGNALS:
/// This signal is emitted when the stream is connected.
void connected();
diff --git a/src/base/QXmppStreamManagement.cpp b/src/base/QXmppStreamManagement.cpp
index c730e1db..93a98626 100644
--- a/src/base/QXmppStreamManagement.cpp
+++ b/src/base/QXmppStreamManagement.cpp
@@ -454,3 +454,8 @@ void QXmppStreamManager::sendAcknowledgementRequest()
// send packet
stream->sendData(data);
}
+
+void QXmppStreamManager::resetCache()
+{
+ m_unacknowledgedStanzas.clear();
+}
diff --git a/src/base/QXmppStreamManagement_p.h b/src/base/QXmppStreamManagement_p.h
index 69fb4ff2..72ba3a58 100644
--- a/src/base/QXmppStreamManagement_p.h
+++ b/src/base/QXmppStreamManagement_p.h
@@ -210,6 +210,7 @@ public:
void handlePacketSent(const QXmppStanza &packet, const QByteArray &data);
bool handleStanza(const QDomElement &stanza);
+ void resetCache();
void enableStreamManagement(bool resetSequenceNumber);
void setAcknowledgedSequenceNumber(unsigned int sequenceNumber);