configure resolv.conf and hosts files for dnsmasq
authorMarc Fiuczynski <mef@cs.princeton.edu>
Fri, 25 Jan 2008 19:26:43 +0000 (19:26 +0000)
committerMarc Fiuczynski <mef@cs.princeton.edu>
Fri, 25 Jan 2008 19:26:43 +0000 (19:26 +0000)
plc.d/network

index 67ebc07..141bc50 100755 (executable)
@@ -55,15 +55,29 @@ case "$1" in
        # Set up nameservers
        (
            [ -n "$PLC_NET_DNS1" ] && echo "nameserver $PLC_NET_DNS1"
-           [ -n "$PLC_NET_DNS2" ] && echo "nameserver $PLC_NET_DNS2"
+           [ -n "$PLC_NET_DNS2" -a "$PLC_NET_DNS1" != "$PLC_NET_DNS2" ] && echo "nameserver $PLC_NET_DNS2"
        ) > $rfile
 
        if [ $PLC_DNS_ENABLED -eq 1 ] ; then
            target=/etc/plc_resolv.conf
+
+           r2file=$(mktemp)
+           echo "; generated by /etc/plc.d/network" >$r2file
+           if [ -n "${!PLC_BOOT_IP}" ] ; then
+               echo "nameserver ${!PLC_BOOT_IP}" >>$r2file
+           else
+                   ip=$(gethostbyname ${!PLC_BOOT_HOST})
+                   if [ -n "$ip" ] ; then
+                       echo "nameserver $ip" >>$r2file
+                   fi
+           fi
+           changed=$(diff $r2file /etc/resolv.conf)
+           [ $changed -ne 0 ] && cp /etc/resolv.conf /etc/resolv.conf.bak
+           mv $r2file /etc/resolv.conf
        else
            target=/etc/resolv.conf
        fi
-       cp $rfile $target
+       mv $rfile $target
        chmod +r $target
 
        result "$MESSAGE"