@ -5675,8 +5675,8 @@ static void *i802_init(struct hostapd_data *hapd,
struct wpa_driver_nl80211_data * drv ;
struct i802_bss * bss ;
size_t i ;
char br name[ IFNAMSIZ ] ;
int ifindex , br_ifindex ;
char master_if name[ IFNAMSIZ ] ;
int ifindex , br_ifindex = 0 ;
int br_added = 0 ;
bss = wpa_driver_nl80211_drv_init ( hapd , params - > ifname ,
@ -5687,15 +5687,21 @@ static void *i802_init(struct hostapd_data *hapd,
drv = bss - > drv ;
if ( linux_br_get ( br name, params - > ifname ) = = 0 ) {
if ( linux_br_get ( master_if name, params - > ifname ) = = 0 ) {
wpa_printf ( MSG_DEBUG , " nl80211: Interface %s is in bridge %s " ,
params - > ifname , brname ) ;
br_ifindex = if_nametoindex ( brname ) ;
os_strlcpy ( bss - > brname , brname , IFNAMSIZ ) ;
params - > ifname , master_ifname ) ;
br_ifindex = if_nametoindex ( master_ifname ) ;
os_strlcpy ( bss - > brname , master_ifname , IFNAMSIZ ) ;
} else if ( ( params - > num_bridge = = 0 | | ! params - > bridge [ 0 ] ) & &
linux_master_get ( master_ifname , params - > ifname ) = = 0 ) {
wpa_printf ( MSG_DEBUG , " nl80211: Interface %s is in master %s " ,
params - > ifname , master_ifname ) ;
/* start listening for EAPOL on the master interface */
add_ifidx ( drv , if_nametoindex ( master_ifname ) ) ;
} else {
brname [ 0 ] = ' \0 ' ;
br_ifindex = 0 ;
master_ifname [ 0 ] = ' \0 ' ;
}
bss - > br_ifindex = br_ifindex ;
for ( i = 0 ; i < params - > num_bridge ; i + + ) {
@ -5715,7 +5721,7 @@ static void *i802_init(struct hostapd_data *hapd,
if ( i802_check_bridge ( drv , bss , params - > bridge [ 0 ] ,
params - > ifname ) < 0 )
goto failed ;
if ( os_strcmp ( params - > bridge [ 0 ] , br name) ! = 0 )
if ( os_strcmp ( params - > bridge [ 0 ] , master_if name) ! = 0 )
br_added = 1 ;
}