Ignore:
Timestamp:
2011-12-23T20:47:23+01:00 (5 years ago)
Author:
nbd
Message:

mac80211: merge setup script fix from r29606

File:
1 edited

Legend:

Unmodified
Added
Removed
  • branches/backfire/package/mac80211/files/lib/wifi/mac80211.sh

    r29599 r29607  
    426426                config_get mode "$vif" mode 
    427427                config_get ifname "$vif" ifname 
    428                 [ ! "$mode" = "ap" ] || continue 
    429                 ifconfig "$ifname" up 
     428                [ "$mode" = "ap" ] || ifconfig "$ifname" up 
    430429 
    431430                config_get vif_txpower "$vif" txpower 
     
    435434                [ -z "$txpower" ] || iw dev "$ifname" set txpower fixed "${txpower%%.*}00" 
    436435 
    437                 if [ ! "$mode" = "ap" ]; then 
    438                         ifconfig "$ifname" up 
    439                         case "$mode" in 
    440                                 adhoc) 
    441                                         config_get bssid "$vif" bssid 
    442                                         config_get ssid "$vif" ssid 
    443                                         config_get beacon_int "$device" beacon_int 
    444                                         config_get basic_rate_list "$device" basic_rate 
    445                                         config_get encryption "$vif" encryption 
    446                                         config_get key "$vif" key 1 
    447                                         config_get mcast_rate "$vif" mcast_rate 
    448  
    449                                         local keyspec="" 
    450                                         [ "$encryption" == "wep" ] && { 
    451                                                 case "$key" in 
    452                                                         [1234]) 
    453                                                                 local idx 
    454                                                                 for idx in 1 2 3 4; do 
    455                                                                         local ikey 
    456                                                                         config_get ikey "$vif" "key$idx" 
    457  
    458                                                                         [ -n "$ikey" ] && { 
    459                                                                                 ikey="$(($idx - 1)):$(prepare_key_wep "$ikey")" 
    460                                                                                 [ $idx -eq $key ] && ikey="d:$ikey" 
    461                                                                                 append keyspec "$ikey" 
    462                                                                         } 
    463                                                                 done 
    464                                                         ;; 
    465                                                         *) append keyspec "d:0:$(prepare_key_wep "$key")" ;; 
    466                                                 esac 
     436                case "$mode" in 
     437                        adhoc) 
     438                                config_get bssid "$vif" bssid 
     439                                config_get ssid "$vif" ssid 
     440                                config_get beacon_int "$device" beacon_int 
     441                                config_get basic_rate_list "$device" basic_rate 
     442                                config_get encryption "$vif" encryption 
     443                                config_get key "$vif" key 1 
     444                                config_get mcast_rate "$vif" mcast_rate 
     445 
     446                                local keyspec="" 
     447                                [ "$encryption" == "wep" ] && { 
     448                                        case "$key" in 
     449                                                [1234]) 
     450                                                        local idx 
     451                                                        for idx in 1 2 3 4; do 
     452                                                                local ikey 
     453                                                                config_get ikey "$vif" "key$idx" 
     454 
     455                                                                [ -n "$ikey" ] && { 
     456                                                                        ikey="$(($idx - 1)):$(prepare_key_wep "$ikey")" 
     457                                                                        [ $idx -eq $key ] && ikey="d:$ikey" 
     458                                                                        append keyspec "$ikey" 
     459                                                                } 
     460                                                        done 
     461                                                ;; 
     462                                                *) append keyspec "d:0:$(prepare_key_wep "$key")" ;; 
     463                                        esac 
     464                                } 
     465 
     466                                local br brval brsub brstr 
     467                                [ -n "$basic_rate_list" ] && { 
     468                                        for br in $basic_rate_list; do 
     469                                                brval="$(($br / 1000))" 
     470                                                brsub="$((($br / 100) % 10))" 
     471                                                [ "$brsub" -gt 0 ] && brval="$brval.$brsub" 
     472                                                [ -n "$brstr" ] && brstr="$brstr," 
     473                                                brstr="$brstr$brval" 
     474                                        done 
     475                                } 
     476 
     477                                local mcval="" 
     478                                [ -n "$mcast_rate" ] && { 
     479                                        mcval="$(($mcast_rate / 1000))" 
     480                                        mcsub="$(( ($mcast_rate / 100) % 10 ))" 
     481                                        [ "$mcsub" -gt 0 ] && mcval="$mcval.$mcsub" 
     482                                } 
     483 
     484                                config_get htmode "$device" htmode 
     485                                case "$htmode" in 
     486                                        HT20|HT40+|HT40-) ;; 
     487                                        *) htmode= ;; 
     488                                esac 
     489 
     490                                iw dev "$ifname" ibss join "$ssid" $freq $htmode \ 
     491                                        ${fixed:+fixed-freq} $bssid \ 
     492                                        ${beacon_int:+beacon-interval $beacon_int} \ 
     493                                        ${brstr:+basic-rates $brstr} \ 
     494                                        ${mcval:+mcast-rate $mcval} \ 
     495                                        ${keyspec:+keys $keyspec} 
     496                        ;; 
     497                        sta) 
     498                                if eval "type wpa_supplicant_setup_vif" 2>/dev/null >/dev/null; then 
     499                                        wpa_supplicant_setup_vif "$vif" nl80211 "${hostapd_ctrl:+-H $hostapd_ctrl}" || { 
     500                                                echo "enable_mac80211($device): Failed to set up wpa_supplicant for interface $ifname" >&2 
     501                                                # make sure this wifi interface won't accidentally stay open without encryption 
     502                                                ifconfig "$ifname" down 
     503                                                continue 
    467504                                        } 
    468  
    469                                         local br brval brsub brstr 
    470                                         [ -n "$basic_rate_list" ] && { 
    471                                                 for br in $basic_rate_list; do 
    472                                                         brval="$(($br / 1000))" 
    473                                                         brsub="$((($br / 100) % 10))" 
    474                                                         [ "$brsub" -gt 0 ] && brval="$brval.$brsub" 
    475                                                         [ -n "$brstr" ] && brstr="$brstr," 
    476                                                         brstr="$brstr$brval" 
    477                                                 done 
    478                                         } 
    479  
    480                                         local mcval="" 
    481                                         [ -n "$mcast_rate" ] && { 
    482                                                 mcval="$(($mcast_rate / 1000))" 
    483                                                 mcsub="$(( ($mcast_rate / 100) % 10 ))" 
    484                                                 [ "$mcsub" -gt 0 ] && mcval="$mcval.$mcsub" 
    485                                         } 
    486  
    487                                         config_get htmode "$device" htmode 
    488                                         case "$htmode" in 
    489                                                 HT20|HT40+|HT40-) ;; 
    490                                                 *) htmode= ;; 
    491                                         esac 
    492  
    493                                         iw dev "$ifname" ibss join "$ssid" $freq $htmode \ 
    494                                                 ${fixed:+fixed-freq} $bssid \ 
    495                                                 ${beacon_int:+beacon-interval $beacon_int} \ 
    496                                                 ${brstr:+basic-rates $brstr} \ 
    497                                                 ${mcval:+mcast-rate $mcval} \ 
    498                                                 ${keyspec:+keys $keyspec} 
    499                                 ;; 
    500                                 sta) 
    501                                         if eval "type wpa_supplicant_setup_vif" 2>/dev/null >/dev/null; then 
    502                                                 wpa_supplicant_setup_vif "$vif" nl80211 "${hostapd_ctrl:+-H $hostapd_ctrl}" || { 
    503                                                         echo "enable_mac80211($device): Failed to set up wpa_supplicant for interface $ifname" >&2 
    504                                                         # make sure this wifi interface won't accidentally stay open without encryption 
    505                                                         ifconfig "$ifname" down 
    506                                                         continue 
    507                                                 } 
    508                                         fi 
    509                                 ;; 
    510                         esac 
    511                         mac80211_start_vif "$vif" "$ifname" 
    512                 fi 
     505                                fi 
     506                        ;; 
     507                esac 
     508                [ "$mode" = "ap" ] || mac80211_start_vif "$vif" "$ifname" 
    513509        done 
    514510 
Note: See TracChangeset for help on using the changeset viewer.