diff options
author | Paul Stewart <pstew@chromium.org> | 2012-06-04 21:10:01 +0300 |
---|---|---|
committer | Jouni Malinen <j@w1.fi> | 2012-06-04 21:10:01 +0300 |
commit | dd7fec1f2969c377ac895246edd34c13986ebb08 (patch) | |
tree | 7bf8420a577776537d56f326d11e257c693b6dd5 /src/eapol_supp | |
parent | 24b5bd8b42c05ca5c041c88abf3944a07f3f839f (diff) | |
download | external_wpa_supplicant_8_ti-dd7fec1f2969c377ac895246edd34c13986ebb08.zip external_wpa_supplicant_8_ti-dd7fec1f2969c377ac895246edd34c13986ebb08.tar.gz external_wpa_supplicant_8_ti-dd7fec1f2969c377ac895246edd34c13986ebb08.tar.bz2 |
wpa_supplicant: Report EAP connection progress to DBus
Send an "EAP" signal via the new DBus interface under various
conditions during EAP authentication:
- During method selection (ACK and NAK)
- During certificate verification
- While sending and receiving TLS alert messages
- EAP success and failure messages
This provides DBus callers a number of new tools:
- The ability to probe an AP for available EAP methods
(given an identity).
- The ability to identify why the remote certificate was
not verified.
- The ability to identify why the remote peer refused
a TLS connection.
Signed-hostap: Paul Stewart <pstew@chromium.org>
Diffstat (limited to 'src/eapol_supp')
-rw-r--r-- | src/eapol_supp/eapol_supp_sm.c | 14 | ||||
-rw-r--r-- | src/eapol_supp/eapol_supp_sm.h | 9 |
2 files changed, 22 insertions, 1 deletions
diff --git a/src/eapol_supp/eapol_supp_sm.c b/src/eapol_supp/eapol_supp_sm.c index c83709f..f0cae70 100644 --- a/src/eapol_supp/eapol_supp_sm.c +++ b/src/eapol_supp/eapol_supp_sm.c @@ -1847,6 +1847,17 @@ static void eapol_sm_notify_cert(void *ctx, int depth, const char *subject, cert_hash, cert); } + +static void eapol_sm_notify_status(void *ctx, const char *status, + const char *parameter) +{ + struct eapol_sm *sm = ctx; + + if (sm->ctx->status_cb) + sm->ctx->status_cb(sm->ctx->ctx, status, parameter); +} + + static struct eapol_callbacks eapol_cb = { eapol_sm_get_config, @@ -1859,7 +1870,8 @@ static struct eapol_callbacks eapol_cb = eapol_sm_get_config_blob, eapol_sm_notify_pending, eapol_sm_eap_param_needed, - eapol_sm_notify_cert + eapol_sm_notify_cert, + eapol_sm_notify_status }; diff --git a/src/eapol_supp/eapol_supp_sm.h b/src/eapol_supp/eapol_supp_sm.h index 3260c61..1a20e4b 100644 --- a/src/eapol_supp/eapol_supp_sm.h +++ b/src/eapol_supp/eapol_supp_sm.h @@ -230,6 +230,15 @@ struct eapol_ctx { * cert_in_cb - Include server certificates in callback */ int cert_in_cb; + + /** + * status_cb - Notification of a change in EAP status + * @ctx: Callback context (ctx) + * @status: Step in the process of EAP authentication + * @parameter: Step-specific parameter, e.g., EAP method name + */ + void (*status_cb)(void *ctx, const char *status, + const char *parameter); }; |