WPS: Merged two cred_cb variables into the same one

Previously, wpa_supplicant as Enrollee case was handled using a
different callback function pointer. However, now that the wps_context
structure is allocated for all cases, the same variable can be used in
all cases.
This commit is contained in:
Jouni Malinen 2008-11-28 20:02:32 +02:00
parent fa201b694f
commit bcbbc7af45
10 changed files with 11 additions and 23 deletions

View file

@ -223,7 +223,7 @@ struct eapol_callbacks {
* new credentials. This can be left %NULL if no WPS functionality is * new credentials. This can be left %NULL if no WPS functionality is
* enabled. * 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 * eap_param_needed - Notify that EAP parameter is needed

View file

@ -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, static int eap_wsc_new_psk_cb(void *ctx, const u8 *mac_addr, const u8 *psk,
size_t psk_len) size_t psk_len)
{ {
/* struct eap_wsc_data *data = ctx; */
wpa_printf(MSG_DEBUG, "EAP-WSC: Received new WPA/WPA2-PSK from WPS for" wpa_printf(MSG_DEBUG, "EAP-WSC: Received new WPA/WPA2-PSK from WPS for"
" STA " MACSTR, MAC2STR(mac_addr)); " STA " MACSTR, MAC2STR(mac_addr));
wpa_hexdump_key(MSG_DEBUG, "Per-device PSK", psk, psk_len); 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, static void eap_wsc_pin_needed_cb(void *ctx, const u8 *uuid_e,
const struct wps_device_data *dev) const struct wps_device_data *dev)
{ {
/* struct eap_wsc_data *data = ctx; */
char uuid[40], txt[400]; char uuid[40], txt[400];
int len; int len;
if (uuid_bin2str(uuid_e, uuid, sizeof(uuid))) 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; 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 /* TODO: store wps_context at higher layer and make the device data
* configurable */ * configurable */
@ -212,8 +210,6 @@ static void * eap_wsc_init(struct eap_sm *sm)
os_memcpy(wps->uuid, sm->uuid, UUID_LEN); os_memcpy(wps->uuid, sm->uuid, UUID_LEN);
else else
cfg.uuid = sm->uuid; cfg.uuid = sm->uuid;
cfg.wps_cred_cb = sm->eapol_cb->wps_cred;
cfg.cb_ctx = sm->eapol_ctx;
data->wps = wps_init(&cfg); data->wps = wps_init(&cfg);
if (data->wps == NULL) { if (data->wps == NULL) {
os_free(data); os_free(data);

View file

@ -1743,7 +1743,7 @@ static void eapol_sm_notify_pending(void *ctx)
#ifdef CONFIG_WPS #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; struct eapol_sm *sm = ctx;
wpa_printf(MSG_DEBUG, "EAPOL: received new WPS credential"); wpa_printf(MSG_DEBUG, "EAPOL: received new WPS credential");

View file

@ -223,7 +223,7 @@ struct eapol_ctx {
* new credentials. This can be left %NULL if no WPS functionality is * new credentials. This can be left %NULL if no WPS functionality is
* enabled. * 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 * eap_param_needed - Notify that EAP parameter is needed

View file

@ -58,9 +58,6 @@ struct wps_data * wps_init(const struct wps_config *cfg)
data->dev_password_len = 8; 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; data->state = data->registrar ? RECV_M1 : SEND_M1;
return data; return data;

View file

@ -47,9 +47,6 @@ struct wps_config {
size_t pin_len; size_t pin_len;
const u8 *uuid; /* 128-bit Enrollee UUID (NULL for Registrar) */ const u8 *uuid; /* 128-bit Enrollee UUID (NULL for Registrar) */
int pbc; 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); struct wps_data * wps_init(const struct wps_config *cfg);

View file

@ -674,8 +674,8 @@ static int wps_process_cred_e(struct wps_data *wps, const u8 *cred,
wps_process_cred(&attr, &wps->cred)) wps_process_cred(&attr, &wps->cred))
return -1; return -1;
if (wps->wps_cred_cb) if (wps->wps->cred_cb)
wps->wps_cred_cb(wps->cb_ctx, &wps->cred); wps->wps->cred_cb(wps->wps->cb_ctx, &wps->cred);
return 0; return 0;
} }

View file

@ -67,9 +67,6 @@ struct wps_data {
int wps_pin_revealed; int wps_pin_revealed;
struct wps_credential cred; struct wps_credential cred;
int (*wps_cred_cb)(void *ctx, struct wps_credential *cred);
void *cb_ctx;
struct wps_device_data peer_dev; struct wps_device_data peer_dev;
}; };

View file

@ -1986,8 +1986,8 @@ static enum wps_process_res wps_process_wsc_done(struct wps_data *wps,
if (!wps->wps->ap) { if (!wps->wps->ap) {
wpa_printf(MSG_DEBUG, "WPS: Update local configuration based " wpa_printf(MSG_DEBUG, "WPS: Update local configuration based "
"on the modified AP configuration"); "on the modified AP configuration");
if (wps->wps_cred_cb) if (wps->wps->cred_cb)
wps->wps_cred_cb(wps->cb_ctx, &wps->cred); wps->wps->cred_cb(wps->wps->cb_ctx, &wps->cred);
} }
if (wps->new_psk) { if (wps->new_psk) {

View file

@ -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_supplicant *wpa_s = ctx;
struct wpa_ssid *ssid = wpa_s->current_ssid; struct wpa_ssid *ssid = wpa_s->current_ssid;