mod_s2s/s2sout.lib: Don't wait for both v4 and v6 DNS responses if we only send one (e.g. because v6 is disabled)

remotes/origin/0.11
Matthew Wild 14 years ago
parent f4719b66bc
commit fb3b789dca
  1. 15
      plugins/mod_s2s/s2sout.lib.lua

@ -170,7 +170,7 @@ function s2sout.try_connect(host_session, connect_host, connect_port, err)
local IPs = {};
host_session.ip_hosts = IPs;
local handle4, handle6;
local has_other = false;
local have_other_result = not(has_ipv4) or not(has_ipv6) or false;
if has_ipv4 then
handle4 = adns.lookup(function (reply, err)
@ -195,7 +195,7 @@ function s2sout.try_connect(host_session, connect_host, connect_port, err)
end
end
if has_other then
if have_other_result then
if #IPs > 0 then
rfc3484_dest(host_session.ip_hosts, sources);
for i = 1, #IPs do
@ -213,11 +213,11 @@ function s2sout.try_connect(host_session, connect_host, connect_port, err)
end
end
else
has_other = true;
have_other_result = true;
end
end, connect_host, "A", "IN");
else
has_other = true;
have_other_result = true;
end
if has_ipv6 then
@ -231,7 +231,7 @@ function s2sout.try_connect(host_session, connect_host, connect_port, err)
end
end
if has_other then
if have_other_result then
if #IPs > 0 then
rfc3484_dest(host_session.ip_hosts, sources);
for i = 1, #IPs do
@ -249,13 +249,12 @@ function s2sout.try_connect(host_session, connect_host, connect_port, err)
end
end
else
has_other = true;
have_other_result = true;
end
end, connect_host, "AAAA", "IN");
else
has_other = true;
have_other_result = true;
end
return true;
elseif host_session.ip_hosts and #host_session.ip_hosts > host_session.ip_choice then -- Not our first attempt, and we also have IPs left to try
s2sout.try_next_ip(host_session);

Loading…
Cancel
Save