Module Name:    src
Committed By:   christos
Date:           Wed Mar 31 04:57:25 UTC 2021

Modified Files:
        src/etc/rc.d: named

Log Message:
handle copying of plugins to the chroot


To generate a diff of this commit:
cvs rdiff -u -r1.26 -r1.27 src/etc/rc.d/named

Please note that diffs are not public domain; they are subject to the
copyright notices on the relevant files.

Modified files:

Index: src/etc/rc.d/named
diff -u src/etc/rc.d/named:1.26 src/etc/rc.d/named:1.27
--- src/etc/rc.d/named:1.26	Sat Jul  4 02:24:53 2020
+++ src/etc/rc.d/named	Wed Mar 31 00:57:25 2021
@@ -1,6 +1,6 @@
 #!/bin/sh
 #
-# $NetBSD: named,v 1.26 2020/07/04 06:24:53 skrll Exp $
+# $NetBSD: named,v 1.27 2021/03/31 04:57:25 christos Exp $
 #
 
 # PROVIDE: named
@@ -61,6 +61,18 @@ named_migrate()
 )
 }
 
+copy_if_newer()
+{
+	local chrootdir="$1"
+	local dir="$2"
+	local file="$3"
+	if [ ! -x "${chrootdir}${dir}/${file}" -o \
+	    "${chrootdir}${dir}/${file}" -ot "${dir}/${file}" ]; then
+		rm -f "${chrootdir}${dir}/${file}"
+		cp -p "${dir}/${file}" "${chrootdir}${dir}/${file}"
+	fi
+}
+
 named_precmd()
 {
 	if [ ! -e "/etc/rndc.key" ]; then
@@ -87,16 +99,19 @@ named_precmd()
 	#
 	case "$($command -v)" in
 	BIND*)	# 9 no group, named-xfer, or ndc
+		named_plugindir="/usr/libexec/named"
+		if [ ! -d "${named_chrootdir}${named_plugindir}" ]; then
+		    mkdir -p -m 755 "${named_chrootdir}${named_plugindir}"
+		    chown root:wheel "${named_chrootdir}${named_plugindir}"
+		fi
+		for p in filter-aaaa.so; do
+			copy_if_newer "${named_chrootdir}" \
+			    "${named_plugindir}" "$p"
+		done
 		;;
 	named*)	# 4 and 8
 		rc_flags="-g named $rc_flags"
-		if [ ! -x "${named_chrootdir}/usr/libexec/named-xfer" -o \
-		    "${named_chrootdir}/usr/libexec/named-xfer" -ot \
-		    /usr/libexec/named-xfer ]; then
-			rm -f "${named_chrootdir}/usr/libexec/named-xfer"
-			cp -p /usr/libexec/named-xfer \
-			    "${named_chrootdir}/usr/libexec"
-		fi
+		copy_if_newer "${named_chrootdir}" "/usr/libexec" "named-xfer"
 		ln -fs "${named_chrootdir}/var/run/ndc" /var/run/ndc
 		;;
 	esac

Reply via email to