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);
* 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;
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;
};
*/
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);
*/
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);
*
* @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.
*/
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;
*/
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);
}
}
* 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);
}
}
/*
* 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:
* - <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;
* @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;
* @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;
#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);
*
* @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);
/*
* 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;
/*
* 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;
* 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);
/*
* 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;
{ 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);
/*
* 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;
* - 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;