Commit 2c4ffbf2 authored by louiz’'s avatar louiz’

Consider the nick change only if it is NOT a join

parent 8013bb1c
......@@ -159,18 +159,6 @@ void BiboumiComponent::handle_presence(const Stanza& stanza)
const std::string own_nick = bridge->get_own_nick(iid);
const XmlNode* x = stanza.get_child("x", MUC_NS);
const IrcClient* irc = bridge->find_irc_client(iid.get_server());
if (irc)
{
const auto chan = irc->find_channel(iid.get_local());
if (chan->joined)
bridge->send_irc_nick_change(iid, to.resource, from.resource);
else if (!x)
{ // send an error if we are not joined yet, instead of treating it as a join
this->send_stanza_error("presence", from_str, to_str, id,
"modify", "not-acceptable",
"You are not joined to this MUC.");
}
}
// if there is no <x/>, this is a presence status update, we don’t care about those
if (x)
{
......@@ -202,6 +190,19 @@ void BiboumiComponent::handle_presence(const Stanza& stanza)
bridge->join_irc_channel(iid, to.resource, password ? password->get_inner(): "",
from.resource, history_limit);
}
else
{
if (irc)
{
const auto chan = irc->find_channel(iid.get_local());
if (chan && chan->joined)
bridge->send_irc_nick_change(iid, to.resource, from.resource);
else
{ // send an error if we are not joined yet, instead of treating it as a join
this->send_stanza_error("presence", from_str, to_str, id, "modify", "not-acceptable", "You are not joined to this MUC.");
}
}
}
}
else if (type == "unavailable")
{
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment