From: Alan T. DeKok Date: Thu, 30 Jun 2022 12:29:25 +0000 (-0400) Subject: remove request_list from paircmp callbacks X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=30df7f92a85488100579680cc5f1607565282a5f;p=thirdparty%2Ffreeradius-server.git remove request_list from paircmp callbacks --- diff --git a/src/lib/server/cond_eval.c b/src/lib/server/cond_eval.c index 6a20971813f..b4ac9adb15f 100644 --- a/src/lib/server/cond_eval.c +++ b/src/lib/server/cond_eval.c @@ -584,7 +584,7 @@ static bool cond_compare_virtual(request_t *request, map_t const *map) virt->op = map->op; fr_value_box_copy(virt, &virt->data, rhs); - rcode = paircmp_virtual(request, &request->request_pairs, virt); + rcode = paircmp_virtual(request, virt); talloc_free(virt); rcode = (rcode == 0) ? 1 : 0; if (rhs == &rhs_cast) fr_value_box_clear(&rhs_cast); @@ -739,7 +739,7 @@ static bool cond_eval_map(request_t *request, fr_cond_t const *c, * Do JUST the virtual attribute comparison. * Skip all of the rest of the complexity of paircmp(). */ - rcode = paircmp_virtual(request, &request->request_pairs, vp); + rcode = paircmp_virtual(request, vp); talloc_free(vp); rcode = (rcode == 0) ? 1 : 0; goto done; diff --git a/src/lib/server/paircmp.c b/src/lib/server/paircmp.c index 4b50fd923c6..1af93058933 100644 --- a/src/lib/server/paircmp.c +++ b/src/lib/server/paircmp.c @@ -45,7 +45,7 @@ struct paircmp_s { fr_dict_attr_t const *from; bool first_only; void *instance; /* module instance */ - RAD_COMPARE_FUNC compare; + fr_paircmp_func_t compare; paircmp_t *next; }; @@ -105,7 +105,6 @@ static paircmp_t *cmp; */ static int packet_cmp(UNUSED void *instance, request_t *request, - UNUSED fr_pair_list_t *request_list, fr_pair_t const *check_item) { PAIR_VERIFY(check_item); @@ -120,7 +119,6 @@ static int packet_cmp(UNUSED void *instance, */ static int generic_cmp(UNUSED void *instance, request_t *request, - UNUSED fr_pair_list_t *request_list, fr_pair_t const *check_item) { PAIR_VERIFY(check_item); @@ -412,7 +410,6 @@ finish: * * @param[in] request Current request. * @param[in] request_item item to compare. - * @param[in] request_list list pairs. * @param[in] check_item item to compare. * @return * - 0 if check_item and vp are equal. @@ -421,7 +418,6 @@ finish: */ static int paircmp_func(request_t *request, fr_pair_t *request_item, - fr_pair_list_t *request_list, fr_pair_t *check_item) { paircmp_t *c; @@ -441,7 +437,7 @@ static int paircmp_func(request_t *request, */ for (c = cmp; c; c = c->next) { if (c->da == check_item->da) { - return (c->compare)(c->instance, request, request_list, check_item); + return (c->compare)(c->instance, request, check_item); } } @@ -459,22 +455,19 @@ static int paircmp_func(request_t *request, * comparison function called. * * @param[in] request Current request. - * @param[in] request_list list pairs. * @param[in] check_item item to compare. * @return * - 0 if check_item matches * - -1 if check_item is smaller * - 1 if check_item is larger */ -int paircmp_virtual(request_t *request, - fr_pair_list_t *request_list, - fr_pair_t const *check_item) +int paircmp_virtual(request_t *request, fr_pair_t const *check_item) { paircmp_t *c; for (c = cmp; c; c = c->next) { if (c->da == check_item->da) { - return (c->compare)(c->instance, request, request_list, check_item); + return (c->compare)(c->instance, request, check_item); } } @@ -585,7 +578,7 @@ int paircmp(request_t *request, /* * OK it is present now compare them. */ - compare = paircmp_func(request, auth_item, request_list, check_item); + compare = paircmp_func(request, auth_item, check_item); switch (check_item->op) { case T_OP_EQ: default: @@ -678,7 +671,7 @@ int paircmp_find(fr_dict_attr_t const *da) * - <0 on error */ int paircmp_register_by_name(char const *name, fr_dict_attr_t const *from, - bool first_only, RAD_COMPARE_FUNC func, void *instance) + bool first_only, fr_paircmp_func_t func, void *instance) { fr_dict_attr_flags_t flags; fr_dict_attr_t const *da; @@ -726,7 +719,7 @@ int paircmp_register_by_name(char const *name, fr_dict_attr_t const *from, * @return 0 */ int paircmp_register(fr_dict_attr_t const *da, fr_dict_attr_t const *from, - bool first_only, RAD_COMPARE_FUNC func, void *instance) + bool first_only, fr_paircmp_func_t func, void *instance) { paircmp_t *c; @@ -751,7 +744,7 @@ int paircmp_register(fr_dict_attr_t const *da, fr_dict_attr_t const *from, * @param[in] da dict reference to unregister for. * @param[in] func comparison function to remove. */ -void paircmp_unregister(fr_dict_attr_t const *da, RAD_COMPARE_FUNC func) +void paircmp_unregister(fr_dict_attr_t const *da, fr_paircmp_func_t func) { paircmp_t *c, *last; diff --git a/src/lib/server/paircmp.h b/src/lib/server/paircmp.h index 6b78d84d904..fc85ffa9eeb 100644 --- a/src/lib/server/paircmp.h +++ b/src/lib/server/paircmp.h @@ -35,25 +35,23 @@ extern "C" { #include /* for paircmp_register */ -typedef int (*RAD_COMPARE_FUNC)(void *instance, request_t *,fr_pair_list_t *, fr_pair_t const *); +typedef int (*fr_paircmp_func_t)(void *instance, request_t *, fr_pair_t const *); int paircmp_pairs(request_t *request, fr_pair_t const *check, fr_pair_t *vp); int paircmp(request_t *request, fr_pair_list_t *request_list, fr_pair_list_t *check_list); -int paircmp_virtual(request_t *request, - fr_pair_list_t *request_list, - fr_pair_t const *check_item); +int paircmp_virtual(request_t *request, fr_pair_t const *check_item); int paircmp_find(fr_dict_attr_t const *da); int paircmp_register_by_name(char const *name, fr_dict_attr_t const *from, - bool first_only, RAD_COMPARE_FUNC func, void *instance); + bool first_only, fr_paircmp_func_t func, void *instance); int paircmp_register(fr_dict_attr_t const *attribute, fr_dict_attr_t const *from, - bool first_only, RAD_COMPARE_FUNC func, void *instance); + bool first_only, fr_paircmp_func_t func, void *instance); -void paircmp_unregister(fr_dict_attr_t const *attr, RAD_COMPARE_FUNC func); +void paircmp_unregister(fr_dict_attr_t const *attr, fr_paircmp_func_t func); void paircmp_unregister_instance(void *instance); diff --git a/src/modules/rlm_ldap/rlm_ldap.c b/src/modules/rlm_ldap/rlm_ldap.c index 7b908e590f3..bbfaf3130e7 100644 --- a/src/modules/rlm_ldap/rlm_ldap.c +++ b/src/modules/rlm_ldap/rlm_ldap.c @@ -799,13 +799,12 @@ free_urldesc: * * @param instance of the rlm_ldap module. * @param request Current request. - * @param request_list Unknown. * @param check Which group to check for user membership. * @return * - 1 on failure (or if the user is not a member). * - 0 on success. */ -static int rlm_ldap_groupcmp(void *instance, request_t *request, UNUSED fr_pair_list_t *request_list, fr_pair_t const *check) +static int rlm_ldap_groupcmp(void *instance, request_t *request, fr_pair_t const *check) { rlm_ldap_t const *inst = talloc_get_type_abort_const(instance, rlm_ldap_t); fr_ldap_thread_t *thread = talloc_get_type_abort(module_rlm_thread_by_data(inst)->data, fr_ldap_thread_t); diff --git a/src/modules/rlm_logintime/rlm_logintime.c b/src/modules/rlm_logintime/rlm_logintime.c index 0217b632260..9b5f5fe4ba5 100644 --- a/src/modules/rlm_logintime/rlm_logintime.c +++ b/src/modules/rlm_logintime/rlm_logintime.c @@ -78,7 +78,7 @@ fr_dict_attr_autoload_t rlm_logintime_dict_attr[] = { /* * Compare the current time to a range. */ -static int timecmp(UNUSED void *instance, request_t *request, UNUSED fr_pair_list_t *request_list, fr_pair_t const *check) +static int timecmp(UNUSED void *instance, request_t *request, fr_pair_t const *check) { fr_time_delta_t left; @@ -96,8 +96,7 @@ static int timecmp(UNUSED void *instance, request_t *request, UNUSED fr_pair_lis /* * Time-Of-Day support */ -static int time_of_day(UNUSED void *instance, request_t *request, - UNUSED fr_pair_list_t *request_list, fr_pair_t const *check) +static int time_of_day(UNUSED void *instance, request_t *request, fr_pair_t const *check) { int scan; int hhmmss, when; diff --git a/src/modules/rlm_sql/rlm_sql.c b/src/modules/rlm_sql/rlm_sql.c index 4d3130043e9..5408df0f9d6 100644 --- a/src/modules/rlm_sql/rlm_sql.c +++ b/src/modules/rlm_sql/rlm_sql.c @@ -760,11 +760,9 @@ static int sql_get_grouplist(rlm_sql_t const *inst, rlm_sql_handle_t **handle, r * The group membership query should only return one element which is the username. The returned * username will then be checked with the passed check string. */ -static int sql_groupcmp(void *instance, request_t *request, UNUSED fr_pair_list_t *request_list, - fr_pair_t const *check) CC_HINT(nonnull (1, 2, 4)); +static int sql_groupcmp(void *instance, request_t *request, fr_pair_t const *check) CC_HINT(nonnull); -static int sql_groupcmp(void *instance, request_t *request, UNUSED fr_pair_list_t *request_list, - fr_pair_t const *check) +static int sql_groupcmp(void *instance, request_t *request, fr_pair_t const *check) { rlm_sql_handle_t *handle; rlm_sql_t const *inst = talloc_get_type_abort_const(instance, rlm_sql_t); diff --git a/src/modules/rlm_sqlcounter/rlm_sqlcounter.c b/src/modules/rlm_sqlcounter/rlm_sqlcounter.c index 5efedd69141..d07c33a8fbf 100644 --- a/src/modules/rlm_sqlcounter/rlm_sqlcounter.c +++ b/src/modules/rlm_sqlcounter/rlm_sqlcounter.c @@ -328,7 +328,7 @@ static ssize_t sqlcounter_expand(char *out, int outlen, rlm_sqlcounter_t const * /* * See if the counter matches. */ -static int counter_cmp(void *instance, request_t *request, UNUSED fr_pair_list_t *request_list , fr_pair_t const *check) +static int counter_cmp(void *instance, request_t *request, fr_pair_t const *check) { rlm_sqlcounter_t const *inst = talloc_get_type_abort_const(instance, rlm_sqlcounter_t); uint64_t counter; diff --git a/src/modules/rlm_test/rlm_test.c b/src/modules/rlm_test/rlm_test.c index d3d0be0f520..a318b16eb74 100644 --- a/src/modules/rlm_test/rlm_test.c +++ b/src/modules/rlm_test/rlm_test.c @@ -192,7 +192,7 @@ fr_dict_attr_autoload_t rlm_test_dict_attr[] = { { NULL } }; -static int rlm_test_cmp(UNUSED void *instance, request_t *request, UNUSED fr_pair_list_t *request_list, fr_pair_t const *check) +static int rlm_test_cmp(UNUSED void *instance, request_t *request, fr_pair_t const *check) { fr_assert(check->vp_type == FR_TYPE_STRING); diff --git a/src/modules/rlm_unix/rlm_unix.c b/src/modules/rlm_unix/rlm_unix.c index b6de30e8d95..9507ceb43d0 100644 --- a/src/modules/rlm_unix/rlm_unix.c +++ b/src/modules/rlm_unix/rlm_unix.c @@ -99,8 +99,7 @@ fr_dict_attr_autoload_t rlm_unix_dict_attr[] = { /* * The Unix-Group = handler. */ -static int groupcmp(UNUSED void *instance, request_t *request, UNUSED fr_pair_list_t *request_list, - fr_pair_t const *check) +static int groupcmp(UNUSED void *instance, request_t *request, fr_pair_t const *check) { struct passwd *pwd; struct group *grp; diff --git a/src/modules/rlm_winbind/rlm_winbind.c b/src/modules/rlm_winbind/rlm_winbind.c index a3f3777d35e..675e59ca9ce 100644 --- a/src/modules/rlm_winbind/rlm_winbind.c +++ b/src/modules/rlm_winbind/rlm_winbind.c @@ -83,7 +83,7 @@ fr_dict_attr_autoload_t rlm_winbind_dict_attr[] = { * - 0 user is in group * - 1 failure or user is not in group */ -static int winbind_group_cmp(void *instance, request_t *request, UNUSED fr_pair_list_t *request_list, fr_pair_t const *check) +static int winbind_group_cmp(void *instance, request_t *request, fr_pair_t const *check) { rlm_winbind_t *inst = talloc_get_type_abort(instance, rlm_winbind_t); int ret = 1;