diff --git a/src/drivers/driver.h b/src/drivers/driver.h index e7c8f318f..cb561acba 100644 --- a/src/drivers/driver.h +++ b/src/drivers/driver.h @@ -2337,7 +2337,7 @@ struct wpa_driver_ops { * * Returns: 0 on success, -1 on failure */ - int (*deauthenticate)(void *priv, const u8 *addr, int reason_code); + int (*deauthenticate)(void *priv, const u8 *addr, u16 reason_code); /** * associate - Request driver to associate @@ -2806,7 +2806,7 @@ struct wpa_driver_ops { * a Deauthentication frame to be sent to it. */ int (*sta_deauth)(void *priv, const u8 *own_addr, const u8 *addr, - int reason); + u16 reason); /** * sta_disassoc - Disassociate a station (AP only) @@ -2820,7 +2820,7 @@ struct wpa_driver_ops { * a Disassociation frame to be sent to it. */ int (*sta_disassoc)(void *priv, const u8 *own_addr, const u8 *addr, - int reason); + u16 reason); /** * sta_remove - Remove a station entry (AP only) diff --git a/src/drivers/driver_atheros.c b/src/drivers/driver_atheros.c index 807cd9469..840d4ff40 100644 --- a/src/drivers/driver_atheros.c +++ b/src/drivers/driver_atheros.c @@ -86,7 +86,7 @@ struct atheros_driver_data { }; static int atheros_sta_deauth(void *priv, const u8 *own_addr, const u8 *addr, - int reason_code); + u16 reason_code); static int atheros_set_privacy(void *priv, int enabled); static const char * athr_get_ioctl_name(int op) @@ -761,7 +761,7 @@ atheros_set_opt_ie(void *priv, const u8 *ie, size_t ie_len) static int atheros_sta_deauth(void *priv, const u8 *own_addr, const u8 *addr, - int reason_code) + u16 reason_code) { struct atheros_driver_data *drv = priv; struct ieee80211req_mlme mlme; @@ -785,7 +785,7 @@ atheros_sta_deauth(void *priv, const u8 *own_addr, const u8 *addr, static int atheros_sta_disassoc(void *priv, const u8 *own_addr, const u8 *addr, - int reason_code) + u16 reason_code) { struct atheros_driver_data *drv = priv; struct ieee80211req_mlme mlme; diff --git a/src/drivers/driver_bsd.c b/src/drivers/driver_bsd.c index 46754968f..82ca0612e 100644 --- a/src/drivers/driver_bsd.c +++ b/src/drivers/driver_bsd.c @@ -663,7 +663,7 @@ rtbuf_len(void) #undef WPA_OUI_TYPE static int bsd_sta_deauth(void *priv, const u8 *own_addr, const u8 *addr, - int reason_code); + u16 reason_code); static const char * ether_sprintf(const u8 *addr) @@ -755,7 +755,7 @@ bsd_read_sta_driver_data(void *priv, struct hostap_sta_driver_data *data, } static int -bsd_sta_deauth(void *priv, const u8 *own_addr, const u8 *addr, int reason_code) +bsd_sta_deauth(void *priv, const u8 *own_addr, const u8 *addr, u16 reason_code) { return bsd_send_mlme_param(priv, IEEE80211_MLME_DEAUTH, reason_code, addr); @@ -763,7 +763,7 @@ bsd_sta_deauth(void *priv, const u8 *own_addr, const u8 *addr, int reason_code) static int bsd_sta_disassoc(void *priv, const u8 *own_addr, const u8 *addr, - int reason_code) + u16 reason_code) { return bsd_send_mlme_param(priv, IEEE80211_MLME_DISASSOC, reason_code, addr); @@ -1026,7 +1026,7 @@ wpa_driver_bsd_set_drop_unencrypted(void *priv, int enabled) } static int -wpa_driver_bsd_deauthenticate(void *priv, const u8 *addr, int reason_code) +wpa_driver_bsd_deauthenticate(void *priv, const u8 *addr, u16 reason_code) { return bsd_send_mlme_param(priv, IEEE80211_MLME_DEAUTH, reason_code, addr); diff --git a/src/drivers/driver_hostap.c b/src/drivers/driver_hostap.c index 61b39b197..186eccbf2 100644 --- a/src/drivers/driver_hostap.c +++ b/src/drivers/driver_hostap.c @@ -1028,7 +1028,7 @@ static void hostap_driver_deinit(void *priv) static int hostap_sta_deauth(void *priv, const u8 *own_addr, const u8 *addr, - int reason) + u16 reason) { struct hostap_driver_data *drv = priv; struct ieee80211_mgmt mgmt; @@ -1076,7 +1076,7 @@ static int hostap_set_freq(void *priv, struct hostapd_freq_params *freq) static int hostap_sta_disassoc(void *priv, const u8 *own_addr, const u8 *addr, - int reason) + u16 reason) { struct hostap_driver_data *drv = priv; struct ieee80211_mgmt mgmt; diff --git a/src/drivers/driver_ndis.c b/src/drivers/driver_ndis.c index 614c4521e..5b4b9247e 100644 --- a/src/drivers/driver_ndis.c +++ b/src/drivers/driver_ndis.c @@ -719,7 +719,7 @@ static int wpa_driver_ndis_disconnect(struct wpa_driver_ndis_data *drv) static int wpa_driver_ndis_deauthenticate(void *priv, const u8 *addr, - int reason_code) + u16 reason_code) { struct wpa_driver_ndis_data *drv = priv; return wpa_driver_ndis_disconnect(drv); diff --git a/src/drivers/driver_nl80211.c b/src/drivers/driver_nl80211.c index 54fe39000..5da8a793b 100644 --- a/src/drivers/driver_nl80211.c +++ b/src/drivers/driver_nl80211.c @@ -236,7 +236,7 @@ static int nl80211_put_mesh_config(struct nl_msg *msg, struct wpa_driver_mesh_bss_params *params); #endif /* CONFIG_MESH */ static int i802_sta_disassoc(void *priv, const u8 *own_addr, const u8 *addr, - int reason); + u16 reason); /* Converts nl80211_chan_width to a common format */ @@ -3282,7 +3282,7 @@ int wpa_driver_nl80211_mlme(struct wpa_driver_nl80211_data *drv, static int wpa_driver_nl80211_disconnect(struct wpa_driver_nl80211_data *drv, - int reason_code, + u16 reason_code, struct nl_handle *nl_connect) { int ret; @@ -3304,7 +3304,7 @@ static int wpa_driver_nl80211_disconnect(struct wpa_driver_nl80211_data *drv, static int wpa_driver_nl80211_deauthenticate(struct i802_bss *bss, - const u8 *addr, int reason_code) + const u8 *addr, u16 reason_code) { struct wpa_driver_nl80211_data *drv = bss->drv; int ret; @@ -6550,7 +6550,7 @@ static int i802_sta_clear_stats(void *priv, const u8 *addr) static int i802_sta_deauth(void *priv, const u8 *own_addr, const u8 *addr, - int reason) + u16 reason) { struct i802_bss *bss = priv; struct wpa_driver_nl80211_data *drv = bss->drv; @@ -6585,7 +6585,7 @@ static int i802_sta_deauth(void *priv, const u8 *own_addr, const u8 *addr, static int i802_sta_disassoc(void *priv, const u8 *own_addr, const u8 *addr, - int reason) + u16 reason) { struct i802_bss *bss = priv; struct wpa_driver_nl80211_data *drv = bss->drv; @@ -8585,7 +8585,7 @@ static int driver_nl80211_scan2(void *priv, static int driver_nl80211_deauthenticate(void *priv, const u8 *addr, - int reason_code) + u16 reason_code) { struct i802_bss *bss = priv; return wpa_driver_nl80211_deauthenticate(bss, addr, reason_code); diff --git a/src/drivers/driver_privsep.c b/src/drivers/driver_privsep.c index a3f0837e1..55cf61885 100644 --- a/src/drivers/driver_privsep.c +++ b/src/drivers/driver_privsep.c @@ -368,7 +368,7 @@ static int wpa_driver_privsep_get_ssid(void *priv, u8 *ssid) static int wpa_driver_privsep_deauthenticate(void *priv, const u8 *addr, - int reason_code) + u16 reason_code) { //struct wpa_driver_privsep_data *drv = priv; wpa_printf(MSG_DEBUG, "%s addr=" MACSTR " reason_code=%d", diff --git a/src/drivers/driver_wext.c b/src/drivers/driver_wext.c index f7755cccd..4d4a05d0c 100644 --- a/src/drivers/driver_wext.c +++ b/src/drivers/driver_wext.c @@ -1915,7 +1915,7 @@ static int wpa_driver_wext_set_drop_unencrypted(void *priv, static int wpa_driver_wext_mlme(struct wpa_driver_wext_data *drv, - const u8 *addr, int cmd, int reason_code) + const u8 *addr, int cmd, u16 reason_code) { struct iwreq iwr; struct iw_mlme mlme; @@ -1998,7 +1998,7 @@ static void wpa_driver_wext_disconnect(struct wpa_driver_wext_data *drv) static int wpa_driver_wext_deauthenticate(void *priv, const u8 *addr, - int reason_code) + u16 reason_code) { struct wpa_driver_wext_data *drv = priv; int ret; diff --git a/src/rsn_supp/wpa.h b/src/rsn_supp/wpa.h index 8903f8e14..ae9cd6484 100644 --- a/src/rsn_supp/wpa.h +++ b/src/rsn_supp/wpa.h @@ -26,7 +26,7 @@ struct wpa_sm_ctx { void (*set_state)(void *ctx, enum wpa_states state); enum wpa_states (*get_state)(void *ctx); - void (*deauthenticate)(void * ctx, int reason_code); + void (*deauthenticate)(void * ctx, u16 reason_code); int (*set_key)(void *ctx, enum wpa_alg alg, const u8 *addr, int key_idx, int set_tx, const u8 *seq, size_t seq_len, diff --git a/src/rsn_supp/wpa_i.h b/src/rsn_supp/wpa_i.h index 0c5955c66..d86734b0d 100644 --- a/src/rsn_supp/wpa_i.h +++ b/src/rsn_supp/wpa_i.h @@ -188,7 +188,7 @@ static inline enum wpa_states wpa_sm_get_state(struct wpa_sm *sm) return sm->ctx->get_state(sm->ctx->ctx); } -static inline void wpa_sm_deauthenticate(struct wpa_sm *sm, int reason_code) +static inline void wpa_sm_deauthenticate(struct wpa_sm *sm, u16 reason_code) { WPA_ASSERT(sm->ctx->deauthenticate); sm->ctx->deauthenticate(sm->ctx->ctx, reason_code); diff --git a/tests/eapol-fuzzer/eapol-fuzzer.c b/tests/eapol-fuzzer/eapol-fuzzer.c index 634278fd1..b54614991 100644 --- a/tests/eapol-fuzzer/eapol-fuzzer.c +++ b/tests/eapol-fuzzer/eapol-fuzzer.c @@ -72,7 +72,7 @@ static void set_state(void *arg, enum wpa_states state) } -static void deauthenticate(void *arg, int reason_code) +static void deauthenticate(void *arg, u16 reason_code) { } diff --git a/tests/test-eapol.c b/tests/test-eapol.c index 0a0844b63..57f2118e2 100644 --- a/tests/test-eapol.c +++ b/tests/test-eapol.c @@ -270,7 +270,7 @@ static void * supp_get_network_ctx(void *ctx) } -static void supp_deauthenticate(void *ctx, int reason_code) +static void supp_deauthenticate(void *ctx, u16 reason_code) { wpa_printf(MSG_DEBUG, "SUPP: %s(%d)", __func__, reason_code); } diff --git a/wpa_supplicant/driver_i.h b/wpa_supplicant/driver_i.h index 4a9f472e8..f073b8a6d 100644 --- a/wpa_supplicant/driver_i.h +++ b/wpa_supplicant/driver_i.h @@ -168,7 +168,7 @@ static inline int wpa_drv_get_seqnum(struct wpa_supplicant *wpa_s, } static inline int wpa_drv_sta_deauth(struct wpa_supplicant *wpa_s, - const u8 *addr, int reason_code) + const u8 *addr, u16 reason_code) { if (wpa_s->driver->sta_deauth) { return wpa_s->driver->sta_deauth(wpa_s->drv_priv, @@ -179,7 +179,7 @@ static inline int wpa_drv_sta_deauth(struct wpa_supplicant *wpa_s, } static inline int wpa_drv_deauthenticate(struct wpa_supplicant *wpa_s, - const u8 *addr, int reason_code) + const u8 *addr, u16 reason_code) { if (wpa_s->driver->deauthenticate) { return wpa_s->driver->deauthenticate(wpa_s->drv_priv, addr, diff --git a/wpa_supplicant/ibss_rsn.c b/wpa_supplicant/ibss_rsn.c index e96ea65a7..6934c4725 100644 --- a/wpa_supplicant/ibss_rsn.c +++ b/wpa_supplicant/ibss_rsn.c @@ -193,7 +193,7 @@ static void supp_cancel_auth_timeout(void *ctx) } -static void supp_deauthenticate(void * ctx, int reason_code) +static void supp_deauthenticate(void * ctx, u16 reason_code) { wpa_printf(MSG_DEBUG, "SUPP: %s (TODO)", __func__); } diff --git a/wpa_supplicant/notify.c b/wpa_supplicant/notify.c index bedb74b34..b0865096b 100644 --- a/wpa_supplicant/notify.c +++ b/wpa_supplicant/notify.c @@ -901,7 +901,7 @@ void wpas_notify_mesh_group_started(struct wpa_supplicant *wpa_s, void wpas_notify_mesh_group_removed(struct wpa_supplicant *wpa_s, const u8 *meshid, u8 meshid_len, - int reason_code) + u16 reason_code) { if (wpa_s->p2p_mgmt) return; @@ -922,7 +922,7 @@ void wpas_notify_mesh_peer_connected(struct wpa_supplicant *wpa_s, void wpas_notify_mesh_peer_disconnected(struct wpa_supplicant *wpa_s, - const u8 *peer_addr, int reason_code) + const u8 *peer_addr, u16 reason_code) { if (wpa_s->p2p_mgmt) return; diff --git a/wpa_supplicant/notify.h b/wpa_supplicant/notify.h index 65f513ea9..d3e73f0b2 100644 --- a/wpa_supplicant/notify.h +++ b/wpa_supplicant/notify.h @@ -151,10 +151,10 @@ void wpas_notify_mesh_group_started(struct wpa_supplicant *wpa_s, struct wpa_ssid *ssid); void wpas_notify_mesh_group_removed(struct wpa_supplicant *wpa_s, const u8 *meshid, u8 meshid_len, - int reason_code); + u16 reason_code); void wpas_notify_mesh_peer_connected(struct wpa_supplicant *wpa_s, const u8 *peer_addr); void wpas_notify_mesh_peer_disconnected(struct wpa_supplicant *wpa_s, - const u8 *peer_addr, int reason_code); + const u8 *peer_addr, u16 reason_code); #endif /* NOTIFY_H */ diff --git a/wpa_supplicant/preauth_test.c b/wpa_supplicant/preauth_test.c index f2fff550a..3f2da34e5 100644 --- a/wpa_supplicant/preauth_test.c +++ b/wpa_supplicant/preauth_test.c @@ -35,7 +35,7 @@ struct preauth_test_data { }; -static void _wpa_supplicant_deauthenticate(void *wpa_s, int reason_code) +static void _wpa_supplicant_deauthenticate(void *wpa_s, u16 reason_code) { wpa_supplicant_deauthenticate(wpa_s, reason_code); } diff --git a/wpa_supplicant/wpa_supplicant.c b/wpa_supplicant/wpa_supplicant.c index 8050ad3e7..2ddd4f2d3 100644 --- a/wpa_supplicant/wpa_supplicant.c +++ b/wpa_supplicant/wpa_supplicant.c @@ -3422,7 +3422,7 @@ static void wpa_supplicant_clear_connection(struct wpa_supplicant *wpa_s, * current AP. */ void wpa_supplicant_deauthenticate(struct wpa_supplicant *wpa_s, - int reason_code) + u16 reason_code) { u8 *addr = NULL; union wpa_event_data event; @@ -3474,7 +3474,7 @@ void wpa_supplicant_deauthenticate(struct wpa_supplicant *wpa_s, if (addr) { wpa_drv_deauthenticate(wpa_s, addr, reason_code); os_memset(&event, 0, sizeof(event)); - event.deauth_info.reason_code = (u16) reason_code; + event.deauth_info.reason_code = reason_code; event.deauth_info.locally_generated = 1; wpa_supplicant_event(wpa_s, EVENT_DEAUTH, &event); if (zero_addr) diff --git a/wpa_supplicant/wpa_supplicant_i.h b/wpa_supplicant/wpa_supplicant_i.h index 16e4db62a..8ea3c5a1d 100644 --- a/wpa_supplicant/wpa_supplicant_i.h +++ b/wpa_supplicant/wpa_supplicant_i.h @@ -1291,7 +1291,7 @@ struct wpa_ssid * wpa_supplicant_get_ssid(struct wpa_supplicant *wpa_s); const char * wpa_supplicant_get_eap_mode(struct wpa_supplicant *wpa_s); void wpa_supplicant_cancel_auth_timeout(struct wpa_supplicant *wpa_s); void wpa_supplicant_deauthenticate(struct wpa_supplicant *wpa_s, - int reason_code); + u16 reason_code); struct wpa_ssid * wpa_supplicant_add_network(struct wpa_supplicant *wpa_s); int wpa_supplicant_remove_network(struct wpa_supplicant *wpa_s, int id); diff --git a/wpa_supplicant/wpas_glue.c b/wpa_supplicant/wpas_glue.c index 449e04acd..e98bf1147 100644 --- a/wpa_supplicant/wpas_glue.c +++ b/wpa_supplicant/wpas_glue.c @@ -464,7 +464,7 @@ static enum wpa_states _wpa_supplicant_get_state(void *wpa_s) } -static void _wpa_supplicant_deauthenticate(void *wpa_s, int reason_code) +static void _wpa_supplicant_deauthenticate(void *wpa_s, u16 reason_code) { wpa_supplicant_deauthenticate(wpa_s, reason_code); /* Schedule a scan to make sure we continue looking for networks */