Fix for myplc-native:
[myplc.git] / plc.d / network
index 2eb52b2..5d3d443 100755 (executable)
@@ -22,8 +22,8 @@ case "$1" in
        MESSAGE=$"Generating network files"
        dialog "$MESSAGE"
 
+       hfile=$(mktemp)
        # Minimal /etc/hosts
-       echo "127.0.0.1 localhost.localdomain localhost" >/etc/hosts
        (
            for server in DB API BOOT WWW ; do
                hostname=PLC_${server}_HOST
@@ -37,13 +37,27 @@ case "$1" in
                    fi
                fi
            done
-       ) >>/etc/hosts
+       ) > $hfile
+       grep -v "^#" /etc/hosts >> $hfile
+       echo "#generated by /etc/plc.d/network" >/etc/hosts
+       echo "127.0.0.1 localhost.localdomain localhost" >> $hfile
+       sort -u $hfile >> /etc/hosts
+       chmod +r /etc/hosts
+       rm -f $hfile
 
        # Set up nameservers
+       rfile=$(mktemp)
        (
+           echo "; generated by /etc/plc.d/network"
            [ -n "$PLC_NET_DNS1" ] && echo "nameserver $PLC_NET_DNS1"
-           [ -n "$PLC_NET_DNS2" ] && echo "nameserver $PLC_NET_DNS2"
-       ) >/etc/resolv.conf
+           [ -n "$PLC_NET_DNS2" -a "$PLC_NET_DNS1" != "$PLC_NET_DNS2" ] && echo "nameserver $PLC_NET_DNS2"
+       ) > $rfile
+       if [ -n "$PLC_NET_DNS1" -o -n "$PLC_NET_DNS2" ] ; then
+           mv $rfile /etc/resolv.conf
+           chmod 444 /etc/resolv.conf
+       else
+           rm -f $rfile
+       fi
 
        result "$MESSAGE"
        ;;