# The following sed script:# - scopes the named.conf changes to dynamic-db# - replaces arg "name value" syntax with name "value"# - changes dynamic-db header to dyndb# - uses the new way the define path to the library# - removes no longer supported arguments (library, cache_ttl,# psearch, serial_autoincrement, zone_refresh)whileread-rPATTERN
do
SEDSCRIPT+="$PATTERN"done<<EOF
/^\s*dynamic-db/,/};/{
s/\(\s*\)arg\s\+\(["']\)\([a-zA-Z_]\+\s\)/\1\3\2/g;s/^dynamic-db/dyndb/;
s@\(dyndb"[^"]\+"\)@\1 "/usr/lib64/bind/ldap.so"@;s@\(dyndb'[^']\+'\)@\1 '/usr/lib64/bind/ldap.so'@;
/\s*library[^;]\+;/d;
/\s*cache_ttl[^;]\+;/d;
/\s*psearch[^;]\+;/d;
/\s*serial_autoincrement[^;]\+;/d;
/\s*zone_refresh[^;]\+;/d;
}
EOF
sed-i.bak--follow-symlinks-e"$SEDSCRIPT"/etc/named.conf
# upgrade# Previously, during an upgrade transaction named failed on restart# with binary incompatible dyndb plugin (not updated yet). So the# special file-flag is created if named was running before upgrade.# Later, named's filetrigger checks it for restart.if["$1"-gt1]&&[!-f'/run/named/named.restart'];then
SYSTEMCTL=systemctl
ifsd_booted&&"$SYSTEMCTL"--version>/dev/null2>&1;then
"$SYSTEMCTL"is-activebind.service>/dev/null2>&1&&
"$SYSTEMCTL"stopbind.service2>/dev/null&&
mkdir-p"$(dirname '/run/named/named.restart')"&&
touch'/run/named/named.restart'2>/dev/null||:
else
/etc/rc.d/init.d/bindstatus>/dev/null2>&1&&
/etc/rc.d/init.d/bindstop2>/dev/null&&
mkdir-p"$(dirname '/run/named/named.restart')"&&
touch'/run/named/named.restart'2>/dev/null||:
fi
fi