aboutsummaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorJeremy Lainé <jeremy.laine@m4x.org>2010-10-04 12:35:22 +0000
committerJeremy Lainé <jeremy.laine@m4x.org>2010-10-04 12:35:22 +0000
commit9b834c408bf49ddc1a5a0423dc80c7909befdb8f (patch)
treebc744454662523bf3561010d7de88ecd1ab776e9 /src
parent313e8f139f8200639048ca0dc8c3aa7e202bf9aa (diff)
downloadqxmpp-9b834c408bf49ddc1a5a0423dc80c7909befdb8f.tar.gz
add support for joining password-protected rooms
Diffstat (limited to 'src')
-rw-r--r--src/QXmppMucManager.cpp10
-rw-r--r--src/QXmppMucManager.h2
2 files changed, 10 insertions, 2 deletions
diff --git a/src/QXmppMucManager.cpp b/src/QXmppMucManager.cpp
index 574360a8..e82fedf1 100644
--- a/src/QXmppMucManager.cpp
+++ b/src/QXmppMucManager.cpp
@@ -77,11 +77,12 @@ bool QXmppMucManager::handleStanza(const QDomElement &element)
///
/// \param roomJid
/// \param nickName
+/// \param password an optional password if the room is password-protected
///
/// \return true if the request was sent, false otherwise
///
-bool QXmppMucManager::joinRoom(const QString &roomJid, const QString &nickName)
+bool QXmppMucManager::joinRoom(const QString &roomJid, const QString &nickName, const QString &password)
{
QXmppPresence packet;
packet.setTo(roomJid + "/" + nickName);
@@ -89,6 +90,13 @@ bool QXmppMucManager::joinRoom(const QString &roomJid, const QString &nickName)
QXmppElement x;
x.setTagName("x");
x.setAttribute("xmlns", ns_muc);
+ if (!password.isEmpty())
+ {
+ QXmppElement p;
+ p.setTagName("password");
+ p.setValue(password);
+ x.appendChild(p);
+ }
packet.setExtensions(x);
if (client()->sendPacket(packet))
{
diff --git a/src/QXmppMucManager.h b/src/QXmppMucManager.h
index a33b7580..3ca114db 100644
--- a/src/QXmppMucManager.h
+++ b/src/QXmppMucManager.h
@@ -47,7 +47,7 @@ class QXmppMucManager : public QXmppClientExtension
public:
QXmppMucManager(QXmppClient* client);
- bool joinRoom(const QString &roomJid, const QString &nickName);
+ bool joinRoom(const QString &roomJid, const QString &nickName, const QString &password = QString());
bool leaveRoom(const QString &roomJid);
bool requestRoomConfiguration(const QString &roomJid);