From ae29c8c902534f884a0d1513cc1f0a800fa536d8 2012-12-06 19:14:40 From: HanzZ Date: 2012-12-06 19:14:40 Subject: [PATCH] Merge branch 'master' of github.com:hanzz/libtransport --- diff --git a/src/conversation.cpp b/src/conversation.cpp index 9cd8f7391a936c1ef87e9fe3e8cb86464317e71e..9912bf2591d1ca8d46f316a1a8b46bab7d8e5a68 100644 --- a/src/conversation.cpp +++ b/src/conversation.cpp @@ -47,21 +47,28 @@ void Conversation::destroyRoom() { legacyName.replace(legacyName.find_last_of("@"), 1, "%"); // OK } presence->setFrom(Swift::JID(legacyName, m_conversationManager->getComponent()->getJID().toBare(), m_nickname)); - presence->setTo(m_jid); presence->setType(Swift::Presence::Unavailable); Swift::MUCItem item; item.affiliation = Swift::MUCOccupant::NoAffiliation; item.role = Swift::MUCOccupant::NoRole; + item.actor = "Transport"; + item.reason = "Spectrum 2 transport is being shut down."; Swift::MUCUserPayload *p = new Swift::MUCUserPayload (); p->addItem(item); Swift::MUCUserPayload::StatusCode c; c.code = 332; p->addStatusCode(c); + Swift::MUCUserPayload::StatusCode c2; + c2.code = 307; + p->addStatusCode(c2); presence->addPayload(boost::shared_ptr(p)); - m_conversationManager->getComponent()->getStanzaChannel()->sendPresence(presence); + BOOST_FOREACH(const Swift::JID &jid, m_jids) { + presence->setTo(jid); + m_conversationManager->getComponent()->getStanzaChannel()->sendPresence(presence); + } } } diff --git a/src/tests/conversationmanager.cpp b/src/tests/conversationmanager.cpp index 0869ec8ac86dd606f2151ff064bc431b066fad15..480a7289faaf8de28b172c569a7d39d50d6ff478 100644 --- a/src/tests/conversationmanager.cpp +++ b/src/tests/conversationmanager.cpp @@ -402,7 +402,7 @@ class ConversationManagerTest : public CPPUNIT_NS :: TestFixture, public BasicTe User *user = userManager->getUser("user@localhost"); TestingConversation *conv = new TestingConversation(user->getConversationManager(), "#room", true); conv->setNickname("nickname"); - conv->setJID("user@localhost/resource"); + conv->addJID("user@localhost/resource"); received.clear(); conv->destroyRoom(); delete conv;