Mercurial > prosody-modules
changeset 4764:a754f7e380b2
mod_dnsupdate: Rewrite port config vs DNS comparison code
I'm not sure if it was correct, which means it was hard to understand
and thus needed to be simplified. Hope this accomplishes that.
author | Kim Alvefur <zash@zash.se> |
---|---|
date | Mon, 08 Nov 2021 23:03:14 +0100 |
parents | 91077c928c57 |
children | 3632836f35b0 |
files | mod_dnsupdate/mod_dnsupdate.lua |
diffstat | 1 files changed, 9 insertions(+), 11 deletions(-) [+] |
line wrap: on
line diff
--- a/mod_dnsupdate/mod_dnsupdate.lua Mon Nov 08 22:28:00 2021 +0100 +++ b/mod_dnsupdate/mod_dnsupdate.lua Mon Nov 08 23:03:14 2021 +0100 @@ -98,20 +98,18 @@ for _, service in ipairs(services) do local ports = set.new(configured_ports[service]); local records = (async.wait_for(existing_srv[service])); - local replace = opts.reset; - for _, rr in ipairs(records) do - if not ports:contains(rr.srv.port) or target ~= nameprep(rr.srv.target):gsub("%.$", "") then - if not opts.each then - replace = true; - break + if opts.reset then + print(("del _%s._tcp.%s IN SRV"):format(service, ihost)); + else + for _, rr in ipairs(records) do + if ports:contains(rr.srv.port) and target == nameprep(rr.srv.target):gsub("%.$", "") then + ports:remove(rr.srv.port) + else + print(("del _%s._tcp.%s IN SRV %s"):format(service, ihost, rr)); end - print(("del _%s._tcp.%s IN SRV %s"):format(service, ihost, rr)); end end - if replace then - print(("del _%s._tcp.%s IN SRV"):format(service, ihost)); - for port in ports do print(("add _%s._tcp.%s IN SRV 1 1 %d %s"):format(service, ihost, port, target)); end - end + for port in ports do print(("add _%s._tcp.%s IN SRV 1 1 %d %s"):format(service, ihost, port, target)); end end print("show");