Source-Changes-HG archive

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index][Old Index]

[src/netbsd-6]: src/etc/rc.d Pull up following revision(s) (requested by chri...



details:   https://anonhg.NetBSD.org/src/rev/4006b2bdf10f
branches:  netbsd-6
changeset: 774637:4006b2bdf10f
user:      riz <riz%NetBSD.org@localhost>
date:      Tue Oct 09 22:58:35 2012 +0000

description:
Pull up following revision(s) (requested by christos in ticket #587):
        etc/rc.d/named: revision 1.23
PR/47024: Taylor R Campbell: handle "keys" directory and directory
permissions in general

diffstat:

 etc/rc.d/named |  53 ++++++++++++++++++++++++++++++++---------------------
 1 files changed, 32 insertions(+), 21 deletions(-)

diffs (110 lines):

diff -r 3a9f73d35478 -r 4006b2bdf10f etc/rc.d/named
--- a/etc/rc.d/named    Fri Oct 05 18:37:24 2012 +0000
+++ b/etc/rc.d/named    Tue Oct 09 22:58:35 2012 +0000
@@ -1,6 +1,6 @@
 #!/bin/sh
 #
-# $NetBSD: named,v 1.22 2009/08/03 17:45:48 perry Exp $
+# $NetBSD: named,v 1.22.8.1 2012/10/09 22:58:35 riz Exp $
 #
 
 # PROVIDE: named
@@ -20,38 +20,43 @@
 
 named_migrate()
 {
-       local src=$1
-       local dst=$2$1
+       local src="$1"
+       local dst="$2$1"
        echo "Migrating $src to $dst"
 (
        diff=false
-       cd $src
+       cd "$src"
+       mkdir -p "$dst"
        for f in $(find . -type f)
        do
-               f=${f##./}
-               case $f in
+               f="${f##./}"
+               case "$f" in
                */*)
-                       d=$dst/$(dirname $f)
+                       ds="$(dirname "$f")"
+                       dd="$dst/$ds"
+                       mkdir -p "$dd"
+                       chmod "$(stat -f "%p" "$ds" |
+                           sed -e 's/.*\([0-7][0-7][0-7][0-7]\)$/\1/g')" "$dd"
+                       chown "$(stat -f %u:%g "$ds")" "$dd"
                        ;;
-               *)      d=$dst
+               *)
                        ;;
                esac
-               mkdir -p $d
                if [ -r "$dst/$f" ]
                then
-                       if ! cmp $f $dst/$f; then
+                       if ! cmp "$f" "$dst/$f"; then
                                diff=true
                        fi
                else
-                       cp -p $f $dst/$f
+                       cp -p "$f" "$dst/$f"
                fi
        done
        if $diff; then
                echo "Cannot complete migration because files are different"
                echo "Run 'diff -r $src $dst' resolve the differences"
        else
-               rm -fr $src
-               ln -s $dst $src
+               rm -fr "$src"
+               ln -s "$dst" "$src"
        fi
 )
 }
@@ -59,6 +64,10 @@
 named_precmd()
 {
        if [ -z "$named_chrootdir" ]; then
+               if [ ! -d "/etc/namedb/keys" ]; then
+                       mkdir -m 775 "/etc/namedb/keys"
+                       chown named:named "/etc/namedb/keys"
+               fi
                return 0;
        fi
 
@@ -87,8 +96,7 @@
                ;;
        esac
 
-       for i in null random
-       do
+       for i in null random; do
                if [ ! -c "${named_chrootdir}/dev/$i" ]; then
                        rm -f "${named_chrootdir}/dev/$i"
                        (cd /dev && 
@@ -99,12 +107,15 @@
        if [ ! -h /etc/namedb ]; then
                named_migrate /etc/namedb ${named_chrootdir}
        fi
-       if [ \( -r /etc/named.conf \) -a \( ! -h /etc/named.conf \) -a \
-            \( ! -r ${named_chrootdir}/etc/named.conf \) ]
-       then
-               mv /etc/named.conf ${named_chrootdir}/etc/named.conf
-               ln -s ${named_chrootdir}/etc/named.conf /etc/named.conf
-       fi
+
+       for i in named.conf rndc.key; do
+               if [ \( -r "/etc/$i" \) -a \( ! -h "/etc/$i" \) -a \
+                    \( ! -r "${named_chrootdir}/etc/$i" \) ]; then
+                       mv "/etc/$i" "${named_chrootdir}/etc/$i"
+                       ln -s "${named_chrootdir}/etc/$i" "/etc/$i"
+               fi
+       done
+
        if [ \( ! -r ${named_chrootdir}/etc/named.conf \) -a \
            \( -r ${named_chrootdir}/etc/namedb/named.conf \) ]; then
                ln -s namedb/named.conf ${named_chrootdir}/etc



Home | Main Index | Thread Index | Old Index