equal
deleted
inserted
replaced
40 out:write("\t-p --primary\tprimary DNS name server\n"); |
40 out:write("\t-p --primary\tprimary DNS name server\n"); |
41 out:write("\t-t --target\ttarget hostname for SRV\n"); |
41 out:write("\t-t --target\ttarget hostname for SRV\n"); |
42 out:write("\t-l --ttl\tTTL to use\n"); |
42 out:write("\t-l --ttl\tTTL to use\n"); |
43 out:write("\t--each\tremove and replace individual SRV records\n"); |
43 out:write("\t--each\tremove and replace individual SRV records\n"); |
44 out:write("\t--reset\tremove and replace all SRV records\n"); |
44 out:write("\t--reset\tremove and replace all SRV records\n"); |
|
45 out:write("\t--remove\tremove all SRV records\n"); |
45 return opts and opts.help and 0 or 1; |
46 return opts and opts.help and 0 or 1; |
46 end |
47 end |
47 |
48 |
48 local vhost = nameprep(arg[1]); -- TODO loop over arg[]? |
49 local vhost = nameprep(arg[1]); -- TODO loop over arg[]? |
49 if not vhost then |
50 if not vhost then |
101 print("ttl " .. tostring(opts.ttl or 60 * 60)); |
102 print("ttl " .. tostring(opts.ttl or 60 * 60)); |
102 |
103 |
103 for _, service in ipairs(services) do |
104 for _, service in ipairs(services) do |
104 local ports = set.new(configured_ports[service]); |
105 local ports = set.new(configured_ports[service]); |
105 local records = (async.wait_for(existing_srv[service])); |
106 local records = (async.wait_for(existing_srv[service])); |
106 if opts.reset then |
107 if opts.remove or opts.reset then |
107 print(("del _%s._tcp.%s IN SRV"):format(service, ihost)); |
108 print(("del _%s._tcp.%s IN SRV"):format(service, ihost)); |
108 else |
109 else |
109 for _, rr in ipairs(records) do |
110 for _, rr in ipairs(records) do |
110 if ports:contains(rr.srv.port) and target == nameprep(rr.srv.target):gsub("%.$", "") then |
111 if ports:contains(rr.srv.port) and target == nameprep(rr.srv.target):gsub("%.$", "") then |
111 ports:remove(rr.srv.port) |
112 ports:remove(rr.srv.port) |
115 else |
116 else |
116 print(("del _%s._tcp.%s IN SRV %s"):format(service, ihost, rr)); |
117 print(("del _%s._tcp.%s IN SRV %s"):format(service, ihost, rr)); |
117 end |
118 end |
118 end |
119 end |
119 end |
120 end |
120 for port in ports do print(("add _%s._tcp.%s IN SRV 1 1 %d %s"):format(service, ihost, port, target)); end |
121 if not opts.remove then |
|
122 for port in ports do print(("add _%s._tcp.%s IN SRV 1 1 %d %s"):format(service, ihost, port, target)); end |
|
123 end |
121 end |
124 end |
122 |
125 |
123 print("show"); |
126 print("show"); |
124 print("send"); |
127 print("send"); |
125 print("answer"); |
128 print("answer"); |