Index: named =================================================================== RCS file: /home/ncvs/src/etc/rc.d/named,v retrieving revision 1.24 diff -u -r1.24 named --- named 13 Feb 2006 08:45:50 -0000 1.24 +++ named 14 Apr 2006 14:57:22 -0000 @@ -4,7 +4,7 @@ # # PROVIDE: named -# REQUIRE: SERVERS cleanvar +# REQUIRE: SERVERS cleanvar ldconfig # KEYWORD: shutdown . /etc/rc.subr @@ -21,6 +21,14 @@ stop_cmd="named_stop" stop_postcmd="named_poststop" +load_rc_config $name + +if [ -n "${named_chrootdir}" ]; then + named_etcdir="${named_chrootdir}/etc" +else + named_etcdir="${etcdir}" +fi + # If running in a chroot cage, ensure that the appropriate files # exist inside the cage, as well as helper symlinks into the cage # from outside. @@ -44,17 +52,17 @@ # Create /etc/namedb symlink # - if [ ! -L /etc/namedb ]; then - if [ -d /etc/namedb ]; then - warn "named chroot: /etc/namedb is a directory!" - elif [ -e /etc/namedb ]; then - warn "named chroot: /etc/namedb exists!" + if [ ! -L ${etcdir}/namedb ]; then + if [ -d ${etcdir}/namedb ]; then + warn "named chroot: ${etcdir}/namedb is a directory!" + elif [ -e ${etcdir}/namedb ]; then + warn "named chroot: ${etcdir}/namedb exists!" else - ln -s ${named_chrootdir}/etc/namedb /etc/namedb + ln -s ${named_etcdir}/namedb ${etcdir}/namedb fi else # Make sure it points to the right place. - ln -shf ${named_chrootdir}/etc/namedb /etc/namedb + ln -shf ${named_etcdir}/namedb ${etcdir}/namedb fi # Mount a devfs in the chroot directory if needed @@ -118,13 +126,13 @@ # Create an rndc.key file for the user if none exists # - if [ -s "${named_chrootdir}/etc/namedb/rndc.conf" ]; then + if [ -s "${named_etcdir}/namedb/rndc.conf" ]; then return 0 fi - confgen_command="rndc-confgen -a -b256 -u $named_uid \ - -c ${named_chrootdir}/etc/namedb/rndc.key" - if [ -s "${named_chrootdir}/etc/namedb/rndc.key" ]; then - if [ ! `stat -f%Su ${named_chrootdir}/etc/namedb/rndc.key` = \ + confgen_command="${prefix}/sbin/rndc-confgen -a -b256 -u $named_uid \ + -c ${named_etcdir}/namedb/rndc.key" + if [ -s "${named_etcdir}/namedb/rndc.key" ]; then + if [ ! `stat -f%Su ${named_etcdir}/namedb/rndc.key` = \ "$named_uid" ]; then $confgen_command fi @@ -133,7 +141,6 @@ fi } -load_rc_config $name # Updating the following variables requires that rc.conf be loaded first # required_dirs="$named_chrootdir" # if it is set, it must exist