diff --git kopete/protocols/bonjour/bonjourcontactconnection.cpp kopete/protocols/bonjour/bonjourcontactconnection.cpp index 0a925b4..c126011 100644 --- kopete/protocols/bonjour/bonjourcontactconnection.cpp +++ kopete/protocols/bonjour/bonjourcontactconnection.cpp @@ -56,9 +56,10 @@ void BonjourContactConnection::setSocket(QTcpSocket *aSocket) } BonjourContactConnection::BonjourContactConnection(QTcpSocket *aSocket, - QObject *parent) : QObject(parent), connectionState(BonjourConnectionNewIncoming), socket(aSocket), parser(), + QObject *parent) : QObject(parent), connectionState(BonjourConnectionNewIncoming), parser(), local(), remote() { + setSocket(aSocket); } BonjourContactConnection::BonjourContactConnection(const QHostAddress &address, short int port, @@ -188,6 +189,14 @@ void BonjourContactConnection::dataInSocket() getStreamTag(token); break; } + + if (moreTokensAvailable()) + dataInSocket(); +} + +bool BonjourContactConnection::moreTokensAvailable() +{ + return ! parser.atEnd(); } void BonjourContactConnection::getStreamTag(BonjourXmlToken &token) diff --git kopete/protocols/bonjour/bonjourcontactconnection.h kopete/protocols/bonjour/bonjourcontactconnection.h index c0d347a..6c06300 100644 --- kopete/protocols/bonjour/bonjourcontactconnection.h +++ kopete/protocols/bonjour/bonjourcontactconnection.h @@ -80,6 +80,9 @@ class BonjourContactConnection : public QObject { // Set the Socket void setSocket(QTcpSocket *socket); + // Determine if there is more data available + bool moreTokensAvailable(); + /** * @brief Description of A Token *