Diff

net/resolvers/manual.lua @ 8531:601681acea73

net.connect: New API for outgoing connections, based on 'service resolvers'
author Matthew Wild <mwild1@gmail.com>
date Fri, 23 Feb 2018 15:53:45 +0000
child 9691:e11e076f0eb8
line wrap: on
line diff
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/net/resolvers/manual.lua	Fri Feb 23 15:53:45 2018 +0000
@@ -0,0 +1,25 @@
+local methods = {};
+local resolver_mt = { __index = methods };
+
+-- Find the next target to connect to, and
+-- pass it to cb()
+function methods:next(cb)
+	if #self.targets == 0 then
+		cb(nil);
+		return;
+	end
+	local next_target = table.remove(self.targets, 1);
+	cb(unpack(next_target, 1, 4));
+end
+
+local function new(targets, conn_type, extra)
+	return setmetatable({
+		conn_type = conn_type;
+		extra = extra;
+		targets = targets or {};
+	}, resolver_mt);
+end
+
+return {
+	new = new;
+};