Comparison

plugins/mod_s2s/mod_s2s.lua @ 6846:7eb166fa1f26

mod_c2s, mod_s2s: Close incoming connections if there are no features to offer on incomplete streams (fixes #285)
author Kim Alvefur <zash@zash.se>
date Thu, 24 Sep 2015 20:05:23 +0200
parent 6685:3f05b255937f
child 6847:c314e9142e9d
child 6848:32327c80710b
comparison
equal deleted inserted replaced
6845:bb7854355df1 6846:7eb166fa1f26
349 hosts[to].events.fire_event("s2s-stream-features", { origin = session, features = features }); 349 hosts[to].events.fire_event("s2s-stream-features", { origin = session, features = features });
350 else 350 else
351 (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"); 351 (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");
352 end 352 end
353 353
354 log("debug", "Sending stream features: %s", tostring(features)); 354 if ( session.type == "s2sin" or session.type == "s2sout" ) or features.tags[1] then
355 session.sends2s(features); 355 log("debug", "Sending stream features: %s", tostring(features));
356 session.sends2s(features);
357 else
358 (session.log or log)("warn", "No features to offer, giving up");
359 session:close({ condition = "undefined-condition", text = "No features to offer" });
360 end
356 end 361 end
357 elseif session.direction == "outgoing" then 362 elseif session.direction == "outgoing" then
358 session.notopen = nil; 363 session.notopen = nil;
359 if not attr.id then 364 if not attr.id then
360 log("error", "Stream response did not give us a stream id!"); 365 log("error", "Stream response did not give us a stream id!");