mod_s2s: Guard against missing 'to' on incoming stream
authorKim Alvefur <zash@zash.se>
Sun, 18 Jul 2021 09:08:04 +0200
changeset 11708 0a8671f32424
parent 11707 e57c5d9c722c
child 11709 7132acfd287e
mod_s2s: Guard against missing 'to' on incoming stream Given an incoming <stream:stream from="example.com"> this line would have mistakenly reported the 'from' as the local host. Neither are technically required and may be missing, especially on connections used only for Dialback. Outgoing connections initiated by Prosody always have 'from_host' and 'to_host', so it is safer to check it this way.
plugins/mod_s2s.lua
--- a/plugins/mod_s2s.lua	Sun Jul 18 08:53:37 2021 +0200
+++ b/plugins/mod_s2s.lua	Sun Jul 18 09:08:04 2021 +0200
@@ -614,7 +614,7 @@
 		end
 	end
 
-	local this_host = session.direction == "incoming" and session.to_host or session.from_host
+	local this_host = session.direction == "outgoing" and session.from_host or session.to_host
 
 	if reason then -- nil == no err, initiated by us, false == initiated by remote
 		local stream_error;