Changeset 13913


Ignore:
Timestamp:
2009-01-07T05:29:14+01:00 (8 years ago)
Author:
nbd
Message:

merge r13912 to 8.09

Location:
branches/8.09
Files:
1 added
4 edited

Legend:

Unmodified
Added
Removed
  • branches/8.09/package/broadcom-wl/Makefile

    r12181 r13913  
    1111 
    1212PKG_NAME:=broadcom-wl 
    13 PKG_VERSION:=4.150.10.5.2 
     13PKG_VERSION:=4.150.10.5.3 
    1414PKG_RELEASE:=1 
    1515WLC_VERSION:=0.1 
     
    1717PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.bz2 
    1818PKG_SOURCE_URL:=http://downloads.openwrt.org/sources 
    19 PKG_MD5SUM:=904a808dd98da076814fb7cb4b66a695 
     19PKG_MD5SUM:=cc615fd49719eea8bce5b2a8813783f3 
    2020 
    2121WL_WEXT=1 
  • branches/8.09/package/broadcom-wl/files/lib/wifi/broadcom.sh

    r13241 r13913  
    232232                        append vif_post_up "passive $passive" "$N" 
    233233                } 
     234 
     235                [ "$mode" = "adhoc" ] && { 
     236                        config_get bssid "$vif" bssid 
     237                        [ -n "$bssid" ] && { 
     238                                append vif_pre_up "des_bssid $bssid" "$N" 
     239                                append vif_pre_up "allow_mode 1" "$N" 
     240                        } 
     241                } || append vif_pre_up "allow_mode 0" "$N" 
    234242                 
    235243                append vif_post_up "enabled 1" "$N" 
  • branches/8.09/package/broadcom-wl/src/include/wlioctl.h

    r9528 r13913  
    763763#define WLC_OTPW                                275 
    764764#define WLC_SET_LOCALE                          278 
    765 #define WLC_LAST                                279     /* do not change - use get_var/set_var */ 
     765#define WLC_GET_ALLOW_MODE                      279 
     766#define WLC_SET_ALLOW_MODE                      280 
     767#define WLC_GET_DESIRED_BSSID                   281 
     768#define WLC_SET_DESIRED_BSSID                   282 
     769#define WLC_LAST                                283     /* do not change - use get_var/set_var */ 
    766770 
    767771/* 
  • branches/8.09/package/broadcom-wl/src/wlc/wlc.c

    r10206 r13913  
    6767        INT =    0x001, 
    6868        STRING = 0x002, 
     69        MAC =    0x003, 
    6970 
    7071        /* options */ 
     
    107108        } 
    108109        switch(param & PARAM_TYPE) { 
     110                case MAC: 
     111                        return wl_ioctl(interface, ((param & SET) ? (ioc) : (ioc >> 16)) & 0xffff, value, 6); 
    109112                case INT: 
    110113                        return wl_ioctl(interface, ((param & SET) ? (ioc) : (ioc >> 16)) & 0xffff, value, sizeof(int)); 
    111114                case STRING: 
    112115                        return wl_ioctl(interface, ((param & SET) ? (ioc) : (ioc >> 16)) & 0xffff, value, BUFSIZE); 
    113         }        
     116        } 
    114117        return 0; 
    115118} 
     
    125128                        case INT: 
    126129                                ret = wl_iovar_setint(interface, iov, *val); 
     130                                break; 
     131                        case MAC: 
     132                                ret = wl_iovar_set(interface, iov, value, 6); 
     133                                break; 
    127134                } 
    128135        } 
     
    131138                        case INT: 
    132139                                ret = wl_iovar_getint(interface, iov, val); 
     140                                break; 
     141                        case MAC: 
     142                                ret = wl_iovar_get(interface, iov, value, 6); 
     143                                break; 
    133144                } 
    134145        } 
     
    860871                .desc = "Broadcom Afterburner" 
    861872        }, 
     873        { 
     874                .name = "join_once", 
     875                .param = INT, 
     876                .handler = wlc_iovar, 
     877                .data.str = "IBSS_join_once", 
     878                .desc = "Prevent unwanted IBSS merges" 
     879        }, 
     880        { 
     881                .name = "bssid", 
     882                .param = MAC, 
     883                .handler = wlc_iovar, 
     884                .data.str = "cur_etheraddr", 
     885                .desc = "BSSID" 
     886        }, 
     887        { 
     888                .name = "default_bssid", 
     889                .param = MAC, 
     890                .handler = wlc_iovar, 
     891                .data.str = "perm_etheraddr", 
     892                .desc = "Default BSSID (read-only)" 
     893        }, 
     894        { 
     895                .name = "allow_mode", 
     896                .param = INT, 
     897                .data.num = ((WLC_GET_ALLOW_MODE << 16) | WLC_SET_ALLOW_MODE), 
     898                .handler = wlc_ioctl, 
     899                .desc = "STA/IBSS assoc mode" 
     900        }, 
     901        { 
     902                .name = "des_bssid", 
     903                .param = MAC, 
     904                .data.num = ((WLC_GET_DESIRED_BSSID << 16) | WLC_SET_DESIRED_BSSID), 
     905                .handler = wlc_ioctl, 
     906                .desc = "Desired BSSID" 
     907        }, 
    862908}; 
    863909#define wlc_calls_size (sizeof(wlc_calls) / sizeof(struct wlc_call)) 
     
    883929        char *format, *end; 
    884930        int intval; 
     931        void *ptr = (void *) buf; 
    885932 
    886933        if (debug >= 10) { 
     
    907954                                case STRING: 
    908955                                        fprintf(stdout, "%s\n", buf); 
     956                                        break; 
     957                                case MAC: 
     958                                        my_ether_ntoa(buf, buf + 6); 
     959                                        fprintf(stdout, "%s\n", buf + 6); 
     960                                        break; 
    909961                        } 
    910962                } 
     
    924976                                strncpy(buf, arg, BUFSIZE); 
    925977                                buf[BUFSIZE - 1] = 0; 
    926                 } 
    927  
    928                 ret = cmd->handler(cmd->param | SET, (void *) &cmd->data, (void *) buf); 
     978                                break; 
     979                        case MAC: 
     980                                ptr = ether_aton(arg); 
     981                                if (!ptr) { 
     982                                        fprintf(stderr, "%s: Invalid mac address '%s'\n", cmd->name, arg); 
     983                                        return -1; 
     984                                } 
     985                                break; 
     986                } 
     987 
     988                ret = cmd->handler(cmd->param | SET, (void *) &cmd->data, ptr); 
    929989        } 
    930990         
Note: See TracChangeset for help on using the changeset viewer.