X-Git-Url: http://mj.ucw.cz/gitweb/?a=blobdiff_plain;f=m4%2Fdnslib.m4;h=5997262bc58f1b2eb6c3e051a3adfdf5c4dbf298;hb=8ee88613458f9f6249e03d6dfdd2c79e549ffd81;hp=3e796a3ac91ddb9cbd74e73d10e97f6c2943a2e7;hpb=702c59e0e8d95d2798f798123fb03319d6a84957;p=nsc-5.git diff --git a/m4/dnslib.m4 b/m4/dnslib.m4 index 3e796a3..5997262 100644 --- a/m4/dnslib.m4 +++ b/m4/dnslib.m4 @@ -1,12 +1,12 @@ dnl ### dnl ### NSC -- Library Functions For DNS Processing -dnl ### (c) 1997--2008 Martin Mares +dnl ### (c) 1997--2019 Martin Mares dnl ### divert(-1) # NSC version -define(`NSCVER', `NSC 3.1') +define(`NSCVER', `NSC 5.0') # Current date and time @@ -28,10 +28,11 @@ define(nsc_file_name, `translit($1,/,@)') define(nsc_revIPa, `ifelse($#, 1, `$1', `nsc_revIPa(shift($@)).$1')') define(nsc_revaddr, `nsc_revIPa(translit($1, `.', `,'))') -# Fix up dots in a name: if the name is not simple (i.e., it contains at least one dot), -# ensure that it ends with a dot. +# Fix up dots in a name: If the name is not simple (i.e., it contains at least one unescaped +# dot), ensure that it ends with a dot. Then unescape all escaped dots (\.). -define(nsc_corr_dot, `ifelse(substr($1,decr(len($1))),.,$1,$1`'ifelse(index($1,.),-1,,.))') +define(nsc_name, `nsc_unescape_name(ifelse(substr($1,decr(len($1))),.,$1,$1`'ifelse(regexp($1,`[^\\]\.'),-1,,.)))') +define(nsc_unescape_name,`patsubst(`$1',\\\.,.)') # Normalize IPv6 address @@ -70,6 +71,11 @@ define(nsc_iterate, `define(`nsc_iter', defn(`$1'))nsc_itera(shift($@))') define(REV, `nsc_if_v6($1,`nsc_revblock6($1).ip6.arpa',`nsc_revaddr($1).in-addr.arpa')') +# DNSSEC wrapper + +define(`USE_DNSSEC') +define(`DNSSEC', `define(`USE_DNSSEC',1)$1define(`USE_DNSSEC')') + # A for loop macro from m4 doc define(`nsc_forloop', @@ -85,16 +91,10 @@ define(`nsc_fatal_error', `errprint(`NSC error: $1 # Default values of parameters -define(`NAMED_RESTART_CMD', `ndc reload') +define(`NAMED_RESTART_CMD', `rndc reload') -define(`BIND_OPTIONS', ` # Other options can be added here via macro `BIND_OPTIONS'') - -define(`ROOT', `/etc/named') define(`CFDIR', `cf') -define(`ZONEDIR', `zone') -define(`BAKDIR', `bak') define(`VERSDIR', `ver') -define(`ROOTCACHE', `root.cache') define(`REFRESH', HOURS(8)) define(`RETRY', HOURS(2)) @@ -104,6 +104,10 @@ define(`NSNAME', translit(esyscmd(`hostname -f'),` ',`')) define(`MAINTNAME', `root'.`nsc_corr_dot(NSNAME)') +define(`KEYGEN_OPTIONS', `-a RSASHA256 -b 1024') +define(`SIGNZONE_OPTIONS', `-e +'DAYS(365)) +define(`DSFROMKEY_OPTIONS', `') + # And finally we change comments to semicolons to be compatible with the zone files changecom(;)