34 lines
853 B
Bash
Executable File
34 lines
853 B
Bash
Executable File
#!/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
|