@@ -130,7 +130,8 @@ records: []
130
130
local resolver = require "resty.dns.resolver"
131
131
132
132
local r, err = resolver:new{
133
- nameservers = { {"127.0.0.1", 1953} }
133
+ nameservers = { {"127.0.0.1", 1953} },
134
+ retrans = 1,
134
135
}
135
136
if not r then
136
137
ngx.say("failed to instantiate resolver: ", err)
@@ -166,7 +167,8 @@ connect() failed
166
167
local resolver = require "resty.dns.resolver"
167
168
168
169
local r, err = resolver:new{
169
- nameservers = { {"127.0.0.1", 1953} }
170
+ nameservers = { {"127.0.0.1", 1953} },
171
+ retrans = 1,
170
172
}
171
173
if not r then
172
174
ngx.say("failed to instantiate resolver: ", err)
@@ -297,7 +299,8 @@ records: [{"class":1,"cname":"blah.google.com","name":"www.google.com","section"
297
299
local resolver = require "resty.dns.resolver"
298
300
299
301
local r, err = resolver:new{
300
- nameservers = { {"127.0.0.1", 1953} }
302
+ nameservers = { {"127.0.0.1", 1953} },
303
+ retrans = 1,
301
304
}
302
305
if not r then
303
306
ngx.say("failed to instantiate resolver: ", err)
@@ -343,7 +346,8 @@ failed to query: bad cname record length: 17 ~= 3
343
346
local resolver = require "resty.dns.resolver"
344
347
345
348
local r, err = resolver:new{
346
- nameservers = { {"127.0.0.1", 1953} }
349
+ nameservers = { {"127.0.0.1", 1953} },
350
+ retrans = 1,
347
351
}
348
352
if not r then
349
353
ngx.say("failed to instantiate resolver: ", err)
@@ -387,7 +391,8 @@ failed to query: bad A record value length: 1
387
391
local resolver = require "resty.dns.resolver"
388
392
389
393
local r, err = resolver:new{
390
- nameservers = { {"127.0.0.1", 1953} }
394
+ nameservers = { {"127.0.0.1", 1953} },
395
+ retrans = 1,
391
396
}
392
397
if not r then
393
398
ngx.say("failed to instantiate resolver: ", err)
@@ -878,7 +883,7 @@ records: {"errcode":6,"errstr":"unknown"}
878
883
879
884
local r, err = resolver:new{
880
885
nameservers = { {"127.0.0.1", 1953} },
881
- retrans = 3 ,
886
+ retrans = 1 ,
882
887
}
883
888
if not r then
884
889
ngx.say("failed to instantiate resolver: ", err)
@@ -924,7 +929,7 @@ connect() failed
924
929
925
930
local r, err = resolver:new{
926
931
nameservers = { {"127.0.0.1", 1953} },
927
- retrans = 3 ,
932
+ retrans = 1 ,
928
933
}
929
934
if not r then
930
935
ngx.say("failed to instantiate resolver: ", err)
@@ -1787,3 +1792,94 @@ GET /t
1787
1792
records: [{" class" : 1 ," expire" : 1800 ," minimum" : 60 ," mname" : " ns3.google.com" ," name" : " google.com" ," refresh" : 900 ," retry" : 900 ," rname" : " dns-admin.google.com" ," section" : 1 ," serial" : 175802026 ," ttl" : 0 ," type" : 6 },{" address" : " 127.0.0.1" ," class" : 1 ," name" : " ns3.google.com" ," section" : 3 ," ttl" : 0 ," type" : 1 }]
1788
1793
-- - no_error_log
1789
1794
[error]
1795
+
1796
+
1797
+
1798
+ === TEST 36 : retry on connection failures
1799
+ -- - http_config eval: $::HttpConfig
1800
+ -- - config
1801
+ location / t {
1802
+ content_by_lua_block {
1803
+ local resolver = require " resty.dns.resolver"
1804
+
1805
+ local r, err = resolver: new{
1806
+ nameservers = { {" 127.0.0.1" , 20000 } }, -- note : bad port
1807
+ retrans = 3 ,
1808
+ }
1809
+ if not r then
1810
+ ngx. say (" failed to instantiate resolver: " , err)
1811
+ return
1812
+ end
1813
+
1814
+ r. _id = 125
1815
+
1816
+ local ans, err, lst = r: query(" www.google.com" , { qtype = r. TYPE_A }, {})
1817
+ if not ans then
1818
+ ngx. say (" failed to query: " , err, " " , (lst[# lst] == err))
1819
+ for i, err in ipairs(lst) do
1820
+ ngx. say (i, " : " , err)
1821
+ end
1822
+ return
1823
+ end
1824
+ -- should not reach here
1825
+ }
1826
+ }
1827
+ -- - request
1828
+ GET / t
1829
+ -- - udp_query eval
1830
+ " \x{ 00 } }\x{ 01 } \x{ 00 } \x{ 00 } \x{ 01 } \x{ 00 } \x{ 00 } \x{ 00 } \x{ 00 } \x{ 00 } \x{ 00 } \x{ 03 } www\x{ 06 } google\x{ 03 } com\x{ 00 } \x{ 00 } \x{ 01 } \x{ 00 } \x{ 01 } "
1831
+ -- - response_body
1832
+ failed to query: failed to receive reply from UDP server 127.0 . 0. 1: 20000 : connection refused true
1833
+ 1 : failed to receive reply from UDP server 127.0 . 0. 1: 20000 : connection refused
1834
+ 2 : failed to receive reply from UDP server 127.0 . 0. 1: 20000 : connection refused
1835
+ 3 : failed to receive reply from UDP server 127.0 . 0. 1: 20000 : connection refused
1836
+ -- - error_log
1837
+ Connection refused
1838
+
1839
+
1840
+
1841
+ === TEST 37 : retry on connection failures, multiple servers
1842
+ -- - http_config eval: $::HttpConfig
1843
+ -- - config
1844
+ location / t {
1845
+ content_by_lua_block {
1846
+ local resolver = require " resty.dns.resolver"
1847
+
1848
+ local r, err = resolver: new{
1849
+ nameservers = { -- note : using bad ports
1850
+ {" 127.0.0.1" , 20000 },
1851
+ {" 127.0.0.1" , 20001 },
1852
+ {" 127.0.0.1" , 20002 },
1853
+ },
1854
+ retrans = 3 ,
1855
+ }
1856
+ if not r then
1857
+ ngx. say (" failed to instantiate resolver: " , err)
1858
+ return
1859
+ end
1860
+
1861
+ r. _id = 125
1862
+
1863
+ local ans, err, lst = r: query(" www.google.com" , { qtype = r. TYPE_A }, {})
1864
+ if not ans then
1865
+ ngx. say (" failed to query:" )
1866
+ table. sort (lst)
1867
+ for i, err in ipairs(lst) do
1868
+ ngx. say (i, " : " , err)
1869
+ end
1870
+ return
1871
+ end
1872
+ -- should not reach here
1873
+ }
1874
+ }
1875
+ -- - request
1876
+ GET / t
1877
+ -- - udp_query eval
1878
+ " \x{ 00 } }\x{ 01 } \x{ 00 } \x{ 00 } \x{ 01 } \x{ 00 } \x{ 00 } \x{ 00 } \x{ 00 } \x{ 00 } \x{ 00 } \x{ 03 } www\x{ 06 } google\x{ 03 } com\x{ 00 } \x{ 00 } \x{ 01 } \x{ 00 } \x{ 01 } "
1879
+ -- - response_body
1880
+ failed to query:
1881
+ 1 : failed to receive reply from UDP server 127.0 . 0. 1: 20000 : connection refused
1882
+ 2 : failed to receive reply from UDP server 127.0 . 0. 1: 20001 : connection refused
1883
+ 3 : failed to receive reply from UDP server 127.0 . 0. 1: 20002 : connection refused
1884
+ -- - error_log
1885
+ Connection refused
0 commit comments