s2smanager: Fail outgoing s2s connection if hostname does not pass idna_to_ascii(), thanks Flo + waqas

Fri, 20 Nov 2009 15:07:39 +0000

author
Matthew Wild <mwild1@gmail.com>
date
Fri, 20 Nov 2009 15:07:39 +0000
changeset 2090
7810648ea26d
parent 2089
fdd7280c4621
child 2091
6fd686a45806
child 2139
625b2d3e8900
child 2154
a6608ccab383
child 2277
49bc4c7bdef8

s2smanager: Fail outgoing s2s connection if hostname does not pass idna_to_ascii(), thanks Flo + waqas

core/s2smanager.lua file | annotate | diff | comparison | revisions
--- a/core/s2smanager.lua	Fri Nov 20 04:39:54 2009 +0000
+++ b/core/s2smanager.lua	Fri Nov 20 15:07:39 2009 +0000
@@ -106,6 +106,7 @@
 	else
 		log("debug", "opening a new outgoing connection for this stanza");
 		local host_session = new_outgoing(from_host, to_host);
+
 		-- Store in buffer
 		host_session.sendq = { {tostring(data), st.reply(data)} };
 		log("debug", "stanza [%s] queued until connection complete", tostring(data.name));
@@ -155,7 +156,7 @@
 			host_session.log = log;
 		end
 		
-		-- This is the first call, can't fail (the first step is DNS lookup)
+		-- Kick the connection attempting machine
 		attempt_connection(host_session);
 		
 		if not host_session.sends2s then		
@@ -183,6 +184,10 @@
 	local from_host, to_host = host_session.from_host, host_session.to_host;
 	local connect_host, connect_port = idna_to_ascii(to_host), 5269;
 	
+	if not connect_host then
+		return false;
+	end
+	
 	if not err then -- This is our first attempt
 		log("debug", "First attempt to connect to %s, starting with SRV lookup...", to_host);
 		host_session.connecting = true;

mercurial