Thank you for the report. I don't use the zoneserver feature myself, so
this is difficult for me to test.

The /etc/init.d/zoneserver is a Debian addition and I've being doing a
poor job maintaining it. It's also a little complex as it is supposed to
handle multiple separate servers and their configurations.

I've since prepared a package with your patch:
http://hendry.iki.fi/debian/unstable/maradns_1.2.12.02-2_i386.changes

¿Could you please test it?

Best wishes!

On 2006-08-28T08:09+0200 Boris Dorès wrote:
> Package: maradns
> Version: 1.2.12.02-1
> Tags: patch
> 
>   Hi everyone,
> 
>   I think I found three bugs related to the init.d script of the zoneserver of
> maradns package :
> 
> 1) zoneserver doesn't start if there are more than one configuration
>    file mentionned in /etc/default/maradns ($SERVERS is used on the
>    command line instead of $rcfile, which zoneserver doesn't
>    understand).
> 
> 2) zoneserver isn't started unless "zone_transfer_acl" is defined in the
>    configuration file, even if it is (only) used to serve DNS records
>    over TCP (with the "tcp_convert_server" option).
> 
> 3) when zoneserver is stopped with "/etc/init.d/zoneserver stop", only
>    the parent process of each server is killed : children processes keep
>    running in the background and must be killed manually.
> 
> 
> 
>   For 1) and 2), here is a patch proposal :
> 
> --- /etc/init.d/zoneserver      2006-08-28 07:42:00.094624092 +0200
> +++ /etc/init.d/zoneserver2     2006-08-28 05:57:15.210295564 +0200
> @@ -33,11 +33,11 @@
>    start)
>         echo -n "Starting $DESC: "
>         for rcfile in $SERVERS ; do
> -           if grep -q -i "^zone_transfer_acl" $rcfile; then
> +           if grep -q -i "^\(zone_transfer_acl\|tcp_convert_server\)" 
> $rcfile; then
>                 SERVERNAME=`echo $rcfile | sed 's/\//_/g;s/^_*//;' | awk -F. 
> '{print $NF}'`
>                 SERVERNAME=zoneserver.$SERVERNAME
>                 start-stop-daemon --start -m --pidfile 
> /var/run/$SERVERNAME.pid \
> -       --exec $DAEMON -- -f $SERVERS </dev/null 2>&1 | logger -p 
> daemon.notice -t $SERVERNAME 2>/dev/null &
> +       --exec $DAEMON -- -f $rcfile </dev/null 2>&1 | logger -p 
> daemon.notice -t $SERVERNAME 2>/dev/null &
>             else
>                 echo "No zone ACL's configured for $rcfile -- not starting 
> zoneserver for it."
>             fi
> @@ -47,7 +47,7 @@
>    stop)
>         echo -n "Stopping $DESC: "
>         for rcfile in $SERVERS ; do
> -           if grep -q -i "^zone_transfer_acl" $rcfile; then
> +           if grep -q -i "^\(zone_transfer_acl\|tcp_convert_server\)" 
> $rcfile; then
>                 SERVERNAME=`echo $rcfile | sed 's/\//_/g;s/^_*//;' | awk -F. 
> '{print $NF}'`
>                 SERVERNAME=zoneserver.$SERVERNAME
>                 start-stop-daemon --stop -m --quiet --pidfile 
> /var/run/$SERVERNAME.pid \
> 
> 
> 
>   As for 3), I guess it's more like an upstream issue.
> 
>   Thanks.
> 
> -- 
> Boris Dores
> 

Reply via email to