| 
					
				 | 
			
			
				@@ -1,6 +1,6 @@ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 --- a/hostapd/Makefile 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 +++ b/hostapd/Makefile 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-@@ -171,6 +171,11 @@ OBJS += ../src/common/hw_features_common 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+@@ -166,6 +166,11 @@ OBJS += ../src/common/hw_features_common 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				   
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  OBJS += ../src/eapol_auth/eapol_auth_sm.o 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				   
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -39,7 +39,7 @@ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  	int interface_added; /* virtual interface added for this BSS */ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  	unsigned int started:1; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  	unsigned int disabled:1; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-@@ -606,6 +608,7 @@ hostapd_alloc_bss_data(struct hostapd_if 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+@@ -610,6 +612,7 @@ hostapd_alloc_bss_data(struct hostapd_if 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  		       struct hostapd_bss_config *bss); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  int hostapd_setup_interface(struct hostapd_iface *iface); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  int hostapd_setup_interface_complete(struct hostapd_iface *iface, int err); 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -49,7 +49,7 @@ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  struct hostapd_iface * hostapd_alloc_iface(void); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 --- a/src/ap/hostapd.c 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 +++ b/src/ap/hostapd.c 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-@@ -395,6 +395,7 @@ void hostapd_free_hapd_data(struct hosta 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+@@ -396,6 +396,7 @@ void hostapd_free_hapd_data(struct hosta 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  	hapd->beacon_set_done = 0; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				   
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  	wpa_printf(MSG_DEBUG, "%s(%s)", __func__, hapd->conf->iface); 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -57,7 +57,7 @@ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  	accounting_deinit(hapd); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  	hostapd_deinit_wpa(hapd); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  	vlan_deinit(hapd); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-@@ -1417,6 +1418,8 @@ static int hostapd_setup_bss(struct host 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+@@ -1422,6 +1423,8 @@ static int hostapd_setup_bss(struct host 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  	if (hapd->driver && hapd->driver->set_operstate) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  		hapd->driver->set_operstate(hapd->drv_priv, 1); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				   
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -66,7 +66,7 @@ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  	return 0; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				   
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-@@ -1999,6 +2002,7 @@ static int hostapd_setup_interface_compl 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+@@ -2028,6 +2031,7 @@ static int hostapd_setup_interface_compl 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  	if (err) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  		goto fail; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				   
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -74,7 +74,7 @@ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  	wpa_printf(MSG_DEBUG, "Completing interface initialization"); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  	if (iface->freq) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  #ifdef NEED_AP_MLME 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-@@ -2196,6 +2200,7 @@ dfs_offload: 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+@@ -2225,6 +2229,7 @@ dfs_offload: 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				   
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  fail: 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  	wpa_printf(MSG_ERROR, "Interface initialization failed"); 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -82,7 +82,7 @@ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  	hostapd_set_state(iface, HAPD_IFACE_DISABLED); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  	wpa_msg(hapd->msg_ctx, MSG_INFO, AP_EVENT_DISABLED); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  #ifdef CONFIG_FST 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-@@ -2669,6 +2674,7 @@ void hostapd_interface_deinit_free(struc 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+@@ -2700,6 +2705,7 @@ void hostapd_interface_deinit_free(struc 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  		   (unsigned int) iface->conf->num_bss); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  	driver = iface->bss[0]->driver; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  	drv_priv = iface->bss[0]->drv_priv; 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -92,7 +92,7 @@ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  		   __func__, driver, drv_priv); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 --- a/src/ap/ieee802_11.c 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 +++ b/src/ap/ieee802_11.c 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-@@ -2327,13 +2327,18 @@ static void handle_auth(struct hostapd_d 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+@@ -3553,13 +3553,18 @@ static void handle_auth(struct hostapd_d 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  	u16 auth_alg, auth_transaction, status_code; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  	u16 resp = WLAN_STATUS_SUCCESS; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  	struct sta_info *sta = NULL; 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -112,7 +112,7 @@ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				   
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  	if (len < IEEE80211_HDRLEN + sizeof(mgmt->u.auth)) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  		wpa_printf(MSG_INFO, "handle_auth - too short payload (len=%lu)", 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-@@ -2493,6 +2498,13 @@ static void handle_auth(struct hostapd_d 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+@@ -3727,6 +3732,13 @@ static void handle_auth(struct hostapd_d 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  		resp = WLAN_STATUS_UNSPECIFIED_FAILURE; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  		goto fail; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  	} 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -126,16 +126,16 @@ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  	if (res == HOSTAPD_ACL_PENDING) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  		return; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				   
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-@@ -4166,7 +4178,7 @@ static void handle_assoc(struct hostapd_ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+@@ -5446,7 +5458,7 @@ static void handle_assoc(struct hostapd_ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  	int resp = WLAN_STATUS_SUCCESS; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				- 	u16 reply_res; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 	u16 reply_res = WLAN_STATUS_UNSPECIFIED_FAILURE; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  	const u8 *pos; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 -	int left, i; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 +	int left, i, ubus_resp; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  	struct sta_info *sta; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  	u8 *tmp = NULL; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  #ifdef CONFIG_FILS 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-@@ -4379,6 +4391,11 @@ static void handle_assoc(struct hostapd_ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+@@ -5659,6 +5671,11 @@ static void handle_assoc(struct hostapd_ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  		left = res; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  	} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  #endif /* CONFIG_FILS */ 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -147,7 +147,7 @@ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				   
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  	/* followed by SSID and Supported rates; and HT capabilities if 802.11n 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  	 * is used */ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-@@ -4543,6 +4560,14 @@ static void handle_assoc(struct hostapd_ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+@@ -5823,6 +5840,14 @@ static void handle_assoc(struct hostapd_ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  					    pos, left, rssi, omit_rsnxe); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  	os_free(tmp); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				   
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -160,9 +160,9 @@ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 +	} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 + 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  	/* 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				- 	 * Remove the station in case tranmission of a success response fails 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 	 * Remove the station in case transmission of a success response fails 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  	 * (the STA was added associated to the driver) or if the station was 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-@@ -4570,6 +4595,7 @@ static void handle_disassoc(struct hosta 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+@@ -5850,6 +5875,7 @@ static void handle_disassoc(struct hosta 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  	wpa_printf(MSG_DEBUG, "disassocation: STA=" MACSTR " reason_code=%d", 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  		   MAC2STR(mgmt->sa), 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  		   le_to_host16(mgmt->u.disassoc.reason_code)); 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -170,9 +170,9 @@ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				   
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  	sta = ap_get_sta(hapd, mgmt->sa); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  	if (sta == NULL) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-@@ -4636,6 +4662,8 @@ static void handle_deauth(struct hostapd 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				- 		" reason_code=%d", 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				- 		MAC2STR(mgmt->sa), le_to_host16(mgmt->u.deauth.reason_code)); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+@@ -5919,6 +5945,8 @@ static void handle_deauth(struct hostapd 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 	/* Clear the PTKSA cache entries for PASN */ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 	ptksa_cache_flush(hapd->ptksa, mgmt->sa, WPA_CIPHER_NONE); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				   
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 +	hostapd_ubus_notify(hapd, "deauth", mgmt->sa); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 + 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -181,7 +181,7 @@ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  		wpa_msg(hapd->msg_ctx, MSG_DEBUG, "Station " MACSTR " trying " 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 --- a/src/ap/beacon.c 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 +++ b/src/ap/beacon.c 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-@@ -814,6 +814,12 @@ void handle_probe_req(struct hostapd_dat 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+@@ -823,6 +823,12 @@ void handle_probe_req(struct hostapd_dat 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  	u16 csa_offs[2]; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  	size_t csa_offs_len; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  	struct radius_sta rad_info; 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -192,9 +192,9 @@ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 +		.elems = &elems, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 +	}; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				   
			 | 
		
	
		
			
				 | 
				 | 
			
			
				- 	if (len < IEEE80211_HDRLEN) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				- 		return; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-@@ -996,6 +1002,12 @@ void handle_probe_req(struct hostapd_dat 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 	if (hapd->iconf->rssi_ignore_probe_request && ssi_signal && 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 	    ssi_signal < hapd->iconf->rssi_ignore_probe_request) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+@@ -1009,6 +1015,12 @@ void handle_probe_req(struct hostapd_dat 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  	} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  #endif /* CONFIG_P2P */ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				   
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -209,7 +209,7 @@ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				   
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 --- a/src/ap/drv_callbacks.c 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 +++ b/src/ap/drv_callbacks.c 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-@@ -119,6 +119,10 @@ int hostapd_notif_assoc(struct hostapd_d 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+@@ -145,6 +145,10 @@ int hostapd_notif_assoc(struct hostapd_d 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  	u16 reason = WLAN_REASON_UNSPECIFIED; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  	int status = WLAN_STATUS_SUCCESS; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  	const u8 *p2p_dev_addr = NULL; 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -220,7 +220,7 @@ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				   
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  	if (addr == NULL) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  		/* 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-@@ -211,6 +215,12 @@ int hostapd_notif_assoc(struct hostapd_d 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+@@ -237,6 +241,12 @@ int hostapd_notif_assoc(struct hostapd_d 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  		goto fail; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  	} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				   
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -235,7 +235,7 @@ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  		wpabuf_free(sta->p2p_ie); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 --- a/src/ap/sta_info.c 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 +++ b/src/ap/sta_info.c 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-@@ -424,6 +424,7 @@ void ap_handle_timer(void *eloop_ctx, vo 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+@@ -459,6 +459,7 @@ void ap_handle_timer(void *eloop_ctx, vo 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  			       HOSTAPD_LEVEL_INFO, "deauthenticated due to " 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  			       "local deauth request"); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  		ap_free_sta(hapd, sta); 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -243,7 +243,7 @@ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  		return; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  	} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				   
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-@@ -579,6 +580,7 @@ skip_poll: 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+@@ -614,6 +615,7 @@ skip_poll: 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  			hapd, sta, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  			WLAN_REASON_PREV_AUTH_NOT_VALID); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  		ap_free_sta(hapd, sta); 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -251,7 +251,7 @@ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  		break; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  	} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-@@ -1294,6 +1296,7 @@ void ap_sta_set_authorized(struct hostap 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+@@ -1329,6 +1331,7 @@ void ap_sta_set_authorized(struct hostap 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  					  buf, ip_addr, keyid_buf); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  	} else { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  		wpa_msg(hapd->msg_ctx, MSG_INFO, AP_STA_DISCONNECTED "%s", buf); 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -261,7 +261,7 @@ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  		    hapd->msg_ctx_parent != hapd->msg_ctx) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 --- a/src/ap/wpa_auth_glue.c 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 +++ b/src/ap/wpa_auth_glue.c 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-@@ -259,6 +259,7 @@ static void hostapd_wpa_auth_psk_failure 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+@@ -265,6 +265,7 @@ static void hostapd_wpa_auth_psk_failure 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  	struct hostapd_data *hapd = ctx; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  	wpa_msg(hapd->msg_ctx, MSG_INFO, AP_STA_POSSIBLE_PSK_MISMATCH MACSTR, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  		MAC2STR(addr)); 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -271,7 +271,7 @@ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				   
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 --- a/wpa_supplicant/Makefile 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 +++ b/wpa_supplicant/Makefile 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-@@ -190,6 +190,12 @@ ifdef CONFIG_EAPOL_TEST 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+@@ -176,6 +176,12 @@ ifdef CONFIG_EAPOL_TEST 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  CFLAGS += -Werror -DEAPOL_TEST 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  endif 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				   
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -284,7 +284,7 @@ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  ifdef CONFIG_CODE_COVERAGE 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  CFLAGS += -O0 -fprofile-arcs -ftest-coverage 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  LIBS += -lgcov 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-@@ -956,6 +962,9 @@ ifdef CONFIG_CTRL_IFACE_MIB 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+@@ -959,6 +965,9 @@ ifdef CONFIG_CTRL_IFACE_MIB 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  CFLAGS += -DCONFIG_CTRL_IFACE_MIB 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  endif 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  OBJS += ../src/ap/ctrl_iface_ap.o 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -296,7 +296,7 @@ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  CFLAGS += -DEAP_SERVER -DEAP_SERVER_IDENTITY 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 --- a/wpa_supplicant/wpa_supplicant.c 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 +++ b/wpa_supplicant/wpa_supplicant.c 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-@@ -6794,6 +6794,8 @@ struct wpa_supplicant * wpa_supplicant_a 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+@@ -7017,6 +7017,8 @@ struct wpa_supplicant * wpa_supplicant_a 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  	} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  #endif /* CONFIG_P2P */ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				   
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -305,7 +305,7 @@ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  	return wpa_s; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				   
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-@@ -6820,6 +6822,8 @@ int wpa_supplicant_remove_iface(struct w 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+@@ -7043,6 +7045,8 @@ int wpa_supplicant_remove_iface(struct w 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  	struct wpa_supplicant *parent = wpa_s->parent; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  #endif /* CONFIG_MESH */ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				   
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -314,7 +314,7 @@ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  	/* Remove interface from the global list of interfaces */ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  	prev = global->ifaces; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  	if (prev == wpa_s) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-@@ -7123,8 +7127,12 @@ int wpa_supplicant_run(struct wpa_global 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+@@ -7346,8 +7350,12 @@ int wpa_supplicant_run(struct wpa_global 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  	eloop_register_signal_terminate(wpa_supplicant_terminate, global); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  	eloop_register_signal_reconfig(wpa_supplicant_reconfig, global); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				   
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -329,7 +329,7 @@ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				   
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 --- a/wpa_supplicant/wpa_supplicant_i.h 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 +++ b/wpa_supplicant/wpa_supplicant_i.h 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-@@ -17,6 +17,7 @@ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+@@ -19,6 +19,7 @@ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  #include "wps/wps_defs.h" 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  #include "config_ssid.h" 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  #include "wmm_ac.h" 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -337,7 +337,7 @@ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				   
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  extern const char *const wpa_supplicant_version; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  extern const char *const wpa_supplicant_license; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-@@ -310,6 +311,8 @@ struct wpa_global { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+@@ -321,6 +322,8 @@ struct wpa_global { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  #endif /* CONFIG_WIFI_DISPLAY */ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				   
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  	struct psk_list_entry *add_psk; /* From group formation */ 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -346,7 +346,7 @@ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  }; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				   
			 | 
		
	
		
			
				 | 
				 | 
			
			
				   
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-@@ -520,6 +523,7 @@ struct wpa_supplicant { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+@@ -605,6 +608,7 @@ struct wpa_supplicant { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  	unsigned char own_addr[ETH_ALEN]; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  	unsigned char perm_addr[ETH_ALEN]; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  	char ifname[100]; 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -375,7 +375,7 @@ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				   
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 --- a/hostapd/main.c 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 +++ b/hostapd/main.c 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-@@ -896,6 +896,7 @@ int main(int argc, char *argv[]) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+@@ -895,6 +895,7 @@ int main(int argc, char *argv[]) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  	} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				   
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  	hostapd_global_ctrl_iface_init(&interfaces); 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -383,7 +383,7 @@ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				   
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  	if (hostapd_global_run(&interfaces, daemonize, pid_file)) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  		wpa_printf(MSG_ERROR, "Failed to start eloop"); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-@@ -905,6 +906,7 @@ int main(int argc, char *argv[]) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+@@ -904,6 +905,7 @@ int main(int argc, char *argv[]) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  	ret = 0; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				   
			 | 
		
	
		
			
				 | 
				 | 
			
			
				   out: 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -464,7 +464,7 @@ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				   
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 --- a/src/ap/dfs.c 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 +++ b/src/ap/dfs.c 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-@@ -1179,6 +1179,8 @@ int hostapd_dfs_radar_detected(struct ho 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+@@ -1193,6 +1193,8 @@ int hostapd_dfs_radar_detected(struct ho 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  		"freq=%d ht_enabled=%d chan_offset=%d chan_width=%d cf1=%d cf2=%d", 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  		freq, ht_enabled, chan_offset, chan_width, cf1, cf2); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				   
			 |