Changeset 17365


Ignore:
Timestamp:
2009-08-24T21:14:21+02:00 (8 years ago)
Author:
nbd
Message:

udhcpc: backport script changes from trunk that fix udhcpc on interfaces not managed by uci

File:
1 edited

Legend:

Unmodified
Added
Removed
  • branches/8.09/package/base-files/files/usr/share/udhcpc/default.script

    r15904 r17365  
    77 
    88change_state () { 
     9        [ -n "$ifc" ] || return 
    910        uci_revert_state "$1" "$2" "$3" "$4" 
    1011        uci_set_state "$1" "$2" "$3" "$4" 
     
    1213 
    1314uci_get() { 
     15        [ -n "$ifc" ] || return 
    1416        uci -P /dev/null get "$1" 2>/dev/null 
    1517} 
     
    2426        local user_router 
    2527 
    26         config_get old_ip        "$ifc" ipaddr 
    27         config_get old_broadcast "$ifc" broadcast 
    28         config_get old_subnet    "$ifc" netmask 
     28        [ -n "$ifc" ] && { 
     29                config_get old_ip        "$ifc" ipaddr 
     30                config_get old_broadcast "$ifc" broadcast 
     31                config_get old_subnet    "$ifc" netmask 
     32        } 
    2933 
    3034        [ "$ip" != "$old_ip" ] \ 
     
    4145 
    4246        # Default Route 
    43         change_state network "$ifc" lease_gateway "$router" 
    44         config_get old_router "$ifc" gateway 
    45         user_router=$(uci_get "network.$ifc.gateway") 
    46         [ -n "$user_router" ] && router="$user_router" 
     47        [ -n "$ifc" ] && { 
     48                change_state network "$ifc" lease_gateway "$router" 
     49                config_get old_router "$ifc" gateway 
     50                user_router=$(uci_get "network.$ifc.gateway") 
     51                [ -n "$user_router" ] && router="$user_router" 
     52        } 
    4753 
    48         [ -n "$router" ] && [ "$router" != "0.0.0.0" ] && [ "$router" != "$old_router" ] && { 
     54        [ -n "$router" ] && [ "$router" != "0.0.0.0" ] && [ "$router" != "255.255.255.255" ] && [ "$router" != "$old_router" ] && { 
    4955                echo "udhcpc: setting default routers: $router" 
    5056 
     
    8288        } 
    8389 
     90        [ -n "$ifc" ] || return 
    8491 
    8592        # UCI State 
     
    99106 
    100107scan_interfaces 
     108applied= 
     109for ifc in $interfaces __default; do 
     110        if [ "$ifc" = __default ]; then 
     111                ifc="" 
     112                [ -n "$applied" ] && continue 
     113        else 
     114                config_get ifname "$ifc" ifname 
     115                [ "$ifname" = "$interface" ] || continue 
    101116 
    102 for ifc in $interfaces; do 
    103         config_get ifname "$ifc" ifname 
    104         [ "$ifname" = "$interface" ] || continue 
    105  
    106         config_get proto "$ifc" proto 
    107         [ "$proto" = "dhcp" ] || continue 
     117                config_get proto "$ifc" proto 
     118                [ "$proto" = "dhcp" ] || continue 
     119                applied=true 
     120        fi 
    108121 
    109122        case "$1" in 
    110123                deconfig) 
    111124                        ifconfig "$interface" 0.0.0.0 
    112                         env -i ACTION="ifdown" INTERFACE="$ifc" DEVICE="$ifname" PROTO=dhcp /sbin/hotplug-call iface 
     125                        [ -n "$ifc" ] && { 
     126                                env -i ACTION="ifdown" INTERFACE="$ifc" DEVICE="$ifname" PROTO=dhcp /sbin/hotplug-call iface 
    113127                         
    114                         config_get device "$ifc" device 
    115                         config_get ifname "$ifc" ifname 
    116                         config_get aliases "$ifc" aliases 
    117                         uci_revert_state network "$ifc" 
    118                         [ -n "$device" ] && uci_set_state network "$ifc" device "$device" 
    119                         [ -n "$ifname" ] && uci_set_state network "$ifc" ifname "$ifname" 
    120                         [ -n "$aliases" ] && uci_set_state network "$ifc" aliases "$aliases" 
     128                                config_get device "$ifc" device 
     129                                config_get ifname "$ifc" ifname 
     130                                config_get aliases "$ifc" aliases 
     131                                uci_revert_state network "$ifc" 
     132                                [ -n "$device" ] && uci_set_state network "$ifc" device "$device" 
     133                                [ -n "$ifname" ] && uci_set_state network "$ifc" ifname "$ifname" 
     134                                [ -n "$aliases" ] && uci_set_state network "$ifc" aliases "$aliases" 
     135                        } 
    121136                ;; 
    122137                renew) 
     
    127142                ;; 
    128143        esac 
    129  
    130         # user rules 
    131         [ -f /etc/udhcpc.user ] && . /etc/udhcpc.user 
    132144done 
    133145 
     146# user rules 
     147[ -f /etc/udhcpc.user ] && . /etc/udhcpc.user 
     148 
    134149exit 0 
Note: See TracChangeset for help on using the changeset viewer.