11-dhclient 926 B

1234567891011121314151617181920212223242526272829303132333435363738
  1. #!/bin/bash
  2. # run dhclient.d scripts in an emulated environment
  3. PATH=/bin:/usr/bin:/sbin
  4. SAVEDIR=/var/lib/dhclient
  5. ETCDIR=/etc/dhcp
  6. interface=$1
  7. eval "$(
  8. declare | LC_ALL=C grep '^DHCP4_[A-Z_]*=' | while read opt; do
  9. optname=${opt%%=*}
  10. optname=${optname,,}
  11. optname=new_${optname#dhcp4_}
  12. optvalue=${opt#*=}
  13. echo "$optname=$optvalue"
  14. done
  15. )"
  16. [ -f /etc/sysconfig/network ] && . /etc/sysconfig/network
  17. [ -f /etc/sysconfig/network-scripts/ifcfg-$interface ] && \
  18. . /etc/sysconfig/network-scripts/ifcfg-$interface
  19. if [ -d $ETCDIR/dhclient.d ]; then
  20. for f in $ETCDIR/dhclient.d/*.sh; do
  21. if [ -x $f ]; then
  22. subsystem="${f%.sh}"
  23. subsystem="${subsystem##*/}"
  24. . ${f}
  25. if [ "$2" = "up" ]; then
  26. "${subsystem}_config"
  27. elif [ "$2" = "down" ]; then
  28. "${subsystem}_restore"
  29. fi
  30. fi
  31. done
  32. fi