diff options
| author | Jeremy Lainé <jeremy.laine@m4x.org> | 2010-08-13 11:23:19 +0000 |
|---|---|---|
| committer | Jeremy Lainé <jeremy.laine@m4x.org> | 2010-08-13 11:23:19 +0000 |
| commit | 0acf07023dca6b6d35c347cb28dce44a04363019 (patch) | |
| tree | 4f83d1bbf51fd4ec4954e03a706c1df5ab53e572 /src/QXmppStream.cpp | |
| parent | f9b824dd3901b925bed2cb33ac4c4d41c4420ca9 (diff) | |
| download | qxmpp-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.cpp | 15 |
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() |
