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
*