aboutsummaryrefslogtreecommitdiff
path: root/src/client/QXmppMucManager.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/client/QXmppMucManager.cpp')
-rw-r--r--src/client/QXmppMucManager.cpp26
1 files changed, 7 insertions, 19 deletions
diff --git a/src/client/QXmppMucManager.cpp b/src/client/QXmppMucManager.cpp
index 811514c5..7f3b4b12 100644
--- a/src/client/QXmppMucManager.cpp
+++ b/src/client/QXmppMucManager.cpp
@@ -283,17 +283,8 @@ bool QXmppMucRoom::join()
QXmppPresence packet = d->client->clientPresence();
packet.setTo(d->ownJid());
packet.setType(QXmppPresence::Available);
- QXmppElement x;
- x.setTagName("x");
- x.setAttribute("xmlns", ns_muc);
- if (!d->password.isEmpty())
- {
- QXmppElement p;
- p.setTagName("password");
- p.setValue(d->password);
- x.appendChild(p);
- }
- packet.setExtensions(QXmppElementList() << x);
+ packet.setMucPassword(d->password);
+ packet.setMucSupported(true);
return d->client->sendPacket(packet);
}
@@ -717,15 +708,12 @@ void QXmppMucRoom::_q_presenceReceived(const QXmppPresence &presence)
}
}
else if (presence.type() == QXmppPresence::Error) {
- foreach (const QXmppElement &extension, presence.extensions()) {
- if (extension.tagName() == "x" && extension.attribute("xmlns") == ns_muc) {
- // emit error
- emit error(presence.error());
+ if (presence.isMucSupported()) {
+ // emit error
+ emit error(presence.error());
- // notify the user we left the room
- emit left();
- break;
- }
+ // notify the user we left the room
+ emit left();
}
}
}