From 4683ad2e6a7b83ffa0144212e312b53d818911ab 2013-01-15 18:49:30 From: HanzZ Date: 2013-01-15 18:49:30 Subject: [PATCH] Send presence after handleBuddyRosterPushResponse only when it's available --- diff --git a/src/rostermanager.cpp b/src/rostermanager.cpp index 9b3b2b08fd757b391ee971a929fd918a1f85a735..0967fe567a8c8208b1f1805cebcd07f2c8a036b6 100644 --- a/src/rostermanager.cpp +++ b/src/rostermanager.cpp @@ -257,7 +257,10 @@ void RosterManager::storeBuddy(Buddy *buddy) { void RosterManager::handleBuddyRosterPushResponse(Swift::ErrorPayload::ref error, Swift::SetRosterRequest::ref request, const std::string &key) { LOG4CXX_INFO(logger, "handleBuddyRosterPushResponse called for buddy " << key); if (m_buddies[key] != NULL) { - m_buddies[key]->sendPresence(); + Swift::Presence::ref presence = m_buddies[key]->generatePresenceStanza(255); + if (presence && presence->getType() == Swift::Presence::Available) { + m_component->getStanzaChannel()->sendPresence(presence); + } } else { LOG4CXX_WARN(logger, "handleBuddyRosterPushResponse called for unknown buddy " << key);