mirror of
https://github.com/vincentmli/bpfire.git
synced 2026-04-27 03:07:43 +02:00
Merge branch 'core51'
This commit is contained in:
@@ -1,230 +0,0 @@
|
||||
Submitted By: DJ Lucas (dj at linuxfromscratch dot org)
|
||||
Date: 2005-06-18
|
||||
Initial Package Version: 3.0.2
|
||||
Origin: Jim Gifford, Bruce Dubbs, DJ Lucas
|
||||
Description: Fixes client script to use iproute2 (added flush to previous
|
||||
unversioned patches)
|
||||
Upstream Status: Not submitted
|
||||
|
||||
--- dhcp-3.0.2-orig/client/scripts/linux 2002-11-14 19:09:09.000000000 -0600
|
||||
+++ dhcp-3.0.2/client/scripts/linux 2005-06-18 22:54:59.000000000 -0500
|
||||
@@ -1,26 +1,15 @@
|
||||
#!/bin/bash
|
||||
# dhclient-script for Linux. Dan Halbert, March, 1997.
|
||||
# Updated for Linux 2.[12] by Brian J. Murrell, January 1999.
|
||||
-# No guarantees about this. I'm a novice at the details of Linux
|
||||
-# networking.
|
||||
+
|
||||
+# Updated to iproute2 by Jim Gifford (scripts@jg555.com)
|
||||
|
||||
# Notes:
|
||||
|
||||
# 0. This script is based on the netbsd script supplied with dhcp-970306.
|
||||
-
|
||||
-# 1. ifconfig down apparently deletes all relevant routes and flushes
|
||||
-# the arp cache, so this doesn't need to be done explicitly.
|
||||
-
|
||||
-# 2. The alias address handling here has not been tested AT ALL.
|
||||
-# I'm just going by the doc of modern Linux ip aliasing, which uses
|
||||
-# notations like eth0:0, eth0:1, for each alias.
|
||||
-
|
||||
-# 3. I have to calculate the network address, and calculate the broadcast
|
||||
-# address if it is not supplied. This might be much more easily done
|
||||
-# by the dhclient C code, and passed on.
|
||||
-
|
||||
-# 4. TIMEOUT not tested. ping has a flag I don't know, and I'm suspicious
|
||||
-# of the $1 in its args.
|
||||
+# 1. This script was modified to work with iproute2
|
||||
+# 2. cidr_convert based on a script by Kevin Fleming (kpfleming@linuxfromscratch.org)
|
||||
+# 3. Updated to delete addresses when taking an interface down (bdubbs@linuxfromscratch.org)
|
||||
|
||||
make_resolv_conf() {
|
||||
if [ "x$new_domain_name" != x ] && [ x"$new_domain_name_servers" != x ]; then
|
||||
@@ -32,6 +21,30 @@
|
||||
fi
|
||||
}
|
||||
|
||||
+dec2binary()
|
||||
+{
|
||||
+ local n=$1
|
||||
+ local ret=""
|
||||
+ while [ $n != 0 ]; do
|
||||
+ ret=$[$n%2]$ret
|
||||
+ n=$[$n>>1]
|
||||
+ done
|
||||
+ echo $ret
|
||||
+}
|
||||
+
|
||||
+mask_to_binary()
|
||||
+{
|
||||
+ echo `dec2binary $1``dec2binary $2``dec2binary $3``dec2binary $4`
|
||||
+}
|
||||
+
|
||||
+cidr_convert()
|
||||
+{
|
||||
+ netmask=$1
|
||||
+ local mask=`mask_to_binary ${netmask//./ }`
|
||||
+ mask=${mask%%0*}
|
||||
+ cidr=${#mask}
|
||||
+}
|
||||
+
|
||||
# Must be used on exit. Invokes the local dhcp client exit hooks, if any.
|
||||
exit_with_hooks() {
|
||||
exit_status=$1
|
||||
@@ -53,11 +66,6 @@
|
||||
fi
|
||||
fi
|
||||
|
||||
-release=`uname -r`
|
||||
-release=`expr $release : '\(.*\)\..*'`
|
||||
-relminor=`echo $release |sed -e 's/[0-9]*\.\([0-9][0-9]*\)\(\..*\)*$/\1/'`
|
||||
-relmajor=`echo $release |sed -e 's/\([0-9][0-9]*\)\..*$/\1/'`
|
||||
-
|
||||
if [ x$new_broadcast_address != x ]; then
|
||||
new_broadcast_arg="broadcast $new_broadcast_address"
|
||||
fi
|
||||
@@ -65,13 +73,12 @@
|
||||
old_broadcast_arg="broadcast $old_broadcast_address"
|
||||
fi
|
||||
if [ x$new_subnet_mask != x ]; then
|
||||
- new_subnet_arg="netmask $new_subnet_mask"
|
||||
+ cidr_convert $new_subnet_mask
|
||||
+ new_subnet_arg="$cidr"
|
||||
fi
|
||||
if [ x$old_subnet_mask != x ]; then
|
||||
- old_subnet_arg="netmask $old_subnet_mask"
|
||||
-fi
|
||||
-if [ x$alias_subnet_mask != x ]; then
|
||||
- alias_subnet_arg="netmask $alias_subnet_mask"
|
||||
+ cidr_convert $old_subnet_mask
|
||||
+ old_subnet_arg="$cidr"
|
||||
fi
|
||||
|
||||
if [ x$reason = xMEDIUM ]; then
|
||||
@@ -82,17 +89,10 @@
|
||||
if [ x$reason = xPREINIT ]; then
|
||||
if [ x$alias_ip_address != x ]; then
|
||||
# Bring down alias interface. Its routes will disappear too.
|
||||
- ifconfig $interface:0- inet 0
|
||||
- fi
|
||||
- if [ $relmajor -lt 2 ] || ( [ $relmajor -eq 2 ] && [ $relminor -eq 0 ] )
|
||||
- then
|
||||
- ifconfig $interface inet 0.0.0.0 netmask 0.0.0.0 \
|
||||
- broadcast 255.255.255.255 up
|
||||
- # Add route to make broadcast work. Do not omit netmask.
|
||||
- route add default dev $interface netmask 0.0.0.0
|
||||
- else
|
||||
- ifconfig $interface 0 up
|
||||
+ ip link set $interface down
|
||||
+ ip addr del $alias_ip_address dev $interface
|
||||
fi
|
||||
+ ip link set $interface up
|
||||
|
||||
# We need to give the kernel some time to get the interface up.
|
||||
sleep 1
|
||||
@@ -115,83 +115,51 @@
|
||||
fi
|
||||
fi
|
||||
|
||||
- if [ x$old_ip_address != x ] && [ x$alias_ip_address != x ] && \
|
||||
- [ x$alias_ip_address != x$old_ip_address ]; then
|
||||
- # Possible new alias. Remove old alias.
|
||||
- ifconfig $interface:0- inet 0
|
||||
- fi
|
||||
if [ x$old_ip_address != x ] && [ x$old_ip_address != x$new_ip_address ]; then
|
||||
- # IP address changed. Bringing down the interface will delete all routes,
|
||||
+ # IP address changed. Bring down the interface, delete all routes,
|
||||
# and clear the ARP cache.
|
||||
- ifconfig $interface inet 0 down
|
||||
-
|
||||
+ ip link set $interface down
|
||||
+ ip addr flush dev $interface
|
||||
fi
|
||||
if [ x$old_ip_address = x ] || [ x$old_ip_address != x$new_ip_address ] || \
|
||||
[ x$reason = xBOUND ] || [ x$reason = xREBOOT ]; then
|
||||
|
||||
- ifconfig $interface inet $new_ip_address $new_subnet_arg \
|
||||
- $new_broadcast_arg
|
||||
+ ip link set $interface up
|
||||
+ ip addr add $new_ip_address/$new_subnet_arg $new_broadcast_arg \
|
||||
+ label $interface dev $interface
|
||||
# Add a network route to the computed network address.
|
||||
- if [ $relmajor -lt 2 ] || \
|
||||
- ( [ $relmajor -eq 2 ] && [ $relminor -eq 0 ] ); then
|
||||
- route add -net $new_network_number $new_subnet_arg dev $interface
|
||||
- fi
|
||||
for router in $new_routers; do
|
||||
- route add default gw $router
|
||||
+ ip route add default via $router
|
||||
done
|
||||
fi
|
||||
- if [ x$new_ip_address != x$alias_ip_address ] && [ x$alias_ip_address != x ];
|
||||
- then
|
||||
- ifconfig $interface:0- inet 0
|
||||
- ifconfig $interface:0 inet $alias_ip_address $alias_subnet_arg
|
||||
- route add -host $alias_ip_address $interface:0
|
||||
- fi
|
||||
make_resolv_conf
|
||||
exit_with_hooks 0
|
||||
fi
|
||||
|
||||
if [ x$reason = xEXPIRE ] || [ x$reason = xFAIL ] || [ x$reason = xRELEASE ] \
|
||||
|| [ x$reason = xSTOP ]; then
|
||||
- if [ x$alias_ip_address != x ]; then
|
||||
- # Turn off alias interface.
|
||||
- ifconfig $interface:0- inet 0
|
||||
- fi
|
||||
if [ x$old_ip_address != x ]; then
|
||||
- # Shut down interface, which will delete routes and clear arp cache.
|
||||
- ifconfig $interface inet 0 down
|
||||
- fi
|
||||
- if [ x$alias_ip_address != x ]; then
|
||||
- ifconfig $interface:0 inet $alias_ip_address $alias_subnet_arg
|
||||
- route add -host $alias_ip_address $interface:0
|
||||
+ # Shut down interface, delete routes, and clear arp cache.
|
||||
+ ip link set $interface down
|
||||
+ ip addr flush dev $interface
|
||||
fi
|
||||
exit_with_hooks 0
|
||||
fi
|
||||
|
||||
if [ x$reason = xTIMEOUT ]; then
|
||||
- if [ x$alias_ip_address != x ]; then
|
||||
- ifconfig $interface:0- inet 0
|
||||
- fi
|
||||
- ifconfig $interface inet $new_ip_address $new_subnet_arg \
|
||||
- $new_broadcast_arg
|
||||
+ ip link set $interface up
|
||||
+ ip addr set $new_ip_address/$new_subnet_arg $new_broadcast_arg \
|
||||
+ label $interface dev $interface
|
||||
set $new_routers
|
||||
- ############## what is -w in ping?
|
||||
- if ping -q -c 1 $1; then
|
||||
- if [ x$new_ip_address != x$alias_ip_address ] && \
|
||||
- [ x$alias_ip_address != x ]; then
|
||||
- ifconfig $interface:0 inet $alias_ip_address $alias_subnet_arg
|
||||
- route add -host $alias_ip_address dev $interface:0
|
||||
- fi
|
||||
- if [ $relmajor -lt 2 ] || \
|
||||
- ( [ $relmajor -eq 2 ] && [ $relminor -eq 0 ] ); then
|
||||
- route add -net $new_network_number
|
||||
- fi
|
||||
- for router in $new_routers; do
|
||||
- route add default gw $router
|
||||
- done
|
||||
- make_resolv_conf
|
||||
- exit_with_hooks 0
|
||||
- fi
|
||||
- ifconfig $interface inet 0 down
|
||||
+
|
||||
+ for router in $new_routers; do
|
||||
+ ip route add default via $router
|
||||
+ done
|
||||
+
|
||||
+ make_resolv_conf
|
||||
+ exit_with_hooks 0
|
||||
+ ip link set $interface down
|
||||
+ ip addr flush dev $interface
|
||||
exit_with_hooks 1
|
||||
fi
|
||||
|
||||
Reference in New Issue
Block a user