From 7d5a1a0c2b0bb381577a6bd818c7afd72388f9d5 Mon Sep 17 00:00:00 2001 From: des Date: Mon, 24 May 2004 11:48:58 +0000 Subject: Move the task of updating nsswitch.conf / host.conf into a separate script called nsswitch. --- etc/rc.d/nisdomain | 64 ------------------------------------------------------ 1 file changed, 64 deletions(-) (limited to 'etc/rc.d/nisdomain') diff --git a/etc/rc.d/nisdomain b/etc/rc.d/nisdomain index 4866f4d..1ca4afa 100644 --- a/etc/rc.d/nisdomain +++ b/etc/rc.d/nisdomain @@ -37,72 +37,8 @@ name="nisdomain" start_cmd="nisdomain_start" stop_cmd=":" -convert_host_conf() -{ - host_conf=$1; shift; - nsswitch_conf=$1; shift; - awk ' \ - /^[:blank:]*#/ { next } \ - /(hosts|local|file)/ { nsswitch[c] = "files"; c++; next } \ - /(dns|bind)/ { nsswitch[c] = "dns"; c++; next } \ - /nis/ { nsswitch[c] = "nis"; c++; next } \ - { printf "Warning: unrecognized line [%s]", $0 > "/dev/stderr" } \ - END { \ - printf "hosts: "; \ - for (i in nsswitch) printf "%s ", nsswitch[i]; \ - printf "\n"; \ - }' < $host_conf > $nsswitch_conf -} - -generate_host_conf() -{ - nsswitch_conf=$1; shift; - host_conf=$1; shift; - - awk ' -BEGIN { - xlat["files"] = "hosts"; - xlat["dns"] = "bind"; - xlat["nis"] = "nis"; - cont = 0; -} -sub(/^[\t ]*hosts:/, "") || cont { - if (!cont) - srcs = "" - sub(/#.*/, "") - gsub(/[][]/, " & ") - cont = sub(/\\$/, "") - srcs = srcs " " $0 -} -END { - print "# Auto-generated from nsswitch.conf, do not edit" - ns = split(srcs, s) - for (n = 1; n <= ns; ++n) { - if (s[n] in xlat) - print xlat[s[n]] - } -} -' <$nsswitch_conf >$host_conf -} - nisdomain_start() { - # Generate host.conf for compatibility - # - if [ -f "/etc/nsswitch.conf" ]; then - echo 'Generating host.conf.' - generate_host_conf /etc/nsswitch.conf /etc/host.conf - fi - - # Convert host.conf to nsswitch.conf if necessary - # - if [ -f "/etc/host.conf" -a ! -f "/etc/nsswitch.conf" ]; then - echo '' - echo 'Warning: /etc/host.conf is no longer used' - echo ' /etc/nsswitch.conf will be created for you' - convert_host_conf /etc/host.conf /etc/nsswitch.conf - fi - # Set the domainname if we're using NIS # case ${nisdomainname} in -- cgit v1.1