Changeset 97c9690 in freewrt for package/fwifupdown/files


Ignore:
Timestamp:
May 1, 2007, 9:15:21 PM (19 years ago)
Author:
Christian Fischer <spaetzle@…>
Children:
ce12392
Parents:
44d850e
Message:

dhcp pidfile fixes

git-svn-id: svn://www.freewrt.org/trunk/freewrt@2444 afb5a338-a214-0410-bd46-81f09a774fd1

File:
1 edited

Legend:

Unmodified
Added
Removed
  • package/fwifupdown/files/main.sh

    r44d850e r97c9690  
    340340                then
    341341                        err=$(eval $IF_DHCPCLIENT ${IF_DHCPCLIENT_OPTS:-""} 2>&1 1>&-) || mprint -s "main_dhcp_up: $err" &
    342                         return 0
     342                        if [ -n ${!:-""} ]
     343                        then
     344                                mkdir -p /var/run/dhcpc
     345                                echo $! > /var/run/dhcpc/${IF_DHCPCLIENT}.${IFACE}.pid
     346                                return 0
     347                        else
     348                                mprint -s "main_dhcp_up: dhcp client start failed"
     349                                return 1
     350                        fi
    343351                fi
    344352                mprint -s "$IF_DHCPCCLIENT not found, using builtin udhcpcd"
    345353        fi
    346354
    347         if ! err=$(udhcpc -b -t 0 -p /var/run/udhcpc.${IFACE}.pid -i $IFACE ${IF_HOSTNAME:+"-H $IF_HOSTNAME"} ${IF_CLIENTID:+"-c $IF_CLIENTID"} \
     355        if ! err=$(udhcpc -b -t 0 -p /var/run/dhcpc/udhcpc.${IFACE}.pid -i $IFACE ${IF_HOSTNAME:+"-H $IF_HOSTNAME"} ${IF_CLIENTID:+"-c $IF_CLIENTID"} \
    348356                                ${IF_SCRIPT:+"-s $IF_SCRIPT"} 2>&1 1>&-)
    349357        then
     
    356364
    357365main_dhcp_down() {
    358         local err
    359 
    360         if [ -f /var/run/udhcpc.${IFACE}.pid ]
    361         then
    362                 err=$(kill -TERM "$(cat /var/run/udhcpc.${IFACE}.pid)" 2>&1 1>&-) || mprint -s "main_dhcp_down: $err"
    363         fi
     366        local err pid
     367
     368        for pidfile in /var/run/dhcpc/*
     369        do
     370                if grep -q .${IFACE}. $pidfile
     371                then
     372                        pid="$(cat $pidfile 2>&-)"
     373                        if [ -n "$pid" ] -a -d "/proc/$pid" ]
     374                        then
     375                                err=$(kill -TERM $pid 2>&1 1>&-) || mprint -s "main_dhcp_down: $err"
     376                                rm -f $pidfile 2>&-
     377                        fi
     378                fi
     379        done
    364380
    365381        if is_up
Note: See TracChangeset for help on using the changeset viewer.