diff options
author | Kevin Smith <git@kismith.co.uk> | 2011-09-28 10:11:52 (GMT) |
---|---|---|
committer | Kevin Smith <git@kismith.co.uk> | 2011-09-28 10:11:52 (GMT) |
commit | ef9ce71646ddf6bdaeafc0776724bf1a6ff18d9d (patch) | |
tree | addedda39ab3be3c693262518e9a0c64633d93df /Swiften/MUC/MUC.cpp | |
parent | d5efab53e5c4dee50a55241e840a26814d115ad7 (diff) | |
download | swift-contrib-ef9ce71646ddf6bdaeafc0776724bf1a6ff18d9d.zip swift-contrib-ef9ce71646ddf6bdaeafc0776724bf1a6ff18d9d.tar.bz2 |
Parse MUC status codes correctly again.
Means rooms will be unlocked after creation correctly.
Diffstat (limited to 'Swiften/MUC/MUC.cpp')
-rw-r--r-- | Swiften/MUC/MUC.cpp | 3 |
1 files changed, 1 insertions, 2 deletions
diff --git a/Swiften/MUC/MUC.cpp b/Swiften/MUC/MUC.cpp index d4c1287..c450c6d 100644 --- a/Swiften/MUC/MUC.cpp +++ b/Swiften/MUC/MUC.cpp @@ -90,19 +90,19 @@ void MUC::handleUserLeft(LeavingType type) { } void MUC::handleIncomingPresence(Presence::ref presence) { if (!isFromMUC(presence->getFrom())) { return; } MUCUserPayload::ref mucPayload; foreach (MUCUserPayload::ref payload, presence->getPayloads<MUCUserPayload>()) { - if (payload->getItems().size() > 0 || payload->getStatusCodes().size() > 0) { + if (!payload->getItems().empty() || !payload->getStatusCodes().empty()) { mucPayload = payload; } } // On the first incoming presence, check if our join has succeeded // (i.e. we start getting non-error presence from the MUC) or not if (!joinSucceeded_) { if (presence->getType() == Presence::Error) { std::string reason; @@ -193,19 +193,18 @@ void MUC::handleIncomingPresence(Presence::ref presence) { MUCOwnerPayload::ref mucPayload(new MUCOwnerPayload()); presenceSender->addDirectedPresenceReceiver(ownMUCJID, DirectedPresenceSender::DontSendPresence); mucPayload->setPayload(boost::make_shared<Form>(Form::SubmitType)); GenericRequest<MUCOwnerPayload>* request = new GenericRequest<MUCOwnerPayload>(IQ::Set, getJID(), mucPayload, iqRouter_); request->onResponse.connect(boost::bind(&MUC::handleCreationConfigResponse, this, _1, _2)); request->send(); } } } - } void MUC::handleCreationConfigResponse(MUCOwnerPayload::ref /*unused*/, ErrorPayload::ref error) { if (error) { presenceSender->removeDirectedPresenceReceiver(ownMUCJID, DirectedPresenceSender::AndSendPresence); onJoinFailed(error); } else { onJoinComplete(getOwnNick()); /* Previously, this wasn't needed here, as the presence duplication bug caused an emit elsewhere. */ } |