2009-07-24 03:07:41 +00:00
|
|
|
#!/bin/bash
|
|
|
|
# run dhclient.d scripts in an emulated environment
|
|
|
|
|
2009-08-12 21:04:26 +00:00
|
|
|
PATH=/bin:/usr/bin:/sbin
|
2009-07-24 03:07:41 +00:00
|
|
|
SAVEDIR=/var/lib/dhclient
|
|
|
|
ETCDIR=/etc/dhcp
|
|
|
|
interface=$1
|
|
|
|
|
|
|
|
eval "$(
|
|
|
|
declare | LC_ALL=C grep '^DHCP4_[A-Z_]*=' | while read opt; do
|
2009-08-12 21:04:26 +00:00
|
|
|
optname=${opt%%=*}
|
|
|
|
optname=${optname,,}
|
2009-07-24 03:07:41 +00:00
|
|
|
optname=new_${optname#dhcp4_}
|
|
|
|
optvalue=${opt#*=}
|
|
|
|
echo "$optname=$optvalue"
|
|
|
|
done
|
|
|
|
)"
|
|
|
|
|
2009-08-12 21:04:26 +00:00
|
|
|
[ -f /etc/sysconfig/network ] && . /etc/sysconfig/network
|
|
|
|
|
2009-07-24 03:07:41 +00:00
|
|
|
[ -f /etc/sysconfig/network-scripts/ifcfg-$interface ] && \
|
|
|
|
. /etc/sysconfig/network-scripts/ifcfg-$interface
|
|
|
|
|
|
|
|
if [ -d $ETCDIR/dhclient.d ]; then
|
|
|
|
for f in $ETCDIR/dhclient.d/*.sh; do
|
|
|
|
if [ -x $f ]; then
|
|
|
|
subsystem="${f%.sh}"
|
|
|
|
subsystem="${subsystem##*/}"
|
|
|
|
. ${f}
|
|
|
|
if [ "$2" = "up" ]; then
|
|
|
|
"${subsystem}_config"
|
|
|
|
elif [ "$2" = "down" ]; then
|
|
|
|
"${subsystem}_restore"
|
|
|
|
fi
|
|
|
|
fi
|
|
|
|
done
|
|
|
|
fi
|