net/resolvers/service.lua
changeset 10654 324a0c7d1c6a
parent 10488 b13a31cea7d9
child 10974 4603697aee50
--- a/net/resolvers/service.lua	Sat Feb 15 16:43:18 2020 +0100
+++ b/net/resolvers/service.lua	Sun Feb 16 23:48:31 2020 +0100
@@ -14,14 +14,17 @@
 -- pass it to cb()
 function methods:next(cb)
 	if self.targets then
-		if #self.targets == 0 then
-			cb(nil);
-			return;
+		if not self.resolver then
+			if #self.targets == 0 then
+				cb(nil);
+				return;
+			end
+			local next_target = table.remove(self.targets, 1);
+			self.resolver = basic.new(unpack(next_target, 1, 4));
 		end
-		local next_target = table.remove(self.targets, 1);
-		self.resolver = basic.new(unpack(next_target, 1, 4));
 		self.resolver:next(function (...)
 			if ... == nil then
+				self.resolver = nil;
 				self:next(cb);
 			else
 				cb(...);