aboutsummaryrefslogtreecommitdiffstats
path: root/plugins
diff options
context:
space:
mode:
authorKim Alvefur <zash@zash.se>2014-09-02 17:24:25 +0200
committerKim Alvefur <zash@zash.se>2014-09-02 17:24:25 +0200
commit4bc9e05c119e883af72963465410c673fab815a6 (patch)
treea30c886f6fca66f796055d5a0ad9b41c01d7679e /plugins
parentcc25fa8f9027030eec14c65a075de3f1a0cfdf10 (diff)
downloadprosody-4bc9e05c119e883af72963465410c673fab815a6.tar.gz
prosody-4bc9e05c119e883af72963465410c673fab815a6.zip
mod_s2s: Close offending s2s streams missing an 'id' attribute with a stream error instead of throwing an unhandled error
Diffstat (limited to 'plugins')
-rw-r--r--plugins/mod_s2s/mod_s2s.lua7
1 files changed, 5 insertions, 2 deletions
diff --git a/plugins/mod_s2s/mod_s2s.lua b/plugins/mod_s2s/mod_s2s.lua
index 44334428..834e6a1c 100644
--- a/plugins/mod_s2s/mod_s2s.lua
+++ b/plugins/mod_s2s/mod_s2s.lua
@@ -365,8 +365,11 @@ function stream_callbacks.streamopened(session, attr)
session.notopen = nil;
elseif session.direction == "outgoing" then
session.notopen = nil;
- -- If we are just using the connection for verifying dialback keys, we won't try and auth it
- if not attr.id then error("stream response did not give us a streamid!!!"); end
+ if not attr.id then
+ log("error", "Stream response did not give us a stream id!");
+ session:close({ condition = "undefined-condition", text = "Missing stream ID" });
+ return;
+ end
session.streamid = attr.id;
if session.secure and not session.cert_chain_status then