aboutsummaryrefslogtreecommitdiff
path: root/src/QXmppStream.cpp
diff options
context:
space:
mode:
authorJeremy Lainé <jeremy.laine@m4x.org>2010-08-13 11:23:19 +0000
committerJeremy Lainé <jeremy.laine@m4x.org>2010-08-13 11:23:19 +0000
commit0acf07023dca6b6d35c347cb28dce44a04363019 (patch)
tree4f83d1bbf51fd4ec4954e03a706c1df5ab53e572 /src/QXmppStream.cpp
parentf9b824dd3901b925bed2cb33ac4c4d41c4420ca9 (diff)
downloadqxmpp-0acf07023dca6b6d35c347cb28dce44a04363019.tar.gz
* don't initialise random number generator multiple times, breaks randomness
* make QXmppStream easier to subclass, e.g. for a server
Diffstat (limited to 'src/QXmppStream.cpp')
-rw-r--r--src/QXmppStream.cpp15
1 files changed, 10 insertions, 5 deletions
diff --git a/src/QXmppStream.cpp b/src/QXmppStream.cpp
index 2edcca6f..bdcd61c3 100644
--- a/src/QXmppStream.cpp
+++ b/src/QXmppStream.cpp
@@ -57,6 +57,7 @@
#include <QXmlStreamWriter>
#include <QTimer>
+static bool randomSeeded = false;
static const QString capabilitiesNode = "http://code.google.com/p/qxmpp";
static const QByteArray streamRootElementEnd = "</stream:stream>";
@@ -102,7 +103,11 @@ QXmppStream::QXmppStream(QSslSocket *socket, QObject *parent)
d(new QXmppStreamPrivate)
{
// Make sure the random number generator is seeded
- qsrand(QTime(0,0,0).secsTo(QTime::currentTime()));
+ if (!randomSeeded)
+ {
+ qsrand(QTime(0,0,0).secsTo(QTime::currentTime()));
+ randomSeeded = true;
+ }
// initialise logger
setLogger(QXmppLogger::getLogger());
@@ -807,12 +812,12 @@ void QXmppStream::handleStanza(const QDomElement &nodeRecv)
}
}
-void QXmppStream::sendStartStream()
+bool QXmppStream::sendStartStream()
{
QByteArray data = "<?xml version='1.0'?><stream:stream to='";
data.append(configuration().domain());
data.append("' xmlns='jabber:client' xmlns:stream='http://etherx.jabber.org/streams' version='1.0'>");
- sendData(data);
+ return sendData(data);
}
bool QXmppStream::sendData(const QByteArray& packet)
@@ -1003,9 +1008,9 @@ bool QXmppStream::sendPacket(const QXmppPacket& packet)
return sendData(data);
}
-void QXmppStream::sendEndStream()
+bool QXmppStream::sendEndStream()
{
- sendData(streamRootElementEnd);
+ return sendData(streamRootElementEnd);
}
void QXmppStream::pingStart()