#define RETURN_MODULE_TIMEOUT do { *p_result = RLM_MODULE_TIMEOUT; return UNLANG_ACTION_CALCULATE_RESULT; } while (0)
#define RETURN_MODULE_RCODE(_rcode) do { *p_result = (_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;
fr_state_discard(inst->auth.state_tree, request);
radius_request_pairs_to_reply(request, mctx->rctx);
- RETURN_MODULE_OK;
+ RETURN_MODULE_TRANSPARENT;
}
RESUME(access_reject)
fr_state_discard(inst->auth.state_tree, request);
radius_request_pairs_to_reply(request, mctx->rctx);
- RETURN_MODULE_OK;
+ RETURN_MODULE_TRANSPARENT;
}
RESUME(access_challenge)
fr_assert(request->reply->code == FR_RADIUS_CODE_ACCESS_CHALLENGE);
radius_request_pairs_to_reply(request, mctx->rctx);
- RETURN_MODULE_OK;
+ RETURN_MODULE_TRANSPARENT;
}
/** A wrapper around recv generic which stores fields from the request
// @todo - worry about user identity existing?
fr_state_discard(inst->auth.state_tree, request);
- RETURN_MODULE_OK;
+ RETURN_MODULE_TRANSPARENT;
}
RESUME(auth_fail)
// and also for FAIL
fr_state_discard(inst->auth.state_tree, request);
- RETURN_MODULE_OK;
+ RETURN_MODULE_TRANSPARENT;
}
RESUME(auth_restart)
PROCESS_TRACE;
fr_state_discard(inst->auth.state_tree, request);
- RETURN_MODULE_OK;
+ RETURN_MODULE_TRANSPARENT;
}
RESUME(auth_get)
return CALL_SEND_TYPE(FR_TACACS_CODE_AUTH_ERROR);
}
- RETURN_MODULE_OK;
+ RETURN_MODULE_TRANSPARENT;
}
RECV(auth_cont)
}
fr_state_discard(inst->auth.state_tree, request);
- RETURN_MODULE_OK;
+ RETURN_MODULE_TRANSPARENT;
}
RESUME(access_reject)
PROCESS_TRACE;
fr_state_discard(inst->auth.state_tree, request);
- RETURN_MODULE_OK;
+ RETURN_MODULE_TRANSPARENT;
}
RESUME(access_challenge)
}
fr_assert(request->reply->code == FR_RADIUS_CODE_ACCESS_CHALLENGE);
- RETURN_MODULE_OK;
+ RETURN_MODULE_TRANSPARENT;
}
RESUME(protocol_error)