diff options
author | louiz’ <louiz@louiz.org> | 2017-07-20 21:29:33 +0200 |
---|---|---|
committer | louiz’ <louiz@louiz.org> | 2017-07-20 21:34:27 +0200 |
commit | 407f95a108c275db5e9b07398f553ab573cd46bc (patch) | |
tree | 08e997dd7ff7c01f5c7d1b6db1d7ba9c30928dad /src | |
parent | 24f2511d7ba105d65c9684dd5606a57c5af95445 (diff) | |
download | biboumi-407f95a108c275db5e9b07398f553ab573cd46bc.tar.gz biboumi-407f95a108c275db5e9b07398f553ab573cd46bc.tar.bz2 biboumi-407f95a108c275db5e9b07398f553ab573cd46bc.tar.xz biboumi-407f95a108c275db5e9b07398f553ab573cd46bc.zip |
Do not reply with an error when receiving a presence for a user JID
fix #3224
Diffstat (limited to 'src')
-rw-r--r-- | src/xmpp/biboumi_component.cpp | 7 | ||||
-rw-r--r-- | src/xmpp/xmpp_component.cpp | 30 | ||||
-rw-r--r-- | src/xmpp/xmpp_component.hpp | 6 |
3 files changed, 2 insertions, 41 deletions
diff --git a/src/xmpp/biboumi_component.cpp b/src/xmpp/biboumi_component.cpp index d1c75d0..13fabd7 100644 --- a/src/xmpp/biboumi_component.cpp +++ b/src/xmpp/biboumi_component.cpp @@ -210,11 +210,8 @@ void BiboumiComponent::handle_presence(const Stanza& stanza) this->send_presence_to_contact(to_str, from.bare(), ""); } } - else - { - // A user wants to join an invalid IRC channel, return a presence error to him/her - if (type.empty()) - this->send_invalid_room_error(to.local, to.resource, from_str); + else if (iid.type == Iid::Type::User) + { // Do nothing yet } } catch (const IRCNotConnected& ex) diff --git a/src/xmpp/xmpp_component.cpp b/src/xmpp/xmpp_component.cpp index 9c3ba90..42a5392 100644 --- a/src/xmpp/xmpp_component.cpp +++ b/src/xmpp/xmpp_component.cpp @@ -261,7 +261,6 @@ void XmppComponent::handle_error(const Stanza& stanza) if (!this->ever_auth) sd_notifyf(0, "STATUS=Failed to authenticate to the XMPP server: %s", error_message.data()); #endif - } void* XmppComponent::get_receive_buffer(const size_t size) const @@ -338,35 +337,6 @@ void XmppComponent::send_user_join(const std::string& from, this->send_stanza(presence); } -void XmppComponent::send_invalid_room_error(const std::string& muc_name, - const std::string& nick, - const std::string& to) -{ - Stanza presence("presence"); - { - if (!muc_name.empty ()) - presence["from"] = muc_name + "@" + this->served_hostname + "/" + nick; - else - presence["from"] = this->served_hostname; - presence["to"] = to; - presence["type"] = "error"; - XmlSubNode x(presence, "x"); - x["xmlns"] = MUC_NS; - XmlSubNode error(presence, "error"); - error["by"] = muc_name + "@" + this->served_hostname; - error["type"] = "cancel"; - XmlSubNode item_not_found(error, "item-not-found"); - item_not_found["xmlns"] = STANZA_NS; - XmlSubNode text(error, "text"); - text["xmlns"] = STANZA_NS; - text["xml:lang"] = "en"; - text.set_inner(muc_name + - " is not a valid IRC channel name. A correct room jid is of the form: #<chan>%<server>@" + - this->served_hostname); - } - this->send_stanza(presence); -} - void XmppComponent::send_topic(const std::string& from, Xmpp::body&& topic, const std::string& to, const std::string& who) { Stanza message("message"); diff --git a/src/xmpp/xmpp_component.hpp b/src/xmpp/xmpp_component.hpp index f4a7655..22d5c48 100644 --- a/src/xmpp/xmpp_component.hpp +++ b/src/xmpp/xmpp_component.hpp @@ -124,12 +124,6 @@ public: const std::string& to, const bool self); /** - * Send an error to indicate that the user tried to join an invalid room - */ - void send_invalid_room_error(const std::string& muc_jid, - const std::string& nick, - const std::string& to); - /** * Send the MUC topic to the user */ void send_topic(const std::string& from, Xmpp::body&& xmpp_topic, const std::string& to, const std::string& who); |