]> git.ipfire.org Git - thirdparty/freeradius-server.git/commitdiff
Add basic, outer eap result functions
authorArran Cudbard-Bell <a.cudbardb@freeradius.org>
Wed, 31 Jan 2018 05:41:03 +0000 (22:41 -0700)
committerArran Cudbard-Bell <a.cudbardb@freeradius.org>
Wed, 31 Jan 2018 14:14:44 +0000 (07:14 -0700)
src/modules/rlm_eap/eap.c
src/modules/rlm_eap/rlm_eap.h

index 9494540a3f22301100c6631d87b5840bf1dec0e8..0da36f9387b387dd5f60c35cdcc5067bf13cbadf 100644 (file)
@@ -426,10 +426,18 @@ int eap_start(rlm_eap_t const *inst, REQUEST *request)
        return RLM_MODULE_NOTFOUND;
 }
 
+rlm_rcode_t eap_continue(eap_session_t *eap_session)
+{
+       eap_session->this_round->request->code = FR_EAP_CODE_REQUEST;
+       eap_session->finished = false;
+
+       return eap_compose(eap_session);
+}
+
 /*
  *     compose EAP FAILURE packet in EAP-Message
  */
-void eap_fail(eap_session_t *eap_session)
+rlm_rcode_t eap_fail(eap_session_t *eap_session)
 {
        /*
         *      Delete any previous replies.
@@ -441,17 +449,19 @@ void eap_fail(eap_session_t *eap_session)
        eap_session->this_round->request = talloc_zero(eap_session->this_round, eap_packet_t);
        eap_session->this_round->request->code = FR_EAP_CODE_FAILURE;
        eap_session->finished = true;
-       eap_compose(eap_session);
+
+       return eap_compose(eap_session);
 }
 
 /*
  *     compose EAP SUCCESS packet in EAP-Message
  */
-void eap_success(eap_session_t *eap_session)
+rlm_rcode_t eap_success(eap_session_t *eap_session)
 {
        eap_session->this_round->request->code = FR_EAP_CODE_SUCCESS;
        eap_session->finished = true;
-       eap_compose(eap_session);
+
+       return eap_compose(eap_session);
 }
 
 /*
index f596cb1ed8f971e3f3c8e4ed0b067f5454494477..d7e8eaa0e305532400ab4014525fa43f86f915d4 100644 (file)
@@ -67,8 +67,9 @@ int           eap_method_instantiate(rlm_eap_method_t **out, rlm_eap_t *inst, eap_ty
  *     EAP Method composition
  */
 int            eap_start(rlm_eap_t const *inst, REQUEST *request) CC_HINT(nonnull);
-void           eap_fail(eap_session_t *eap_session) CC_HINT(nonnull);
-void           eap_success(eap_session_t *eap_session) CC_HINT(nonnull);
+rlm_rcode_t    eap_continue(eap_session_t *eap_session) CC_HINT(nonnull);
+rlm_rcode_t    eap_fail(eap_session_t *eap_session) CC_HINT(nonnull);
+rlm_rcode_t    eap_success(eap_session_t *eap_session) CC_HINT(nonnull);
 rlm_rcode_t    eap_compose(eap_session_t *eap_session) CC_HINT(nonnull);
 
 /*