]> git.ipfire.org Git - thirdparty/hostap.git/commitdiff
ERP: Make eap_peer_finish() callable
authorJouni Malinen <jouni@qca.qualcomm.com>
Thu, 10 Sep 2015 18:34:15 +0000 (21:34 +0300)
committerJouni Malinen <j@w1.fi>
Sat, 22 Oct 2016 15:26:00 +0000 (18:26 +0300)
This is needed for FILS to process EAP-Finish/Re-auth.

Signed-off-by: Jouni Malinen <jouni@qca.qualcomm.com>
src/eap_peer/eap.c
src/eap_peer/eap.h
src/eapol_supp/eapol_supp_sm.c
src/eapol_supp/eapol_supp_sm.h

index c479220569c85a2c3404eaa6b56a54164b268a7a..1c6116aab3d0922ad34ac52cd2f66f62dda6d79a 100644 (file)
@@ -1591,8 +1591,7 @@ invalid:
 }
 
 
-static void eap_peer_finish(struct eap_sm *sm, const struct eap_hdr *hdr,
-                           size_t len)
+void eap_peer_finish(struct eap_sm *sm, const struct eap_hdr *hdr, size_t len)
 {
 #ifdef CONFIG_ERP
        const u8 *pos = (const u8 *) (hdr + 1);
index 3c6885552b5112ced949425728f36d5689f11fc8..7b013ee15f332f6b23c4cbf592a8fe8d075332a6 100644 (file)
@@ -349,6 +349,7 @@ void eap_set_anon_id(struct eap_sm *sm, const u8 *id, size_t len);
 int eap_peer_was_failure_expected(struct eap_sm *sm);
 void eap_peer_erp_free_keys(struct eap_sm *sm);
 struct wpabuf * eap_peer_build_erp_reauth_start(struct eap_sm *sm, u8 eap_id);
+void eap_peer_finish(struct eap_sm *sm, const struct eap_hdr *hdr, size_t len);
 
 #endif /* IEEE8021X_EAPOL */
 
index a08010d89e2728d2a7af5c3c0680ec0e58798fc0..7fdb277239cbb916b69f53dc4e079f7c78957672 100644 (file)
@@ -2170,3 +2170,14 @@ struct wpabuf * eapol_sm_build_erp_reauth_start(struct eapol_sm *sm)
        return NULL;
 #endif /* CONFIG_ERP */
 }
+
+
+void eapol_sm_process_erp_finish(struct eapol_sm *sm, const u8 *buf,
+                                size_t len)
+{
+#ifdef CONFIG_ERP
+       if (!sm)
+               return;
+       eap_peer_finish(sm->eap, (const struct eap_hdr *) buf, len);
+#endif /* CONFIG_ERP */
+}
index 7b80878f3911b5b4ac7ddd88e6182d4b592d37ac..b48cab2eeba47a9d87dff44bf71c8042cd9ebf70 100644 (file)
@@ -329,6 +329,8 @@ void eapol_sm_set_ext_pw_ctx(struct eapol_sm *sm,
 int eapol_sm_failed(struct eapol_sm *sm);
 void eapol_sm_erp_flush(struct eapol_sm *sm);
 struct wpabuf * eapol_sm_build_erp_reauth_start(struct eapol_sm *sm);
+void eapol_sm_process_erp_finish(struct eapol_sm *sm, const u8 *buf,
+                                size_t len);
 int eapol_sm_get_eap_proxy_imsi(struct eapol_sm *sm, char *imsi, size_t *len);
 #else /* IEEE8021X_EAPOL */
 static inline struct eapol_sm *eapol_sm_init(struct eapol_ctx *ctx)
@@ -444,6 +446,10 @@ eapol_sm_build_erp_reauth_start(struct eapol_sm *sm)
 {
        return NULL;
 }
+static inline void eapol_sm_process_erp_finish(struct eapol_sm *sm,
+                                              const u8 *buf, size_t len)
+{
+}
 #endif /* IEEE8021X_EAPOL */
 
 #endif /* EAPOL_SUPP_SM_H */