38 lines
1.0 KiB
Bash
38 lines
1.0 KiB
Bash
#!/bin/bash
|
|
# run dhclient.d scripts in an emulated environment
|
|
|
|
PATH=/bin:/usr/bin:/sbin
|
|
ETCDIR=/etc/dhcp
|
|
SAVEDIR=/var/lib/dhclient
|
|
interface=$1
|
|
|
|
for optname in "${!DHCP4_@}"; do
|
|
newoptname=${optname,,};
|
|
newoptname=new_${newoptname#dhcp4_};
|
|
export "${newoptname}"="${!optname}";
|
|
done
|
|
|
|
[ -f /etc/sysconfig/network ] && . /etc/sysconfig/network
|
|
|
|
[ -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" = "dhcp4-change" ]; then
|
|
if [ "$subsystem" = "chrony" -o "$subsystem" = "ntp" ]; then
|
|
"${subsystem}_config"
|
|
fi
|
|
elif [ "$2" = "down" ]; then
|
|
"${subsystem}_restore"
|
|
fi
|
|
fi
|
|
done
|
|
fi
|