summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--src/xmpp/biboumi_component.cpp9
1 files changed, 9 insertions, 0 deletions
diff --git a/src/xmpp/biboumi_component.cpp b/src/xmpp/biboumi_component.cpp
index 4996438..5d571ec 100644
--- a/src/xmpp/biboumi_component.cpp
+++ b/src/xmpp/biboumi_component.cpp
@@ -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();
}