#!/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