Properly send error response on presence stanzas

This commit is contained in:
Florent Le Coz
2015-05-11 05:03:09 +02:00
parent 5475d16b57
commit ad5bd99618
+9
View File
@@ -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();
} }