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