diff --git a/src/eap_peer/eap.h b/src/eap_peer/eap.h index a23f88a89..00a8f76a4 100644 --- a/src/eap_peer/eap.h +++ b/src/eap_peer/eap.h @@ -223,7 +223,7 @@ struct eapol_callbacks { * new credentials. This can be left %NULL if no WPS functionality is * enabled. */ - int (*wps_cred)(void *ctx, struct wps_credential *cred); + int (*wps_cred)(void *ctx, const struct wps_credential *cred); /** * eap_param_needed - Notify that EAP parameter is needed diff --git a/src/eap_peer/eap_wsc.c b/src/eap_peer/eap_wsc.c index dd47e9c1f..13bd7685d 100644 --- a/src/eap_peer/eap_wsc.c +++ b/src/eap_peer/eap_wsc.c @@ -68,8 +68,6 @@ static void eap_wsc_state(struct eap_wsc_data *data, int state) static int eap_wsc_new_psk_cb(void *ctx, const u8 *mac_addr, const u8 *psk, size_t psk_len) { - /* struct eap_wsc_data *data = ctx; */ - wpa_printf(MSG_DEBUG, "EAP-WSC: Received new WPA/WPA2-PSK from WPS for" " STA " MACSTR, MAC2STR(mac_addr)); wpa_hexdump_key(MSG_DEBUG, "Per-device PSK", psk, psk_len); @@ -83,7 +81,6 @@ static int eap_wsc_new_psk_cb(void *ctx, const u8 *mac_addr, const u8 *psk, static void eap_wsc_pin_needed_cb(void *ctx, const u8 *uuid_e, const struct wps_device_data *dev) { - /* struct eap_wsc_data *data = ctx; */ char uuid[40], txt[400]; int len; if (uuid_bin2str(uuid_e, uuid, sizeof(uuid))) @@ -138,7 +135,8 @@ static void * eap_wsc_init(struct eap_sm *sm) } data->wps_ctx = wps; - wps->cb_ctx = data; + wps->cb_ctx = sm->eapol_ctx; + wps->cred_cb = sm->eapol_cb->wps_cred; /* TODO: store wps_context at higher layer and make the device data * configurable */ @@ -212,8 +210,6 @@ static void * eap_wsc_init(struct eap_sm *sm) os_memcpy(wps->uuid, sm->uuid, UUID_LEN); else cfg.uuid = sm->uuid; - cfg.wps_cred_cb = sm->eapol_cb->wps_cred; - cfg.cb_ctx = sm->eapol_ctx; data->wps = wps_init(&cfg); if (data->wps == NULL) { os_free(data); diff --git a/src/eapol_supp/eapol_supp_sm.c b/src/eapol_supp/eapol_supp_sm.c index 3ae5e158f..5c06987e3 100644 --- a/src/eapol_supp/eapol_supp_sm.c +++ b/src/eapol_supp/eapol_supp_sm.c @@ -1743,7 +1743,7 @@ static void eapol_sm_notify_pending(void *ctx) #ifdef CONFIG_WPS -static int eapol_sm_wps_cred(void *ctx, struct wps_credential *cred) +static int eapol_sm_wps_cred(void *ctx, const struct wps_credential *cred) { struct eapol_sm *sm = ctx; wpa_printf(MSG_DEBUG, "EAPOL: received new WPS credential"); diff --git a/src/eapol_supp/eapol_supp_sm.h b/src/eapol_supp/eapol_supp_sm.h index 637a1a42b..601ff38c8 100644 --- a/src/eapol_supp/eapol_supp_sm.h +++ b/src/eapol_supp/eapol_supp_sm.h @@ -223,7 +223,7 @@ struct eapol_ctx { * new credentials. This can be left %NULL if no WPS functionality is * enabled. */ - int (*wps_cred)(void *ctx, struct wps_credential *cred); + int (*wps_cred)(void *ctx, const struct wps_credential *cred); /** * eap_param_needed - Notify that EAP parameter is needed diff --git a/src/wps/wps.c b/src/wps/wps.c index 0c95a380b..2b3751dd8 100644 --- a/src/wps/wps.c +++ b/src/wps/wps.c @@ -58,9 +58,6 @@ struct wps_data * wps_init(const struct wps_config *cfg) data->dev_password_len = 8; } - data->wps_cred_cb = cfg->wps_cred_cb; - data->cb_ctx = cfg->cb_ctx; - data->state = data->registrar ? RECV_M1 : SEND_M1; return data; diff --git a/src/wps/wps.h b/src/wps/wps.h index 68b000a63..3965acb17 100644 --- a/src/wps/wps.h +++ b/src/wps/wps.h @@ -47,9 +47,6 @@ struct wps_config { size_t pin_len; const u8 *uuid; /* 128-bit Enrollee UUID (NULL for Registrar) */ int pbc; - - int (*wps_cred_cb)(void *ctx, struct wps_credential *cred); - void *cb_ctx; }; struct wps_data * wps_init(const struct wps_config *cfg); diff --git a/src/wps/wps_enrollee.c b/src/wps/wps_enrollee.c index 840ec0987..d89ca3d98 100644 --- a/src/wps/wps_enrollee.c +++ b/src/wps/wps_enrollee.c @@ -674,8 +674,8 @@ static int wps_process_cred_e(struct wps_data *wps, const u8 *cred, wps_process_cred(&attr, &wps->cred)) return -1; - if (wps->wps_cred_cb) - wps->wps_cred_cb(wps->cb_ctx, &wps->cred); + if (wps->wps->cred_cb) + wps->wps->cred_cb(wps->wps->cb_ctx, &wps->cred); return 0; } diff --git a/src/wps/wps_i.h b/src/wps/wps_i.h index 8a057db0d..806ba9fc2 100644 --- a/src/wps/wps_i.h +++ b/src/wps/wps_i.h @@ -67,9 +67,6 @@ struct wps_data { int wps_pin_revealed; struct wps_credential cred; - int (*wps_cred_cb)(void *ctx, struct wps_credential *cred); - void *cb_ctx; - struct wps_device_data peer_dev; }; diff --git a/src/wps/wps_registrar.c b/src/wps/wps_registrar.c index d1eba8271..7f32702d4 100644 --- a/src/wps/wps_registrar.c +++ b/src/wps/wps_registrar.c @@ -1986,8 +1986,8 @@ static enum wps_process_res wps_process_wsc_done(struct wps_data *wps, if (!wps->wps->ap) { wpa_printf(MSG_DEBUG, "WPS: Update local configuration based " "on the modified AP configuration"); - if (wps->wps_cred_cb) - wps->wps_cred_cb(wps->cb_ctx, &wps->cred); + if (wps->wps->cred_cb) + wps->wps->cred_cb(wps->wps->cb_ctx, &wps->cred); } if (wps->new_psk) { diff --git a/wpa_supplicant/wps_supplicant.c b/wpa_supplicant/wps_supplicant.c index 0aca1018b..be7cafcb6 100644 --- a/wpa_supplicant/wps_supplicant.c +++ b/wpa_supplicant/wps_supplicant.c @@ -41,7 +41,8 @@ int wpas_wps_eapol_cb(struct wpa_supplicant *wpa_s) } -static int wpa_supplicant_wps_cred(void *ctx, struct wps_credential *cred) +static int wpa_supplicant_wps_cred(void *ctx, + const struct wps_credential *cred) { struct wpa_supplicant *wpa_s = ctx; struct wpa_ssid *ssid = wpa_s->current_ssid;