Changeset 31850


Ignore:
Timestamp:
2012-05-23T23:49:28+02:00 (6 years ago)
Author:
nbd
Message:

netifd: improve /sbin/ifup wifi hack, make it work properly with -a. fold /etc/init.d/netifd into /etc/init.d/network

Location:
trunk/package/netifd/files
Files:
1 deleted
2 edited

Legend:

Unmodified
Added
Removed
  • trunk/package/netifd/files/etc/init.d/network

    r31732 r31850  
    11#!/bin/sh /etc/rc.common 
    2 START=40 
     2 
     3START=20 
    34STOP=90 
    45 
     6SERVICE_DAEMONIZE=1 
     7SERVICE_WRITE_PID=1 
     8 
    59start() { 
     10        stop 
     11        [ -e /proc/sys/kernel/core_pattern ] && { 
     12                ulimit -c unlimited 
     13                echo '/tmp/%e.%p.%s.%t.core' > /proc/sys/kernel/core_pattern 
     14        } 
     15        service_start /sbin/netifd 
     16 
    617        setup_switch() { return 0; } 
    718 
     
    920        setup_switch 
    1021 
    11         ifup -a 
    12         grep -qs config /etc/config/wireless && { 
    13                 /sbin/wifi up 
    14         } 
     22        sleep 1 
    1523} 
    1624 
    1725restart() { 
     26        ifdown -a 
     27        sleep 1 
    1828        start 
     29        wifi 
     30} 
     31 
     32shutdown() { 
     33        ifdown -a 
     34        stop 
    1935} 
    2036 
    2137stop() { 
    22         /sbin/ifdown -a 
     38        service_stop /sbin/netifd 
    2339} 
     40 
     41reload() { 
     42        ubus call network reload 
     43} 
  • trunk/package/netifd/files/sbin/ifup

    r31849 r31850  
    11#!/bin/sh 
    22 
    3 case "$0" in 
    4         *ifdown) modes=down;; 
    5         *ifup) modes="down up";; 
    6         *) echo "Invalid command: $0";; 
    7 esac 
     3ifup_all= 
     4setup_wifi= 
    85 
    96if_call() { 
     
    1411} 
    1512 
     13case "$0" in 
     14        *ifdown) modes=down;; 
     15        *ifup) 
     16                modes="down up" 
     17                setup_wifi=1 
     18        ;; 
     19        *) echo "Invalid command: $0";; 
     20esac 
     21 
     22while :; do 
     23        case "$1" in 
     24                -a) 
     25                        ifup_all=1 
     26                        shift 
     27                ;; 
     28                -w) 
     29                        setup_wifi= 
     30                        shift 
     31                ;; 
     32                *) 
     33                        break 
     34                ;; 
     35        esac 
     36done 
     37 
    1638[ "$modes" = "down up" ] && ubus call network reload 
    17 [[ "$1" == "-a" ]] && { 
     39if [ -n "$ifup_all" ]; then 
    1840        for interface in `ubus -S list 'network.interface.*'`; do 
    1941                if_call "$interface" 
    2042        done 
     43        [ -n "$setup_wifi" ] && /sbin/wifi up 
    2144        exit 
    22 } 
     45else 
     46        ubus -S list "network.interface.$1" > /dev/null || { 
     47                echo "Interface $1 not found" 
     48                exit 
     49        } 
     50        if_call "network.interface.$1" 
     51fi 
    2352 
    24 ubus -S list "network.interface.$1" > /dev/null || { 
    25         echo "Interface $1 not found" 
    26         exit 
    27 } 
    28 if_call "network.interface.$1" 
     53if [ -n "$setup_wifi" ] && grep -q config /etc/config/wireless; then 
     54        . /etc/functions.sh 
    2955 
    30 grep -sq ^config /etc/config/wireless && { 
    31         local wdev 
    32         for wdev in $( 
    33                 find_radio() { 
    34                         local wdev wnet 
    35                         config_get wdev "$1" device 
    36                         config_get wnet "$1" network 
    37                         [ -n "$wdev" ] && [ "$wnet" = "$2" ] && echo "$wdev" 
    38                 } 
     56        find_related_radios() { 
     57                local wdev wnet 
     58                config_get wdev "$1" device 
     59                config_get wnet "$1" network 
    3960 
    40                 source /lib/functions.sh 
    41                 config_load wireless 
    42                 config_foreach find_radio wifi-iface "$1" | sort -u 
    43         ); do 
    44                 /sbin/wifi up "$wdev" 
     61                if [ -n "$wdev" ] && [ "$wnet" = "$network" ]; then 
     62                        append radio_devs "$wdev" "$N" 
     63                fi 
     64        } 
     65 
     66        local radio_devs 
     67        local network="$1" 
     68        config_load wireless 
     69        config_foreach find_related_radios wifi-iface 
     70 
     71        local dev 
     72        for dev in $(echo "$radio_devs" | sort -u); do 
     73                /sbin/wifi up "$dev" 
    4574        done 
    46 } 
     75fi 
Note: See TracChangeset for help on using the changeset viewer.