Properly send error response on presence stanzas
This commit is contained in:
@@ -116,6 +116,7 @@ void BiboumiComponent::handle_presence(const Stanza& stanza)
|
|||||||
error_type, error_name, "");
|
error_type, error_name, "");
|
||||||
});
|
});
|
||||||
|
|
||||||
|
try {
|
||||||
if (iid.is_channel && !iid.get_server().empty())
|
if (iid.is_channel && !iid.get_server().empty())
|
||||||
{ // presence toward a MUC that corresponds to an irc channel, or a
|
{ // presence toward a MUC that corresponds to an irc channel, or a
|
||||||
// dummy channel if iid.chan is empty
|
// dummy channel if iid.chan is empty
|
||||||
@@ -141,6 +142,14 @@ void BiboumiComponent::handle_presence(const Stanza& stanza)
|
|||||||
if (type.empty())
|
if (type.empty())
|
||||||
this->send_invalid_room_error(to.local, to.resource, from);
|
this->send_invalid_room_error(to.local, to.resource, from);
|
||||||
}
|
}
|
||||||
|
}
|
||||||
|
catch (const IRCNotConnected& ex)
|
||||||
|
{
|
||||||
|
this->send_stanza_error("presence", from, to_str, id,
|
||||||
|
"cancel", "remote-server-not-found",
|
||||||
|
"Not connected to IRC server "s + ex.hostname,
|
||||||
|
true);
|
||||||
|
}
|
||||||
stanza_error.disable();
|
stanza_error.disable();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user