1234567891011121314151617181920212223242526272829303132333435363738 |
- #!/bin/bash
- # run dhclient.d scripts in an emulated environment
- PATH=/bin:/usr/bin:/sbin
- SAVEDIR=/var/lib/dhclient
- ETCDIR=/etc/dhcp
- interface=$1
- eval "$(
- declare | LC_ALL=C grep '^DHCP4_[A-Z_]*=' | while read opt; do
- optname=${opt%%=*}
- optname=${optname,,}
- optname=new_${optname#dhcp4_}
- optvalue=${opt#*=}
- echo "$optname=$optvalue"
- 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" = "down" ]; then
- "${subsystem}_restore"
- fi
- fi
- done
- fi
|