#define RETURN_UNLANG_TIMEOUT do { p_result->rcode= RLM_MODULE_TIMEOUT; return UNLANG_ACTION_CALCULATE_RESULT; } while (0)
#define RETURN_UNLANG_RCODE(_rcode) do { p_result->rcode = (_rcode); return UNLANG_ACTION_CALCULATE_RESULT; } while (0)
-/** Don't modify the current rcode
- */
-#define RETURN_MODULE_TRANSPARENT do { \
- rlm_rcode_t _rcode = *p_result; \
- *p_result = _rcode; \
- return UNLANG_ACTION_CALCULATE_RESULT; \
- } while (0)
-
extern fr_table_num_sorted_t const rcode_table[];
extern size_t rcode_table_len;
return state->send(p_result, mctx, request);
}
-RESUME(access_accept)
+RESUME_FLAG(access_accept,UNUSED,)
{
fr_pair_t *vp;
process_radius_t const *inst = talloc_get_type_abort_const(mctx->mi->data, process_radius_t);
fr_state_discard(inst->auth.state_tree, request);
radius_request_pairs_to_reply(request, mctx->rctx);
- RETURN_MODULE_TRANSPARENT;
+ return UNLANG_ACTION_CALCULATE_RESULT;
}
-RESUME(access_reject)
+RESUME_FLAG(access_reject,UNUSED,)
{
process_radius_t const *inst = talloc_get_type_abort_const(mctx->mi->data, process_radius_t);
fr_state_discard(inst->auth.state_tree, request);
radius_request_pairs_to_reply(request, mctx->rctx);
- RETURN_MODULE_TRANSPARENT;
+ return UNLANG_ACTION_CALCULATE_RESULT;
}
RESUME(access_challenge)
fr_assert(request->reply->code == FR_RADIUS_CODE_ACCESS_CHALLENGE);
radius_request_pairs_to_reply(request, mctx->rctx);
- RETURN_MODULE_TRANSPARENT;
+ return UNLANG_ACTION_CALCULATE_RESULT;
}
/** A wrapper around recv generic which stores fields from the request
return state->send(p_result, mctx, request);
}
-RESUME(auth_pass)
+RESUME_FLAG(auth_pass, UNUSED,)
{
process_tacacs_t const *inst = talloc_get_type_abort_const(mctx->mi->data, process_tacacs_t);
// @todo - worry about user identity existing?
fr_state_discard(inst->auth.state_tree, request);
- RETURN_MODULE_TRANSPARENT;
+ return UNLANG_ACTION_CALCULATE_RESULT;
}
-RESUME(auth_fail)
+RESUME_FLAG(auth_fail, UNUSED,)
{
process_tacacs_t const *inst = talloc_get_type_abort_const(mctx->mi->data, process_tacacs_t);
// and also for FAIL
fr_state_discard(inst->auth.state_tree, request);
- RETURN_MODULE_TRANSPARENT;
+ return UNLANG_ACTION_CALCULATE_RESULT;
}
-RESUME(auth_restart)
+RESUME_FLAG(auth_restart, UNUSED,)
{
process_tacacs_t const *inst = talloc_get_type_abort_const(mctx->mi->data, process_tacacs_t);
PROCESS_TRACE;
fr_state_discard(inst->auth.state_tree, request);
- RETURN_MODULE_TRANSPARENT;
+ return UNLANG_ACTION_CALCULATE_RESULT;
}
RESUME(auth_get)
return CALL_SEND_TYPE(FR_TACACS_CODE_AUTH_ERROR);
}
- RETURN_MODULE_TRANSPARENT;
+ return UNLANG_ACTION_CALCULATE_RESULT;
}
RECV(auth_cont)
* @copyright 2021 The FreeRADIUS server project.
* @copyright 2021 Network RADIUS SAS (legal@networkradius.com)
*/
+#include "lib/unlang/action.h"
#include <freeradius-devel/protocol/freeradius/freeradius.internal.h>
#include <freeradius-devel/radius/radius.h>
return state->send(p_result, mctx, request);
}
-RESUME(access_accept)
+RESUME_FLAG(access_accept, UNUSED,)
{
fr_pair_t *vp;
process_ttls_t const *inst = talloc_get_type_abort_const(mctx->mi->data, process_ttls_t);
}
fr_state_discard(inst->auth.state_tree, request);
- RETURN_MODULE_TRANSPARENT;
+ return UNLANG_ACTION_CALCULATE_RESULT;
}
-RESUME(access_reject)
+RESUME_FLAG(access_reject, UNUSED,)
{
process_ttls_t const *inst = talloc_get_type_abort_const(mctx->mi->data, process_ttls_t);
PROCESS_TRACE;
fr_state_discard(inst->auth.state_tree, request);
- RETURN_MODULE_TRANSPARENT;
+ return UNLANG_ACTION_CALCULATE_RESULT;
}
RESUME(access_challenge)
}
fr_assert(request->reply->code == FR_RADIUS_CODE_ACCESS_CHALLENGE);
- RETURN_MODULE_TRANSPARENT;
+ return UNLANG_ACTION_CALCULATE_RESULT;
}
RESUME(protocol_error)