diff --git a/src/user.cpp b/src/user.cpp index 86f908bd7ffb8ee462cdc29174a4965508b23f58..82a45bddf81a1942765dba53c4ae44bc6cb64199 100644 --- a/src/user.cpp +++ b/src/user.cpp @@ -83,8 +83,8 @@ const Swift::JID &User::getJID() { return m_jid; } -Swift::JID User::getJIDWithFeature(const std::string &feature) { - Swift::JID jid; +std::vector User::getJIDWithFeature(const std::string &feature) { + std::vector jid; std::vector presences = m_presenceOracle->getAllPresence(m_jid); foreach(Swift::Presence::ref presence, presences) { @@ -111,11 +111,13 @@ Swift::JID User::getJIDWithFeature(const std::string &feature) { if (discoInfo->hasFeature(feature)) { LOG4CXX_INFO(logger, m_jid.toString() << ": Found JID with " << feature << " feature: " << presence->getFrom().toString()); - return presence->getFrom(); + jid.push_back(presence->getFrom()); } } - LOG4CXX_INFO(logger, m_jid.toString() << ": No JID with " << feature << " feature " << m_legacyCaps.size()); + if (jid.empty()) { + LOG4CXX_INFO(logger, m_jid.toString() << ": No JID with " << feature << " feature " << m_legacyCaps.size()); + } return jid; }