aboutsummaryrefslogtreecommitdiffstats
path: root/plugins
diff options
context:
space:
mode:
authorKim Alvefur <zash@zash.se>2015-09-24 20:15:19 +0200
committerKim Alvefur <zash@zash.se>2015-09-24 20:15:19 +0200
commit8a539ac1ee9de45326aabefaa124bc7792134521 (patch)
tree12d7f0ee52b21fe124cc849278902ba715a35b32 /plugins
parent5dcb0569722d6feea8942fd5acc8af7805060f8b (diff)
parentfabb7c056162683bf2da290348bf3c1efaa9e672 (diff)
downloadprosody-8a539ac1ee9de45326aabefaa124bc7792134521.tar.gz
prosody-8a539ac1ee9de45326aabefaa124bc7792134521.zip
Merge 0.10->trunk
Diffstat (limited to 'plugins')
-rw-r--r--plugins/mod_c2s.lua7
-rw-r--r--plugins/mod_s2s/mod_s2s.lua9
2 files changed, 13 insertions, 3 deletions
diff --git a/plugins/mod_c2s.lua b/plugins/mod_c2s.lua
index 1423eaa3..3d9f9f88 100644
--- a/plugins/mod_c2s.lua
+++ b/plugins/mod_c2s.lua
@@ -83,7 +83,12 @@ function stream_callbacks.streamopened(session, attr)
local features = st.stanza("stream:features");
hosts[session.host].events.fire_event("stream-features", { origin = session, features = features });
- send(features);
+ if features.tags[1] or session.full_jid then
+ send(features);
+ else
+ (session.log or log)("warn", "No features to offer");
+ session:close{ condition = "undefined-condition", text = "No features to proceed with" };
+ end
end
function stream_callbacks.streamclosed(session)
diff --git a/plugins/mod_s2s/mod_s2s.lua b/plugins/mod_s2s/mod_s2s.lua
index 68042a5d..ff8ef45d 100644
--- a/plugins/mod_s2s/mod_s2s.lua
+++ b/plugins/mod_s2s/mod_s2s.lua
@@ -354,8 +354,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;