Changeset 3386

Show
Ignore:
Timestamp:
08/02/07 15:21:21 (1 year ago)
Author:
tg
Message:

replace the naswatch script by an inliner, this time actually working
• ifup, ifdown, repeatedly: work
• killing nas: it's running again one second later
• dollar signs in WPA keys: work

Files:

Legend:

Unmodified
Added
Removed
Modified
Copied
Moved
  • trunk/freewrt/package/broadcom-wl/Makefile

    r3221 r3386  
    99PKG_NAME:=              broadcom-wl 
    1010PKG_VERSION:=           4.80.53.0 
    11 PKG_RELEASE:=           10 
     11PKG_RELEASE:=           11 
    1212PKG_MD5SUM:=            a7d8dde3ce474c361143b83e1d9890b1 
    1313PKG_MODULE:=            11 
     
    2828            modules 
    2929        ${MAKE_ENV} ${MAKE} -C $(WRKBUILD)/wlc ${MAKE_FLAGS} \ 
    30                CFLAGS="-I$(WRKBUILD)/wlc/include $(TARGET_CFLAGS)" \ 
    31                all 
     30            CFLAGS="-I$(WRKBUILD)/wlc/include $(TARGET_CFLAGS)" \ 
     31            all 
    3232 
    3333do-install: 
     
    4444        $(INSTALL_DIR) $(IDIR_BROADCOM_WL_UTIL)/usr/sbin 
    4545        $(INSTALL_BIN) $(WRKBUILD)/wl $(IDIR_BROADCOM_WL_UTIL)/usr/sbin 
    46         $(INSTALL_DIR) $(IDIR_BROADCOM_NAS)/{etc/init.d,usr/{lib,sbin}
     46        $(INSTALL_DIR) $(IDIR_BROADCOM_NAS)/usr/{lib,sbin
    4747        $(INSTALL_DATA) $(WRKBUILD)/libbcmcrypto.so $(IDIR_BROADCOM_NAS)/usr/lib 
    4848        $(INSTALL_BIN) $(WRKBUILD)/nas $(IDIR_BROADCOM_NAS)/usr/sbin 
    4949        ln -sf nas $(IDIR_BROADCOM_NAS)/usr/sbin/nas4not 
    5050        ln -sf nas $(IDIR_BROADCOM_NAS)/usr/sbin/nas4wds 
    51         ${INSTALL_BIN} files/naswatch.init \ 
    52             ${IDIR_BROADCOM_NAS}/etc/init.d/naswatch 
    5351 
    5452include ${TOPDIR}/mk/pkg-bottom.mk 
  • trunk/freewrt/package/broadcom-wl/files/wl-broadcom

    r3208 r3386  
    55# or at http://www.freewrt.org/licence for details. 
    66# 
    7 # Copyright (c) 2006 Dirk Nehring <dnehring@freewrt.org> 
    8 # Christian Fischer <spaetzle@freewrt.org> 
    9 
    10  
     7# Copyright (c) 2007 
     8#       Thorsten Glaser <tg@freewrt.org> 
     9# Copyright (c) 2006 
     10#       Dirk Nehring <dnehring@freewrt.org> 
     11#       Christian Fischer <spaetzle@freewrt.org> 
    1112 
    1213init_debug() { 
     
    9899        if bridged_mode 
    99100        then 
    100                 cat > ${postup}/postup <<! 
     101                cat > ${postup}/postup <<EOF 
    101102mprint -n "Starting nas daemon" 
    102 /usr/sbin/nas -P /var/run/nas.lan.pid -l $BRIDGE_IFACE -H 34954 -i $IFACE \ 
    103 $nas_auth -m $auth -k $IF_WIRELESS_WPA_KEY -s $IF_WIRELESS_SSID -w $wsec \ 
    104 -g $gtk_rekey & 
     103(doquit=0 
     104trap 'doquit=1' USR1 
     105while sleep 1; do 
     106        [[ $doquit = 0 ]] || break 
     107        /usr/sbin/nas -P /var/run/nas.lan.pid -l $BRIDGE_IFACE -H 34954 \ 
     108            -i $IFACE $nas_auth -m $auth -k $IF_WIRELESS_WPA_KEY \ 
     109            -s $IF_WIRELESS_SSID -w $wsec -g $gtk_rekey 
     110done) & 
     111echo \$! >/var/run/nas.watch.pid 
    105112mstate 0 
    106 
     113EOF 
    107114        else 
    108115                # routed 
    109116                mprint -n "Starting nas daemon" 
    110                 /usr/sbin/nas -P /var/run/nas.lan.pid  -H 34954 -i $IFACE $nas_auth \ 
    111                 -m $auth -k "${IF_WIRELESS_WPA_KEY:-""}" -s "$IF_WIRELESS_SSID" \ 
    112                 -w $wsec -g $gtk_rekey & 
     117                (doquit=0 
     118                trap 'doquit=1' USR1 
     119                while sleep 1; do 
     120                        [[ $doquit = 0 ]] || break 
     121                        /usr/sbin/nas -P /var/run/nas.lan.pid -H 34954 \ 
     122                            -i $IFACE $nas_auth -m $auth \ 
     123                            -k "$IF_WIRELESS_WPA_KEY" -s "$IF_WIRELESS_SSID" \ 
     124                            -w $wsec -g $gtk_rekey 
     125                done) & 
     126                echo $! >/var/run/nas.watch.pid 
    113127                mstate 0 
    114128        fi 
     
    123137                        # only honour bridged or routed 
    124138                        if bridged_mode; then 
    125                                 cat > ${postup}/postup <<! 
     139                                cat > ${postup}/postup <<EOF 
    126140mprint -n "Starting nas daemon" 
    127 /usr/sbin/nas -P /var/run/nas.lan.pid -l $BRIDGE_IFACE -H 34954 -i $IFACE & 
     141(doquit=0 
     142trap 'doquit=1' USR1 
     143while sleep 1; do 
     144        [[ $doquit = 0 ]] || break 
     145        /usr/sbin/nas -P /var/run/nas.lan.pid -l $BRIDGE_IFACE -H 34954 \ 
     146            -i $IFACE 
     147done) & 
     148echo \$! >/var/run/nas.watch.pid 
    128149mstate 0 
    129 
     150EOF 
    130151                        else 
    131152                                mprint -n "Starting nas daemon" 
    132                                 /usr/sbin/nas -P /var/run/nas.lan.pid -H 34954 -i $IFACE & 
     153                                (doquit=0 
     154                                trap 'doquit=1' USR1 
     155                                while sleep 1; do 
     156                                        [[ $doquit = 0 ]] || break 
     157                                        /usr/sbin/nas -P /var/run/nas.lan.pid \ 
     158                                            -H 34954 -i $IFACE 
     159                                done) & 
     160                                echo $! >/var/run/nas.watch.pid 
    133161                                mstate 0 
    134162                        fi 
     
    155183        if bridged_mode 
    156184        then 
    157                 cat > ${postup}/postup <<! 
     185                cat > ${postup}/postup <<EOF 
    158186mprint -n "Starting nas daemon" 
    159 /usr/sbin/nas -P /var/run/nas.lan.pid $BRIDGE_IFACE -H 34954 -i $IFACE -A \ 
    160 -m $auth -r "${IF_WIRELESS_RADIUS_KEY:-""}" -h $IF_WIRELESS_RADIUS_IPADDR \ 
    161 -p ${IF_WIRELESS_RADIUS_PORT:-1812} -t 36000 -s "$IF_WIRELESS_SSID" \ 
    162 -w $crypto_num -g $gtk_rekey & 
     187(doquit=0 
     188trap 'doquit=1' USR1 
     189while sleep 1; do 
     190        [[ $doquit = 0 ]] || break 
     191        /usr/sbin/nas -P /var/run/nas.lan.pid $BRIDGE_IFACE -H 34954 \ 
     192            -i $IFACE -A -m $auth -r "$IF_WIRELESS_RADIUS_KEY" \ 
     193            -h $IF_WIRELESS_RADIUS_IPADDR -p ${IF_WIRELESS_RADIUS_PORT:-1812} \ 
     194            -t 36000 -s "$IF_WIRELESS_SSID" -w $crypto_num -g $gtk_rekey 
     195done) & 
     196echo \$! >/var/run/nas.watch.pid 
    163197mstate 0 
    164 
     198EOF 
    165199        else 
    166200                mprint -n "Starting nas daemon" 
    167                 /usr/sbin/nas -P /var/run/nas.lan.pid -H 34954 -i $IFACE -A -m $auth \ 
    168                 -r "${IF_WIRELESS_RADIUS_KEY:-""}" -h $IF_WIRELESS_RADIUS_IPADDR \ 
    169                 -p ${IF_WIRELESS_RADIUS_PORT:-1812} -t 36000 -s "$IF_WIRELESS_SSID" \ 
    170                 -w $crypto_num -g $gtk_rekey & 
     201                (doquit=0 
     202                trap 'doquit=1' USR1 
     203                while sleep 1; do 
     204                        [[ $doquit = 0 ]] || break 
     205                        /usr/sbin/nas -P /var/run/nas.lan.pid -H 34954 \ 
     206                            -i $IFACE -A -m $auth -r "$IF_WIRELESS_RADIUS_KEY" \ 
     207                            -h $IF_WIRELESS_RADIUS_IPADDR \ 
     208                            -p ${IF_WIRELESS_RADIUS_PORT:-1812} -t 36000 \ 
     209                            -s "$IF_WIRELESS_SSID" -w $crypto_num -g $gtk_rekey 
     210                done) & 
     211                echo $! >/var/run/nas.watch.pid 
    171212                mstate 0 
    172213        fi 
     
    195236                        mprint -n "Starting nas daemon" 
    196237                        mstate 1 
    197                         merr"Can not start nas daemon, bridge $BRIDGE_IFACE isn't up" 
     238                        merr "Can not start nas daemon, bridge $BRIDGE_IFACE isn't up" 
    198239                        exit 1 
    199240                fi 
     
    232273 
    233274        # kill old nas process 
    234         pid="$(cat /var/run/nas.lan.pid 2>&-)" 
    235         [ -n "$pid" -a -d "/proc/$pid" ] && kill $pid 
     275        thepid= 
     276        [[ -e /var/run/nas.watch.pid ]] && thepid=$(</var/run/nas.watch.pid) 
     277        if [[ -n $thepid && -d /proc/$thepid ]]; then 
     278                kill -USR1 $thepid 
     279                sleep 1 
     280                kill $thepid 
     281                sleep 1 
     282                kill -9 $thepid 
     283        fi 
     284        killall nas 
    236285 
    237286 
     
    274323                merr "Unknown operation mode $IF_WIRELESS_MODE" 
    275324                return 1 
    276                 ;;      
     325                ;; 
    277326        esac 
    278327 
     
    361410        init_debug wl down 
    362411 
    363         pid="$(cat /var/run/nas.lan.pid 2>&-)" 
    364         [ -n "$pid" -a -d "/proc/$pid" ] && kill $pid 
    365          
     412        thepid= 
     413        [[ -e /var/run/nas.watch.pid ]] && thepid=$(</var/run/nas.watch.pid) 
     414        if [[ -n $thepid && -d /proc/$thepid ]]; then 
     415                kill -USR1 $thepid 
     416                sleep 1 
     417                kill $thepid 
     418                sleep 1 
     419                kill -9 $thepid 
     420        fi 
     421        killall nas 
     422 
    366423        mstate 0 
    367424        return