@ -266,7 +266,8 @@ static void nl80211_remove_monitor_interface(
struct wpa_driver_nl80211_data * drv ) ;
static int nl80211_send_frame_cmd ( struct wpa_driver_nl80211_data * drv ,
unsigned int freq , unsigned int wait ,
const u8 * buf , size_t buf_len , u64 * cookie ) ;
const u8 * buf , size_t buf_len , u64 * cookie ,
int no_cck ) ;
static int wpa_driver_nl80211_probe_req_report ( void * priv , int report ) ;
# ifdef HOSTAPD
@ -4140,12 +4141,12 @@ static int wpa_driver_nl80211_send_mlme(void *priv, const u8 *data,
* of wpa_supplicant .
*/
return nl80211_send_frame_cmd ( drv , drv - > last_mgmt_freq , 0 ,
data , data_len , NULL );
data , data_len , NULL , 1 );
}
if ( drv - > no_monitor_iface_capab & & is_ap_interface ( drv - > nlmode ) ) {
return nl80211_send_frame_cmd ( drv , drv - > ap_oper_freq , 0 ,
data , data_len , NULL );
data , data_len , NULL , 0 );
}
if ( WLAN_FC_GET_TYPE ( fc ) = = WLAN_FC_TYPE_MGMT & &
@ -6743,7 +6744,7 @@ static int cookie_handler(struct nl_msg *msg, void *arg)
static int nl80211_send_frame_cmd ( struct wpa_driver_nl80211_data * drv ,
unsigned int freq , unsigned int wait ,
const u8 * buf , size_t buf_len ,
u64 * cookie_out )
u64 * cookie_out , int no_cck )
{
struct nl_msg * msg ;
u64 cookie ;
@ -6760,7 +6761,8 @@ static int nl80211_send_frame_cmd(struct wpa_driver_nl80211_data *drv,
if ( wait )
NLA_PUT_U32 ( msg , NL80211_ATTR_DURATION , wait ) ;
NLA_PUT_FLAG ( msg , NL80211_ATTR_OFFCHANNEL_TX_OK ) ;
NLA_PUT_FLAG ( msg , NL80211_ATTR_TX_NO_CCK_RATE ) ;
if ( no_cck )
NLA_PUT_FLAG ( msg , NL80211_ATTR_TX_NO_CCK_RATE ) ;
NLA_PUT ( msg , NL80211_ATTR_FRAME , buf_len , buf ) ;
@ -6789,7 +6791,8 @@ static int wpa_driver_nl80211_send_action(void *priv, unsigned int freq,
unsigned int wait_time ,
const u8 * dst , const u8 * src ,
const u8 * bssid ,
const u8 * data , size_t data_len )
const u8 * data , size_t data_len ,
int no_cck )
{
struct i802_bss * bss = priv ;
struct wpa_driver_nl80211_data * drv = bss - > drv ;
@ -6798,7 +6801,7 @@ static int wpa_driver_nl80211_send_action(void *priv, unsigned int freq,
struct ieee80211_hdr * hdr ;
wpa_printf ( MSG_DEBUG , " nl80211: Send Action frame (ifindex=%d, "
" wait=%d ms )" , drv - > ifindex , wait_time ) ;
" wait=%d ms no_cck=%d )" , drv - > ifindex , wait_time , no_cck ) ;
buf = os_zalloc ( 24 + data_len ) ;
if ( buf = = NULL )
@ -6816,7 +6819,8 @@ static int wpa_driver_nl80211_send_action(void *priv, unsigned int freq,
else
ret = nl80211_send_frame_cmd ( drv , freq , wait_time , buf ,
24 + data_len ,
& drv - > send_action_cookie ) ;
& drv - > send_action_cookie ,
no_cck ) ;
os_free ( buf ) ;
return ret ;
@ -7086,7 +7090,7 @@ static int nl80211_send_ft_action(void *priv, u8 action, const u8 *target_ap,
ret = wpa_driver_nl80211_send_action ( bss , drv - > assoc_freq , 0 ,
drv - > bssid , own_addr , drv - > bssid ,
data , data_len );
data , data_len , 0 );
os_free ( data ) ;
return ret ;