From: Alan T. DeKok Date: Mon, 26 Jun 2017 14:42:45 +0000 (-0400) Subject: use unlang_compule_subsection X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=edb15f6b83f4b003989cb7bc6ef95eda659330d3;p=thirdparty%2Ffreeradius-server.git use unlang_compule_subsection --- diff --git a/src/modules/proto_radius/proto_radius_acct.c b/src/modules/proto_radius/proto_radius_acct.c index 9fa769ecd3a..54486260596 100644 --- a/src/modules/proto_radius/proto_radius_acct.c +++ b/src/modules/proto_radius/proto_radius_acct.c @@ -195,22 +195,6 @@ static fr_io_final_t mod_process(REQUEST *request, UNUSED fr_io_action_t action) return FR_IO_REPLY; } -static int acct_compile_section(CONF_SECTION *server_cs, char const *name1, char const *name2, rlm_components_t component) -{ - CONF_SECTION *cs; - - cs = cf_section_find(server_cs, name1, name2); - if (!cs) return 0; - - cf_log_debug(cs, "Loading %s %s {...}", name1, name2); - - if (unlang_compile(cs, component) < 0) { - cf_log_err(cs, "Failed compiling '%s %s { ... }' section", name1, name2); - return -1; - } - - return 1; -} static int mod_instantiate(UNUSED void *instance, CONF_SECTION *listen_cs) { @@ -222,11 +206,11 @@ static int mod_instantiate(UNUSED void *instance, CONF_SECTION *listen_cs) server_cs = cf_item_to_section(cf_parent(listen_cs)); rad_assert(strcmp(cf_section_name1(server_cs), "server") == 0); - rcode = acct_compile_section(server_cs, "recv", "Accounting-Request", MOD_PREACCT); + rcode = unlang_compile_subsection(server_cs, "recv", "Accounting-Request", MOD_PREACCT); if (rcode < 0) return rcode; if (rcode == 0) { - rcode = acct_compile_section(server_cs, "recv", "*", MOD_PREACCT); + rcode = unlang_compile_subsection(server_cs, "recv", "*", MOD_PREACCT); if (rcode < 0) return rcode; } @@ -236,11 +220,11 @@ static int mod_instantiate(UNUSED void *instance, CONF_SECTION *listen_cs) return -1; } - rcode = acct_compile_section(server_cs, "send", "Accounting-Response", MOD_ACCOUNTING); + rcode = unlang_compile_subsection(server_cs, "send", "Accounting-Response", MOD_ACCOUNTING); if (rcode < 0) return rcode; if (rcode == 0) { - rcode = acct_compile_section(server_cs, "send", "*", MOD_ACCOUNTING); + rcode = unlang_compile_subsection(server_cs, "send", "*", MOD_ACCOUNTING); if (rcode < 0) return rcode; } diff --git a/src/modules/proto_radius/proto_radius_auth.c b/src/modules/proto_radius/proto_radius_auth.c index 3ad6ba54878..df7c5ce7c45 100644 --- a/src/modules/proto_radius/proto_radius_auth.c +++ b/src/modules/proto_radius/proto_radius_auth.c @@ -512,23 +512,6 @@ static fr_io_final_t mod_process(REQUEST *request, UNUSED fr_io_action_t action) } -static int auth_compile_section(CONF_SECTION *server_cs, char const *name1, char const *name2, rlm_components_t component) -{ - CONF_SECTION *cs; - - cs = cf_section_find(server_cs, name1, name2); - if (!cs) return 0; - - cf_log_debug(cs, "Loading %s %s {...}", name1, name2); - - if (unlang_compile(cs, component) < 0) { - cf_log_err(cs, "Failed compiling '%s %s { ... }' section", name1, name2); - return -1; - } - - return 1; -} - /* * Ensure that the "radius" section is compiled. */ @@ -537,7 +520,7 @@ static int auth_listen_compile(CONF_SECTION *server_cs, UNUSED CONF_SECTION *lis int rcode; CONF_SECTION *subcs = NULL; - rcode = auth_compile_section(server_cs, "recv", "Access-Request", MOD_AUTHORIZE); + rcode = unlang_compile_subsection(server_cs, "recv", "Access-Request", MOD_AUTHORIZE); if (rcode < 0) return rcode; if (rcode == 0) { @@ -546,7 +529,7 @@ static int auth_listen_compile(CONF_SECTION *server_cs, UNUSED CONF_SECTION *lis return -1; } - rcode = auth_compile_section(server_cs, "send", "Access-Accept", MOD_POST_AUTH); + rcode = unlang_compile_subsection(server_cs, "send", "Access-Accept", MOD_POST_AUTH); if (rcode < 0) return rcode; if (rcode == 0) { cf_log_err(server_cs, "Failed finding 'send Access-Accept { ... }' section of virtual server %s", @@ -554,7 +537,7 @@ static int auth_listen_compile(CONF_SECTION *server_cs, UNUSED CONF_SECTION *lis return -1; } - rcode = auth_compile_section(server_cs, "send", "Access-Reject", MOD_POST_AUTH); + rcode = unlang_compile_subsection(server_cs, "send", "Access-Reject", MOD_POST_AUTH); if (rcode < 0) return rcode; if (rcode == 0) { cf_log_err(server_cs, "Failed finding 'send Access-Reject { ... }' section of virtual server %s", @@ -565,7 +548,7 @@ static int auth_listen_compile(CONF_SECTION *server_cs, UNUSED CONF_SECTION *lis /* * It's OK to not have an Access-Challenge section. */ - rcode = auth_compile_section(server_cs, "send", "Access-Challenge", MOD_POST_AUTH); + rcode = unlang_compile_subsection(server_cs, "send", "Access-Challenge", MOD_POST_AUTH); if (rcode < 0) return rcode; while ((subcs = cf_section_find_next(server_cs, subcs, "authenticate", NULL))) { @@ -665,7 +648,7 @@ static int mod_instantiate(UNUSED void *instance, CONF_SECTION *listen_cs) return -1; } - rcode = auth_compile_section(server_cs, "authenticate", name2, MOD_AUTHENTICATE); + rcode = unlang_compile_subsection(server_cs, "authenticate", name2, MOD_AUTHENTICATE); if (rcode < 0) { cf_log_err(subcs, "Failed compiling 'authenticate %s { ... }' section", name2); return -1; diff --git a/src/modules/proto_radius/proto_radius_coa.c b/src/modules/proto_radius/proto_radius_coa.c index fa717679982..94b25a65687 100644 --- a/src/modules/proto_radius/proto_radius_coa.c +++ b/src/modules/proto_radius/proto_radius_coa.c @@ -233,22 +233,6 @@ static fr_io_final_t mod_process(REQUEST *request, UNUSED fr_io_action_t action) return FR_IO_REPLY; } -static int coa_compile_section(CONF_SECTION *server_cs, char const *name1, char const *name2, rlm_components_t component) -{ - CONF_SECTION *cs; - - cs = cf_section_find(server_cs, name1, name2); - if (!cs) return 0; - - cf_log_debug(cs, "Loading %s %s {...}", name1, name2); - - if (unlang_compile(cs, component) < 0) { - cf_log_err(cs, "Failed compiling '%s %s { ... }' section", name1, name2); - return -1; - } - - return 1; -} static int mod_instantiate(UNUSED void *instance, CONF_SECTION *listen_cs) { @@ -262,16 +246,16 @@ static int mod_instantiate(UNUSED void *instance, CONF_SECTION *listen_cs) server_cs = cf_item_to_section(cf_parent(listen_cs)); rad_assert(strcmp(cf_section_name1(server_cs), "server") == 0); - rcode = coa_compile_section(server_cs, "recv", "CoA-Request", MOD_RECV_COA); + rcode = unlang_compile_subsection(server_cs, "recv", "CoA-Request", MOD_RECV_COA); if (rcode < 0) return rcode; if (rcode == 1) coa_found = true; - rcode = coa_compile_section(server_cs, "recv", "Disconnect-Request", MOD_RECV_COA); + rcode = unlang_compile_subsection(server_cs, "recv", "Disconnect-Request", MOD_RECV_COA); if (rcode < 0) return rcode; if (rcode == 1) dm_found = true; if (!coa_found || !dm_found) { - rcode = coa_compile_section(server_cs, "recv", "*", MOD_RECV_COA); + rcode = unlang_compile_subsection(server_cs, "recv", "*", MOD_RECV_COA); if (rcode < 0) return rcode; if (rcode == 1) coa_found = dm_found = true; } @@ -289,22 +273,22 @@ static int mod_instantiate(UNUSED void *instance, CONF_SECTION *listen_cs) } if (coa_found) { - rcode = coa_compile_section(server_cs, "send", "CoA-ACK", MOD_SEND_COA); + rcode = unlang_compile_subsection(server_cs, "send", "CoA-ACK", MOD_SEND_COA); if (rcode < 0) return rcode; - rcode = coa_compile_section(server_cs, "send", "CoA-NAK", MOD_SEND_COA); + rcode = unlang_compile_subsection(server_cs, "send", "CoA-NAK", MOD_SEND_COA); if (rcode < 0) return rcode; } if (dm_found) { - rcode = coa_compile_section(server_cs, "send", "Disconnect-ACK", MOD_SEND_COA); + rcode = unlang_compile_subsection(server_cs, "send", "Disconnect-ACK", MOD_SEND_COA); if (rcode < 0) return rcode; - rcode = coa_compile_section(server_cs, "send", "Disconnect-NAK", MOD_SEND_COA); + rcode = unlang_compile_subsection(server_cs, "send", "Disconnect-NAK", MOD_SEND_COA); if (rcode < 0) return rcode; } - rcode = coa_compile_section(server_cs, "send", "*", MOD_PREACCT); + rcode = unlang_compile_subsection(server_cs, "send", "*", MOD_PREACCT); if (rcode < 0) return rcode; return 0; diff --git a/src/modules/proto_radius/proto_radius_status.c b/src/modules/proto_radius/proto_radius_status.c index 858c0f1bff9..877411cf317 100644 --- a/src/modules/proto_radius/proto_radius_status.c +++ b/src/modules/proto_radius/proto_radius_status.c @@ -194,34 +194,9 @@ static fr_io_final_t mod_process(REQUEST *request, UNUSED fr_io_action_t action) return FR_IO_REPLY; } -static int mod_compile_section(CONF_SECTION *server_cs, char const *name1, char const *name2, rlm_components_t component) -{ - CONF_SECTION *cs; - - cs = cf_section_find(server_cs, name1, name2); - if (!cs) return 0; - - cf_log_debug(cs, "Compiling policies - %s %s {...}", name1, name2); - - /* - * FIXME: check if it's already compiled? - * - * What happens when we have Access-Accept in response to Status-Server, - * versus Access-Accept in response to Access-Request? - * - * Damn... - */ - - if (unlang_compile(cs, component) < 0) { - cf_log_err(cs, "Failed compiling '%s %s { ... }' section", name1, name2); - return -1; - } - - return 1; -} /* - * Ensure that the "radius" section is compiled. + * Ensure that the "recv foo" etc. sections are compiled. */ static int mod_instantiate(UNUSED void *instance, CONF_SECTION *listen_cs) { @@ -233,7 +208,7 @@ static int mod_instantiate(UNUSED void *instance, CONF_SECTION *listen_cs) server_cs = cf_item_to_section(cf_parent(listen_cs)); rad_assert(strcmp(cf_section_name1(server_cs), "server") == 0); - rcode = mod_compile_section(server_cs, "recv", "Status-Server", MOD_AUTHORIZE); + rcode = unlang_compile_subsection(server_cs, "recv", "Status-Server", MOD_AUTHORIZE); if (rcode < 0) return rcode; if (rcode == 0) { cf_log_err(server_cs, "Failed finding 'recv Status-Server { ... }' section of virtual server %s", @@ -241,7 +216,7 @@ static int mod_instantiate(UNUSED void *instance, CONF_SECTION *listen_cs) return -1; } - rcode = mod_compile_section(server_cs, "send", "Access-Accept", MOD_POST_AUTH); + rcode = unlang_compile_subsection(server_cs, "send", "Access-Accept", MOD_POST_AUTH); if (rcode < 0) return rcode; if (rcode == 0) { cf_log_err(server_cs, "Failed finding 'send Access-Accept { ... }' section of virtual server %s", @@ -249,7 +224,7 @@ static int mod_instantiate(UNUSED void *instance, CONF_SECTION *listen_cs) return -1; } - rcode = mod_compile_section(server_cs, "send", "Access-Reject", MOD_POST_AUTH); + rcode = unlang_compile_subsection(server_cs, "send", "Access-Reject", MOD_POST_AUTH); if (rcode < 0) return rcode; if (rcode == 0) { cf_log_err(server_cs, "Failed finding 'send Access-Reject { ... }' section of virtual server %s",