34 lines
853 B
Plaintext
34 lines
853 B
Plaintext
|
#!/bin/bash
|
||
|
# run dhclient.d scripts in an emulated environment
|
||
|
|
||
|
SAVEDIR=/var/lib/dhclient
|
||
|
ETCDIR=/etc/dhcp
|
||
|
interface=$1
|
||
|
|
||
|
eval "$(
|
||
|
declare | LC_ALL=C grep '^DHCP4_[A-Z_]*=' | while read opt; do
|
||
|
optname=$(echo "${opt%%=*}" | LC_ALL=C tr 'A-Z' 'a-z')
|
||
|
optname=new_${optname#dhcp4_}
|
||
|
optvalue=${opt#*=}
|
||
|
echo "$optname=$optvalue"
|
||
|
done
|
||
|
)"
|
||
|
|
||
|
[ -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
|