s2smanager: Fail outgoing s2s connection if hostname does not pass idna_to_ascii...
authorMatthew Wild <mwild1@gmail.com>
Fri, 20 Nov 2009 15:07:39 +0000 (15:07 +0000)
committerMatthew Wild <mwild1@gmail.com>
Fri, 20 Nov 2009 15:07:39 +0000 (15:07 +0000)
core/s2smanager.lua

index 21bcb2dc73d204a99dd37d87c7d9ccea6864993a..4c61eaa3fc972bbc77e0302926d3547f976ee2c5 100644 (file)
@@ -106,6 +106,7 @@ function send_to_host(from_host, to_host, data)
        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 @@ function new_outgoing(from_host, to_host)
                        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 @@ function attempt_connection(host_session, err)
        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;