From: Alan T. DeKok Date: Thu, 29 Jun 2017 13:21:55 +0000 (-0400) Subject: fix up do-not-respond policies X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=3cb3853362bf893e154787c69e925d2f2c0fa246;p=thirdparty%2Ffreeradius-server.git fix up do-not-respond policies --- diff --git a/src/modules/proto_radius/proto_radius_auth.c b/src/modules/proto_radius/proto_radius_auth.c index eccecc593b3..41725cec633 100644 --- a/src/modules/proto_radius/proto_radius_auth.c +++ b/src/modules/proto_radius/proto_radius_auth.c @@ -461,24 +461,10 @@ static fr_io_final_t mod_process(REQUEST *request, UNUSED fr_io_action_t action) if (!request->parent) fr_state_discard(global_state, request, request->packet); } - if (!request->reply->code) { - vp = fr_pair_find_by_num(request->control, 0, FR_AUTH_TYPE, TAG_ANY); - if (vp) { - if (vp->vp_uint32 == FR_AUTH_TYPE_ACCEPT) { - request->reply->code = FR_CODE_ACCESS_ACCEPT; - - } else if (vp->vp_uint32 == FR_AUTH_TYPE_REJECT) { - request->reply->code = FR_CODE_ACCESS_REJECT; - } - } - } - /* * Check for "do not respond". - * - * @todo - create fake reply */ - if (!request->reply->code) { + if (request->reply->code == FR_CODE_DO_NOT_RESPOND) { RDEBUG("Not sending reply to client."); return FR_IO_REPLY; } @@ -487,7 +473,7 @@ static fr_io_final_t mod_process(REQUEST *request, UNUSED fr_io_action_t action) * This is an internally generated request. * Don't print IP addresses. */ - if (request->packet->data_len == 0) { + if (request->parent) { radlog_request(L_DBG, L_DBG_LVL_1, request, "Sent %s ID %i", fr_packet_codes[request->reply->code], request->reply->id); rdebug_proto_pair_list(L_DBG_LVL_1, request, request->reply->vps, ""); diff --git a/src/modules/proto_radius/proto_radius_coa.c b/src/modules/proto_radius/proto_radius_coa.c index f7baff365f2..8fdf66ceebb 100644 --- a/src/modules/proto_radius/proto_radius_coa.c +++ b/src/modules/proto_radius/proto_radius_coa.c @@ -189,7 +189,7 @@ static fr_io_final_t mod_process(REQUEST *request, UNUSED fr_io_action_t action) /* * Check for "do not respond". */ - if (!request->reply->code) { + if (request->reply->code == FR_CODE_DO_NOT_RESPOND) { RDEBUG("Not sending reply to client."); return FR_IO_DONE; } @@ -197,7 +197,7 @@ static fr_io_final_t mod_process(REQUEST *request, UNUSED fr_io_action_t action) /* * This is an internally generated request. Don't print IP addresses. */ - if (request->packet->data_len == 0) { + if (request->parent) { radlog_request(L_DBG, L_DBG_LVL_1, request, "Sent %s ID %i", fr_packet_codes[request->reply->code], request->reply->id); rdebug_proto_pair_list(L_DBG_LVL_1, request, request->reply->vps, ""); diff --git a/src/modules/proto_radius/proto_radius_status.c b/src/modules/proto_radius/proto_radius_status.c index 0db4436f46c..9c026937d8d 100644 --- a/src/modules/proto_radius/proto_radius_status.c +++ b/src/modules/proto_radius/proto_radius_status.c @@ -154,7 +154,7 @@ static fr_io_final_t mod_process(REQUEST *request, UNUSED fr_io_action_t action) /* * Check for "do not respond". */ - if (!request->reply->code || (request->reply->code == FR_CODE_DO_NOT_RESPOND)) { + if (request->reply->code == FR_CODE_DO_NOT_RESPOND) { RDEBUG("Not sending reply to client."); return FR_IO_DONE; }