summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorlouiz’ <louiz@louiz.org>2017-07-20 21:29:33 +0200
committerlouiz’ <louiz@louiz.org>2017-07-20 21:34:27 +0200
commit407f95a108c275db5e9b07398f553ab573cd46bc (patch)
tree08e997dd7ff7c01f5c7d1b6db1d7ba9c30928dad /src
parent24f2511d7ba105d65c9684dd5606a57c5af95445 (diff)
downloadbiboumi-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.cpp7
-rw-r--r--src/xmpp/xmpp_component.cpp30
-rw-r--r--src/xmpp/xmpp_component.hpp6
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);