--- network 2011-05-12 22:20:45.000000000 +0200 +++ network-dhclient 2011-05-30 18:36:14.956776482 +0200 @@ -3,7 +3,7 @@ . /etc/rc.conf . /etc/rc.d/functions -for s in wireless bonding bridges dhcpcd; do +for s in wireless bonding bridges dhcp; do [[ -f /etc/conf.d/$s ]] && . "/etc/conf.d/$s" done @@ -28,9 +28,14 @@ if [[ $ifcfg = dhcp ]]; then # remove the .pid file if it exists - /bin/rm -f /var/run/dhcpcd-${1}.pid >/dev/null 2>&1 - /bin/rm -f /var/run/dhcpcd-${1}.cache >/dev/null 2>&1 - /sbin/dhcpcd $DHCPCD_ARGS ${1} + if [[ "$DHCP_CLIENT" == dhclient ]]; then + /bin/rm -f /var/run/dhclient.pid >/dev/null 2>&1 + /usr/sbin/dhclient $DHCLIENT_ARGS ${1} + else + /bin/rm -f /var/run/dhcpcd-${1}.pid >/dev/null 2>&1 + /bin/rm -f /var/run/dhcpcd-${1}.cache >/dev/null 2>&1 + /sbin/dhcpcd $DHCPCD_ARGS ${1} + fi else /sbin/ifconfig $ifcfg fi @@ -61,8 +66,13 @@ return 1 fi - if [[ $ifcfg = dhcp && -f /var/run/dhcpcd-${1}.pid ]]; then - /sbin/dhcpcd -k ${1} >/dev/null 2>&1 + if [[ $ifcfg = dhcp ]]; then + if [[ -f /var/run/dhcpcd-${1}.pid ]]; then + /sbin/dhcpcd -k ${1} >/dev/null 2>&1 + fi + if [[ -f /var/run/dhclient.pid ]]; then + /usr/sbin/dhclient -r ${1} >/dev/null 2>&1 + fi fi # Always bring the interface itself down /sbin/ifconfig ${1} down >/dev/null 2>&1