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, "");
|
||||
});
|
||||
|
||||
try {
|
||||
if (iid.is_channel && !iid.get_server().empty())
|
||||
{ // presence toward a MUC that corresponds to an irc channel, or a
|
||||
// dummy channel if iid.chan is empty
|
||||
@@ -141,6 +142,14 @@ void BiboumiComponent::handle_presence(const Stanza& stanza)
|
||||
if (type.empty())
|
||||
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();
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user