diff --git a/src/abstractbuddy.cpp b/src/abstractbuddy.cpp index 49e541c87a58a6ad6b4a147e4485d685eb118e62..f8535ae443eb304a326202519f62c964d1a14c2b 100644 --- a/src/abstractbuddy.cpp +++ b/src/abstractbuddy.cpp @@ -56,7 +56,7 @@ BuddyFlag AbstractBuddy::getFlags() { return m_flags; } -const Swift::JID &AbstractBuddy::getJID(const std::string &hostname) { +const Swift::JID &AbstractBuddy::getJID() { if (!m_jid.isValid()) { generateJID(); } @@ -94,7 +94,8 @@ Swift::Presence::ref AbstractBuddy::generatePresenceStanza(int features, bool on return Swift::Presence::ref(); Swift::Presence::ref presence = Swift::Presence::create(); -// presence->setFrom(getJID()); + presence->setFrom(m_jid); + presence->setTo(m_rosterManager->getUser()->getJID().toBare()); presence->setType(Swift::Presence::Available); if (!statusMessage.empty()) @@ -145,4 +146,11 @@ std::string AbstractBuddy::getSafeName() { return name; } +void AbstractBuddy::buddyChanged() { + Swift::Presence::ref presence = generatePresenceStanza(255); + if (presence) { + m_rosterManager->getUser()->getComponent()->getStanzaChannel()->sendPresence(presence); + } +} + }