summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorKevin Smith <git@kismith.co.uk>2012-02-29 09:27:52 (GMT)
committerKevin Smith <git@kismith.co.uk>2012-02-29 09:27:56 (GMT)
commit84f6c22878d11ff4b0deed1a1c15b4db47177917 (patch)
tree071dda6a00e6fbe98a0805f986c6f779621b185f
parentb28821b2e88ec138f920b818c50419b4c427cc6b (diff)
downloadswift-contrib-84f6c22878d11ff4b0deed1a1c15b4db47177917.zip
swift-contrib-84f6c22878d11ff4b0deed1a1c15b4db47177917.tar.bz2
Don't crash when trying to join MUCs offline
Resolves: #940
-rw-r--r--Swift/Controllers/Chat/ChatsManager.cpp4
-rw-r--r--Swiften/MUC/MUC.cpp1
2 files changed, 4 insertions, 1 deletions
diff --git a/Swift/Controllers/Chat/ChatsManager.cpp b/Swift/Controllers/Chat/ChatsManager.cpp
index a2b286f..557aef4 100644
--- a/Swift/Controllers/Chat/ChatsManager.cpp
+++ b/Swift/Controllers/Chat/ChatsManager.cpp
@@ -547,6 +547,10 @@ void ChatsManager::rebindControllerJID(const JID& from, const JID& to) {
}
void ChatsManager::handleJoinMUCRequest(const JID &mucJID, const boost::optional<std::string>& password, const boost::optional<std::string>& nickMaybe, bool addAutoJoin, bool createAsReservedIfNew) {
+ if (!stanzaChannel_->isAvailable()) {
+ /* This is potentially not the optimal solution, but it will avoid consistency issues.*/
+ return;
+ }
if (addAutoJoin) {
MUCBookmark bookmark(mucJID, mucJID.getNode());
bookmark.setAutojoin(true);
diff --git a/Swiften/MUC/MUC.cpp b/Swiften/MUC/MUC.cpp
index 9bcb279..a52f552 100644
--- a/Swiften/MUC/MUC.cpp
+++ b/Swiften/MUC/MUC.cpp
@@ -59,7 +59,6 @@ void MUC::joinWithContextSince(const std::string &nick, const boost::posix_time:
}
void MUC::internalJoin(const std::string &nick) {
- //TODO: password
//TODO: history request
joinComplete_ = false;
joinSucceeded_ = false;