Help dnsmasq configuration to make sense.
[myplc.git] / plc.d / dns
index b195809..361d639 100755 (executable)
--- a/plc.d/dns
+++ b/plc.d/dns
@@ -23,7 +23,7 @@ set -x
 case "$1" in
     start)
        if [ $PLC_DNS_ENABLED -eq 1 ] ; then
-           MESSAGE=$"Starting DNS server"
+           MESSAGE="Starting DNS server"
            dialog "$MESSAGE"
 
            dns-config
@@ -32,7 +32,7 @@ case "$1" in
 
        # Set up nameservers
        if [ -n "$PLC_NET_DNS1" -o -n "$PLC_NET_DNS2" ] ; then
-           MESSAGE=$"Configuring resolv.conf"
+           MESSAGE="Configuring resolv.conf"
            dialog "$MESSAGE"
 
            rfile=$(mktemp)
@@ -43,19 +43,24 @@ case "$1" in
            ) > $rfile
            
            if [ $PLC_DNS_ENABLED -eq 1 ] ; then
+               cp $rfile /etc/plc_resolv.conf
+               chmod 444 /etc/plc_resolv.conf
                ourfile=$(grep "$SIGNATURE" /etc/resolv.conf| wc -l)
                if [ $ourfile -eq 0 ] ; then
-                   cp /etc/resolv.conf /etc/plc_resolv.conf
+                   cp /etc/resolv.conf /etc/resolv.bak
+                   echo $SIGNATURE > /etc/resolv.conf
+                   echo nameserver 127.0.0.1 >> /etc/resolv.conf
+                   chmod 444 /etc/resolv.conf
                fi
            else
-               cp /etc/resolv.conf /etc/resolv_plc.backup
+               cp /etc/resolv.conf /etc/resolv.bak
+               mv -f $rfile /etc/resolv.conf
+               chmod 444 /etc/resolv.conf
            fi
-           mv -f $rfile /etc/resolv.conf
-           chmod 444 /etc/resolv.conf
        fi
 
        if [ $PLC_DNS_ENABLED -eq 1 ] ; then
-           plc_daemon dnsmasq
+           plc_daemon dnsmasq -r /etc/plc_resolv.conf
            check
        fi
 
@@ -63,31 +68,32 @@ case "$1" in
        ;;
 
     stop)
-       MESSAGE=$"Reverting /etc/resolv.conf and /etc/hosts"
+       MESSAGE=$"Reverting /etc/resolv.conf"
        dialog "$MESSAGE"
-       if [ $PLC_DNS_ENABLED -eq 1 ] ; then
-           if [ -f "/etc/plc_resolv.conf" ] ; then
-               ourfile=$(grep "$SIGNATURE" /etc/plc_resolv.conf| wc -l)
-               if [ $ourfile -ne 0 ] ; then 
-                   dialog "WARNING: original /etc/resolv.conf was generated by etc/plc.d/dns"          
-               fi
-               mv -f /etc/plc_resolv.conf /etc/resolv.conf
+       if [ -f "/etc/resolv.bak" ] ; then
+           ourfile=$(grep "$SIGNATURE" /etc/resolv.bak | wc -l)
+           if [ $ourfile -ne 0 ] ; then 
+               dialog "WARNING: original /etc/resolv.conf was generated by etc/plc.d/dns"              
            fi
-           [ -f "/etc/plc_hosts" ] && rm -f /etc/plc_hosts
+           mv -f /etc/resolv.bak /etc/resolv.conf
        fi
-       if [ $PLC_DNS_ENABLED -eq 0 -a -f "/etc/resolv_plc.backup" ] ; then
-           mv -f /etc/resolv_plc.backup /etc/resolv.conf
+       check
+       result ""
+       if [ $PLC_DNS_ENABLED -eq 1 ] ; then
+           MESSAGE=$"Removing /etc/plc_hosts"
+           dialog "$MESSAGE"
+           [ -f "/etc/plc_hosts" ] && rm -f /etc/plc_hosts
+           result ""
        fi
 
        if [ $PLC_DNS_ENABLED -eq 1 ] ; then
-           MESSAGE=$"Stopping DNS server"
+           MESSAGE="Stopping DNS server"
            dialog "$MESSAGE"
-
            killproc plc_dnsmasq
            check
+           result ""
        fi
 
-       result "$MESSAGE"
        ;;
 esac