From: Alan T. DeKok Date: Tue, 23 Mar 2021 13:06:11 +0000 (-0400) Subject: add a default reply code X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=596d28a0c94ef177b3c425994141203140e1d4f0;p=thirdparty%2Ffreeradius-server.git add a default reply code so that modules which return HANDLED, but don't set the reply will get a default reply --- diff --git a/src/lib/server/process.h b/src/lib/server/process.h index d885a652f6b..3ea20499329 100644 --- a/src/lib/server/process.h +++ b/src/lib/server/process.h @@ -64,6 +64,7 @@ typedef PROCESS_PACKET_TYPE fr_process_rcode_t[RLM_MODULE_NUMCODES]; */ typedef struct { PROCESS_PACKET_TYPE packet_type[RLM_MODULE_NUMCODES]; //!< rcode to packet type mapping. + PROCESS_PACKET_TYPE default_reply; //!< if not otherwise set size_t section_offset; //!< Where to look in the process instance for ///< a pointer to the section we should execute. rlm_rcode_t rcode; //!< Default rcode @@ -140,9 +141,12 @@ RESUME(recv_generic) fr_assert(rcode < RLM_MODULE_NUMCODES); UPDATE_STATE(packet); - fr_assert(state->packet_type[rcode] != 0); request->reply->code = state->packet_type[rcode]; + if (!request->reply->code) request->reply->code = state->default_reply; + if (!request->reply->code) request->reply->code = PROCESS_CODE_DO_NOT_RESPOND; + fr_assert(request->reply->code != 0); + UPDATE_STATE_CS(reply); fr_assert(state->send != NULL);