]> git.ipfire.org Git - people/mfischer/ipfire-2.x.git/blobdiff - src/initscripts/networking/dhcpcd.exe
Merge branch 'master' into next
[people/mfischer/ipfire-2.x.git] / src / initscripts / networking / dhcpcd.exe
index a2cdc66d257404c57cdad5013cda247bbfcbe751..c243ce1a7c9f4c6e9afff87c5d63a97d1ee0e84c 100644 (file)
@@ -1,22 +1,27 @@
-########################################################################
-# Begin
-#
-# Description : DHCP Client Script
-#
-# Authors     : Arne Fitzenreiter - arne_f@ipfire.org
-#
-# Version     : 02.00
-#
-# Notes       : 
-#
-########################################################################
+###############################################################################
+#                                                                             #
+# IPFire.org - A linux based firewall                                         #
+# Copyright (C) 2007-2022  IPFire Team  <info@ipfire.org>                     #
+#                                                                             #
+# This program is free software: you can redistribute it and/or modify        #
+# it under the terms of the GNU General Public License as published by        #
+# the Free Software Foundation, either version 3 of the License, or           #
+# (at your option) any later version.                                         #
+#                                                                             #
+# This program is distributed in the hope that it will be useful,             #
+# but WITHOUT ANY WARRANTY; without even the implied warranty of              #
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the               #
+# GNU General Public License for more details.                                #
+#                                                                             #
+# You should have received a copy of the GNU General Public License           #
+# along with this program.  If not, see <http://www.gnu.org/licenses/>.       #
+#                                                                             #
+###############################################################################
 
 . /etc/sysconfig/rc
 . $rc_functions
 
-
 eval $(/usr/local/bin/readhash /var/ipfire/ethernet/settings)
-eval $(/usr/local/bin/readhash /var/ipfire/dns/settings)
 
 dhcpcd_up()
 {
@@ -30,8 +35,7 @@ dhcpcd_up()
 
        # Only if RED_TYPE=DHCP update /var/ipfire/red
        if [ "$RED_TYPE" == "DHCP" ]; then
-
-               #Check if we have to restart the services at update
+               # Check if we have to restart the services at update
                [ ! -e "/var/ipfire/red/active" ] && update=1;
                if [ "$old_domain_name_service" != "$new_domain_name_service" ]; then
                        update=1;
@@ -43,15 +47,9 @@ dhcpcd_up()
                        update=1;
                fi
 
-               #Get DNS from dhcp
-               if [ -n "$DNS0" ] && [ -n "$DNS1" ]; then
-                       logger -p local0.info -t dhcpcd.exe[$$] "Overwritting DNS-Server addresses with ${DNS0},${DNS1}"        
-                       echo -n ${DNS0} > /var/ipfire/red/dns1
-                       echo -n ${DNS1} > /var/ipfire/red/dns2
-               else
-                       echo -n `/etc/rc.d/helper/getdnsfromdhcpc.pl 1` > /var/ipfire/red/dns1
-                       echo -n `/etc/rc.d/helper/getdnsfromdhcpc.pl 2` > /var/ipfire/red/dns2
-               fi
+               # Get DNS from dhcp
+               /etc/rc.d/helper/getdnsfromdhcpc.pl 1 > /var/run/dns1
+               /etc/rc.d/helper/getdnsfromdhcpc.pl 2 > /var/run/dns2
 
                #Get IP Address
                echo -n "$new_ip_address"  > /var/ipfire/red/local-ipaddress
@@ -76,15 +74,20 @@ dhcpcd_down()
        set | grep "^new_" | sed "s|^new_||g" | \
        sort > /var/ipfire/dhcpc/dhcpcd-$interface.info
 
+       # Remove DNS servers
+       rm -f /var/run/dns1 /var/run/dns2
+
        # Only if RED_TYPE=DHCP update /var/ipfire/red
        if [ "$RED_TYPE" == "DHCP" ]; then
-               logger -p local0.info -t dhcpcd.exe[$$] "${interface} has been brought down"
                rm -f /var/ipfire/red/active
-               run_subdir ${rc_base}/init.d/networking/red.down/
+               if [ ! $reason == "PREINIT" ]; then
+                       logger -p local0.info -t dhcpcd.exe[$$] "${interface} has been brought down ($reason)"
+                       run_subdir ${rc_base}/init.d/networking/red.down/
+               fi
        fi
 }
 
 case "$reason" in
 BOUND|INFORM|REBIND|REBOOT|RENEW|TIMEOUT|STATIC)       dhcpcd_up;;
-PREINIT|EXPIRE|FAIL|IPV4LL|NAK|NOCARRIER|RELEASE|STOP) dhcpcd_down;;
+PREINIT|EXPIRE|FAIL|IPV4LL|NAK|RELEASE|STOP)           dhcpcd_down;;
 esac