]> git.ipfire.org Git - thirdparty/freeradius-server.git/commitdiff
remove request_list from paircmp callbacks
authorAlan T. DeKok <aland@freeradius.org>
Thu, 30 Jun 2022 12:29:25 +0000 (08:29 -0400)
committerAlan T. DeKok <aland@freeradius.org>
Sat, 2 Jul 2022 15:18:56 +0000 (11:18 -0400)
src/lib/server/cond_eval.c
src/lib/server/paircmp.c
src/lib/server/paircmp.h
src/modules/rlm_ldap/rlm_ldap.c
src/modules/rlm_logintime/rlm_logintime.c
src/modules/rlm_sql/rlm_sql.c
src/modules/rlm_sqlcounter/rlm_sqlcounter.c
src/modules/rlm_test/rlm_test.c
src/modules/rlm_unix/rlm_unix.c
src/modules/rlm_winbind/rlm_winbind.c

index 6a20971813f4dff316d24322ffa43adf45f76ed3..b4ac9adb15f3f574b208b47e837f9b1a158f47fc 100644 (file)
@@ -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;
index 4b50fd923c68f7c48121131bc9c5ed4be54159c8..1af93058933191b8c15893b38ef2df4af91f2f72 100644 (file)
@@ -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;
 
index 6b78d84d904d408e4972486a7bc6ee8b827cb11a..fc85ffa9eeb36facfe5a27dc506dd6d1270d842b 100644 (file)
@@ -35,25 +35,23 @@ extern "C" {
 #include <freeradius-devel/util/pair.h>
 
 /* 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);
 
index 7b908e590f33108cc68a991014b18da0f500426a..bbfaf3130e76adba807b44cc2a8c69ac5f07a6ec 100644 (file)
@@ -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);
index 0217b63226029580bd996dfd2745ebeeb67ea440..9b5f5fe4ba52b8e6c4d6253db10daca7984fdf66 100644 (file)
@@ -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;
index 4d3130043e93c64aa6405a3dff662c06d7e5da34..5408df0f9d6dcf9896fd1c4d4e3236f3b1a95cb6 100644 (file)
@@ -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);
index 5efedd69141fef3725edcb702758ff2b10256587..d07c33a8fbf1b9898c766958fd191b6a26a14207 100644 (file)
@@ -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;
index d3d0be0f520d6675c132659c5cf5d3016cc92daf..a318b16eb74df04ef67606453c10e0071e7f2da1 100644 (file)
@@ -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);
 
index b6de30e8d956a6111f473037a262ad90b95fdf42..9507ceb43d0c688000f85689667935525596f476 100644 (file)
@@ -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;
index a3f3777d35e37dc99962debd93c2067d44d7a7c3..675e59ca9cedc75e05fcf04e866accabd42ca6a8 100644 (file)
@@ -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;