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