diff options
author | Kim Alvefur <zash@zash.se> | 2015-09-24 20:05:23 +0200 |
---|---|---|
committer | Kim Alvefur <zash@zash.se> | 2015-09-24 20:05:23 +0200 |
commit | fabb7c056162683bf2da290348bf3c1efaa9e672 (patch) | |
tree | e62a34540641f19247d54c2bec77cce42f37878d /plugins/mod_s2s | |
parent | 09672718bf5dbbbb326d5d804ff791d66395614b (diff) | |
download | prosody-fabb7c056162683bf2da290348bf3c1efaa9e672.tar.gz prosody-fabb7c056162683bf2da290348bf3c1efaa9e672.zip |
mod_c2s, mod_s2s: Close incoming connections if there are no features to offer on incomplete streams (fixes #285)
Diffstat (limited to 'plugins/mod_s2s')
-rw-r--r-- | plugins/mod_s2s/mod_s2s.lua | 9 |
1 files changed, 7 insertions, 2 deletions
diff --git a/plugins/mod_s2s/mod_s2s.lua b/plugins/mod_s2s/mod_s2s.lua index 480761f4..b44000a6 100644 --- a/plugins/mod_s2s/mod_s2s.lua +++ b/plugins/mod_s2s/mod_s2s.lua @@ -351,8 +351,13 @@ function stream_callbacks.streamopened(session, attr) (session.log or log)("warn", "No 'to' on stream header from %s means we can't offer any features", from or session.ip or "unknown host"); end - log("debug", "Sending stream features: %s", tostring(features)); - session.sends2s(features); + if ( session.type == "s2sin" or session.type == "s2sout" ) or features.tags[1] then + log("debug", "Sending stream features: %s", tostring(features)); + session.sends2s(features); + else + (session.log or log)("warn", "No features to offer, giving up"); + session:close({ condition = "undefined-condition", text = "No features to offer" }); + end end elseif session.direction == "outgoing" then session.notopen = nil; |