aboutsummaryrefslogtreecommitdiffstats
path: root/core
diff options
context:
space:
mode:
authorMatthew Wild <mwild1@gmail.com>2012-05-12 00:31:48 +0100
committerMatthew Wild <mwild1@gmail.com>2012-05-12 00:31:48 +0100
commit8a195243841d5101890e3fd0cc9ad48b46fa0e7b (patch)
tree27d57167732ad830920c35f99e67ab9d86c361a0 /core
parentbf452927fde8e75cf9da4af74b5529e752330fc8 (diff)
downloadprosody-8a195243841d5101890e3fd0cc9ad48b46fa0e7b.tar.gz
prosody-8a195243841d5101890e3fd0cc9ad48b46fa0e7b.zip
stanza_router: Catch s2s stanzas to hosts we don't serve earlier, and close with host-unknown (thanks darkrain)
Diffstat (limited to 'core')
-rw-r--r--core/stanza_router.lua4
1 files changed, 4 insertions, 0 deletions
diff --git a/core/stanza_router.lua b/core/stanza_router.lua
index b4c65a10..cea38166 100644
--- a/core/stanza_router.lua
+++ b/core/stanza_router.lua
@@ -110,6 +110,10 @@ function core_process_stanza(origin, stanza)
if not host_status or not host_status.authed then -- remote server trying to impersonate some other server?
log("warn", "Received a stanza claiming to be from %s, over a stream authed for %s!", from_host, origin.from_host);
return; -- FIXME what should we do here? does this work with subdomains?
+ elseif not hosts[to_host] then
+ log("warn", "Remote server %s sent us a stanza for %s, closing stream", origin.from_host, to_host);
+ origin:close("host-unknown");
+ return;
end
end
core_post_stanza(origin, stanza, origin.full_jid);