From: Alan T. DeKok Date: Fri, 19 Nov 2021 19:49:40 +0000 (-0500) Subject: T_OP_ADD / T_OP_SUB -> T_OP_ADD_EQ / T_OP_SUB_EQ X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=1d0aa644b3c535a6c9c07cc7af60f80cac5e17ad;p=thirdparty%2Ffreeradius-server.git T_OP_ADD / T_OP_SUB -> T_OP_ADD_EQ / T_OP_SUB_EQ because they have an equals sign, too. This change is in preparation for allowing many more tokens --- diff --git a/src/bin/radsniff.c b/src/bin/radsniff.c index 531a5447d9c..41279e763a7 100644 --- a/src/bin/radsniff.c +++ b/src/bin/radsniff.c @@ -1479,7 +1479,7 @@ static void rs_packet_process(uint64_t count, rs_event_t *event, struct pcap_pkt * The delay is so we can detect retransmissions. */ original->linked = talloc_steal(original, packet); - fr_pair_list_move(&original->link_vps, &decoded, T_OP_ADD); /* Move the vps over */ + fr_pair_list_move(&original->link_vps, &decoded, T_OP_ADD_EQ); /* Move the vps over */ rs_tv_add_ms(&header->ts, conf->stats.timeout, &original->when); if (fr_event_timer_at(NULL, event->list, &original->event, fr_time_from_timeval(&original->when), _rs_event, original) < 0) { @@ -1672,7 +1672,7 @@ static void rs_packet_process(uint64_t count, rs_event_t *event, struct pcap_pkt fr_pair_list_free(&original->packet_vps); fr_radius_packet_free(&original->packet); original->packet = talloc_steal(original, packet); - fr_pair_list_move(&original->packet_vps, &decoded, T_OP_ADD); + fr_pair_list_move(&original->packet_vps, &decoded, T_OP_ADD_EQ); /* Request may need to be reinserted as the 5 tuple of the response may of changed */ if (rs_packet_cmp(original, &search) != 0) { @@ -1683,7 +1683,7 @@ static void rs_packet_process(uint64_t count, rs_event_t *event, struct pcap_pkt fr_pair_list_free(&original->expect_vps); fr_radius_packet_free(&original->expect); original->expect = talloc_steal(original, search.expect); - fr_pair_list_move(&original->expect_vps, &search.expect_vps, T_OP_ADD); + fr_pair_list_move(&original->expect_vps, &search.expect_vps, T_OP_ADD_EQ); /* Disarm the timer for the cleanup event for the original request */ fr_event_timer_delete(&original->event); @@ -1700,10 +1700,10 @@ static void rs_packet_process(uint64_t count, rs_event_t *event, struct pcap_pkt original->capture_p = original->capture; original->packet = talloc_steal(original, packet); - fr_pair_list_move(&original->packet_vps, &decoded, T_OP_ADD); + fr_pair_list_move(&original->packet_vps, &decoded, T_OP_ADD_EQ); original->expect = talloc_steal(original, search.expect); - fr_pair_list_move(&original->expect_vps, &search.expect_vps, T_OP_ADD); + fr_pair_list_move(&original->expect_vps, &search.expect_vps, T_OP_ADD_EQ); if (!fr_pair_list_empty(&search.link_vps)) { bool ret; @@ -1714,7 +1714,7 @@ static void rs_packet_process(uint64_t count, rs_event_t *event, struct pcap_pkt vp = fr_pair_list_next(&search.link_vps, vp)) { fr_pair_steal(original, vp); } - fr_pair_list_move(&original->link_vps, &search.link_vps, T_OP_ADD); + fr_pair_list_move(&original->link_vps, &search.link_vps, T_OP_ADD_EQ); /* We should never have conflicts */ ret = fr_rb_insert(link_tree, original); diff --git a/src/bin/unit_test_attribute.c b/src/bin/unit_test_attribute.c index 3c57626b314..ca30dcef762 100644 --- a/src/bin/unit_test_attribute.c +++ b/src/bin/unit_test_attribute.c @@ -1168,10 +1168,10 @@ static size_t command_normalise_attribute(command_result_t *result, command_file } static const fr_token_t token2op[UINT8_MAX + 1] = { - [ '+' ] = T_OP_ADD, - [ '-' ] = T_OP_SUB, + [ '+' ] = T_OP_ADD_EQ, + [ '-' ] = T_OP_SUB_EQ, [ '^' ] = T_OP_PREPEND, - [ '.' ] = T_OP_ADD, + [ '.' ] = T_OP_ADD_EQ, }; /** Perform calculations diff --git a/src/lib/ldap/map.c b/src/lib/ldap/map.c index 9e43e5714c8..510a6527ca0 100644 --- a/src/lib/ldap/map.c +++ b/src/lib/ldap/map.c @@ -139,7 +139,7 @@ int fr_ldap_map_getvalue(TALLOC_CTX *ctx, fr_pair_list_t *out, request_t *reques /* * Only process the first value, unless the operator is += */ - if (map->op != T_OP_ADD) break; + if (map->op != T_OP_ADD_EQ) break; } break; @@ -170,7 +170,7 @@ int fr_ldap_map_getvalue(TALLOC_CTX *ctx, fr_pair_list_t *out, request_t *reques /* * Only process the first value, unless the operator is += */ - if (map->op != T_OP_ADD) break; + if (map->op != T_OP_ADD_EQ) break; } break; @@ -231,8 +231,8 @@ int fr_ldap_map_verify(map_t *map, UNUSED void *instance) switch (map->op) { case T_OP_SET: case T_OP_EQ: - case T_OP_SUB: - case T_OP_ADD: + case T_OP_SUB_EQ: + case T_OP_ADD_EQ: break; default: diff --git a/src/lib/server/cf_file.c b/src/lib/server/cf_file.c index 49cd14c1e64..302cbedef01 100644 --- a/src/lib/server/cf_file.c +++ b/src/lib/server/cf_file.c @@ -1877,8 +1877,8 @@ static int parse_input(cf_stack_t *stack) */ name2_token = gettoken(&ptr, buff[2], stack->bufsize, false); switch (name2_token) { - case T_OP_ADD: - case T_OP_SUB: + case T_OP_ADD_EQ: + case T_OP_SUB_EQ: case T_OP_NE: case T_OP_GE: case T_OP_GT: diff --git a/src/lib/server/map.c b/src/lib/server/map.c index eaef7814e68..3804da5d2bb 100644 --- a/src/lib/server/map.c +++ b/src/lib/server/map.c @@ -221,8 +221,8 @@ fr_table_num_sorted_t const map_assignment_op_table[] = { { L("!*"), T_OP_CMP_FALSE }, { L("!="), T_OP_NE }, { L("!~"), T_OP_REG_NE }, - { L("+="), T_OP_ADD }, - { L("-="), T_OP_SUB }, + { L("+="), T_OP_ADD_EQ }, + { L("-="), T_OP_SUB_EQ }, { L(":="), T_OP_SET }, { L("<"), T_OP_LT }, { L("<="), T_OP_LE }, @@ -1205,7 +1205,7 @@ int map_to_vp(TALLOC_CTX *ctx, fr_pair_list_t *out, request_t *request, map_t co for (vp = fr_pair_list_head(&found); vp; vp = fr_pair_list_next(&found, vp)) { - vp->op = T_OP_ADD; + vp->op = T_OP_ADD_EQ; } fr_pair_list_append(out, &found); @@ -1578,8 +1578,8 @@ int map_to_request(request_t *request, map_t const *map, radius_map_getvalue_t f fr_assert(tmpl_is_exec(map->rhs)); FALL_THROUGH; - case T_OP_ADD: - fr_pair_list_move(list, &src_list, T_OP_ADD); + case T_OP_ADD_EQ: + fr_pair_list_move(list, &src_list, T_OP_ADD_EQ); fr_pair_list_free(&src_list); } goto update; @@ -1647,7 +1647,7 @@ int map_to_request(request_t *request, map_t const *map, radius_map_getvalue_t f * - If tmpl_num(map->lhs) == NUM_ANY, we compare all instances of the dst attribute * against each of the src_list attributes. */ - case T_OP_SUB: + case T_OP_SUB_EQ: /* We didn't find any attributes earlier */ if (!dst) { fr_pair_list_free(&src_list); @@ -1823,7 +1823,7 @@ int map_to_request(request_t *request, map_t const *map, radius_map_getvalue_t f /* * += - Add all src_list attributes to the destination */ - case T_OP_ADD: + case T_OP_ADD_EQ: { tmpl_attr_extent_t *extent = NULL; fr_dlist_head_t leaf; diff --git a/src/lib/server/map_async.c b/src/lib/server/map_async.c index 629ffa621dd..2a57499b5b7 100644 --- a/src/lib/server/map_async.c +++ b/src/lib/server/map_async.c @@ -1050,7 +1050,7 @@ int map_list_mod_apply(request_t *request, vp_list_mod_t const *vlm) } goto finish; - case T_OP_ADD: + case T_OP_ADD_EQ: { fr_pair_list_t vp_from; @@ -1128,7 +1128,7 @@ int map_list_mod_apply(request_t *request, vp_list_mod_t const *vlm) * - If tmpl_num(map->lhs) == NUM_ANY, we compare all instances of the found attribute * against each of the src_list attributes. */ - case T_OP_SUB: + case T_OP_SUB_EQ: { /* We didn't find any attributes earlier */ if (!found) goto finish; @@ -1170,7 +1170,7 @@ int map_list_mod_apply(request_t *request, vp_list_mod_t const *vlm) /* * += - Add all attributes to the destination */ - case T_OP_ADD: + case T_OP_ADD_EQ: do_add: { fr_pair_list_t vp_from; diff --git a/src/lib/server/paircmp.c b/src/lib/server/paircmp.c index aeb24b87e13..c5a0d33403f 100644 --- a/src/lib/server/paircmp.c +++ b/src/lib/server/paircmp.c @@ -513,7 +513,7 @@ int paircmp(request_t *request, * sent to us by the user. It ALWAYS matches. */ if ((check_item->op == T_OP_SET) || - (check_item->op == T_OP_ADD)) { + (check_item->op == T_OP_ADD_EQ)) { continue; } diff --git a/src/lib/server/pairmove.c b/src/lib/server/pairmove.c index 6190fdf3ab3..e08d6226e8f 100644 --- a/src/lib/server/pairmove.c +++ b/src/lib/server/pairmove.c @@ -103,7 +103,7 @@ void radius_pairmove(request_t *request, fr_pair_list_t *to, fr_pair_list_t *fro * is empty, and we're supposed to replace or * "add if not existing". */ - if (from_vp->op == T_OP_ADD) goto do_append; + if (from_vp->op == T_OP_ADD_EQ) goto do_append; /* * The attribute needs to be prepended to the "to" @@ -176,7 +176,7 @@ void radius_pairmove(request_t *request, fr_pair_list_t *to, fr_pair_list_t *fro * Delete all matching attributes from * "to" */ - if ((from_vp->op == T_OP_SUB) || + if ((from_vp->op == T_OP_SUB_EQ) || (from_vp->op == T_OP_CMP_EQ) || (from_vp->op == T_OP_LE) || (from_vp->op == T_OP_GE)) { @@ -206,7 +206,7 @@ void radius_pairmove(request_t *request, fr_pair_list_t *to, fr_pair_list_t *fro if (rcode != 0) goto delete; break; - case T_OP_SUB: + case T_OP_SUB_EQ: if (rcode == 0) { delete: RDEBUG4("::: DELETING %s FROM %d TO %d", diff --git a/src/lib/server/users_file.c b/src/lib/server/users_file.c index cdbd3b93b22..dd79a951db7 100644 --- a/src/lib/server/users_file.c +++ b/src/lib/server/users_file.c @@ -96,7 +96,7 @@ static fr_table_num_sorted_t const check_cmp_op_table[] = { { L("!*"), T_OP_CMP_FALSE }, { L("!="), T_OP_NE }, { L("!~"), T_OP_REG_NE }, - { L("+="), T_OP_ADD }, + { L("+="), T_OP_ADD_EQ }, { L(":="), T_OP_SET }, { L("<"), T_OP_LT }, { L("<="), T_OP_LE }, diff --git a/src/lib/unlang/compile.c b/src/lib/unlang/compile.c index 1a72811b665..c4af73e0a3b 100644 --- a/src/lib/unlang/compile.c +++ b/src/lib/unlang/compile.c @@ -916,7 +916,7 @@ int unlang_fixup_update(map_t *map, UNUSED void *ctx) case T_OP_CMP_FALSE: break; - case T_OP_ADD: + case T_OP_ADD_EQ: if (!tmpl_is_list(map->rhs) && !tmpl_is_exec(map->rhs)) { cf_log_err(map->ci, "Invalid source for list assignment '%s += ...'", map->lhs->name); diff --git a/src/lib/util/calc.c b/src/lib/util/calc.c index 780b22ef799..3a846ceb2d8 100644 --- a/src/lib/util/calc.c +++ b/src/lib/util/calc.c @@ -221,6 +221,7 @@ static int calc_date(UNUSED TALLOC_CTX *ctx, fr_value_box_t *dst, fr_value_box_t { fr_value_box_t one, two; bool overflow; + int64_t when; fr_assert(dst->type == FR_TYPE_DATE); @@ -245,17 +246,17 @@ static int calc_date(UNUSED TALLOC_CTX *ctx, fr_value_box_t *dst, fr_value_box_t } switch (op) { - case T_OP_ADD: - dst->vb_date = fr_unix_time_from_integer(&overflow, - fr_time_delta_unwrap(a->vb_time_delta) + fr_time_delta_unwrap(b->vb_time_delta), - FR_TIME_RES_NSEC); + case T_OP_ADD_EQ: + if (!fr_add(&when, fr_time_delta_unwrap(a->vb_time_delta), fr_time_delta_unwrap(b->vb_time_delta))) return OVERFLOW; + + dst->vb_date = fr_unix_time_from_integer(&overflow, when, FR_TIME_RES_NSEC); if (overflow) return OVERFLOW; /* overflow */ break; - case T_OP_SUB: - dst->vb_date = fr_unix_time_from_integer(&overflow, - fr_time_delta_unwrap(a->vb_time_delta) - fr_time_delta_unwrap(b->vb_time_delta), - FR_TIME_RES_NSEC); + case T_OP_SUB_EQ: + if (!fr_sub(&when, fr_time_delta_unwrap(a->vb_time_delta), fr_time_delta_unwrap(b->vb_time_delta))) return OVERFLOW; + + dst->vb_date = fr_unix_time_from_integer(&overflow, when, FR_TIME_RES_NSEC); if (overflow) return OVERFLOW; /* overflow */ break; @@ -269,6 +270,7 @@ static int calc_date(UNUSED TALLOC_CTX *ctx, fr_value_box_t *dst, fr_value_box_t static int calc_time_delta(UNUSED TALLOC_CTX *ctx, fr_value_box_t *dst, fr_value_box_t const *a, fr_token_t op, fr_value_box_t const *b) { fr_value_box_t one, two; + int64_t when; fr_assert(dst->type == FR_TYPE_TIME_DELTA); @@ -277,7 +279,7 @@ static int calc_time_delta(UNUSED TALLOC_CTX *ctx, fr_value_box_t *dst, fr_value * cannot add two dates to get a time delta. */ if ((a->type == FR_TYPE_DATE) && (b->type == FR_TYPE_DATE)) { - if (op != T_OP_SUB) { + if (op != T_OP_SUB_EQ) { fr_strerror_const("Cannot perform operation on two dates"); return -1; } @@ -311,12 +313,14 @@ static int calc_time_delta(UNUSED TALLOC_CTX *ctx, fr_value_box_t *dst, fr_value } switch (op) { - case T_OP_ADD: - dst->vb_time_delta = fr_time_delta_wrap(fr_time_delta_unwrap(a->vb_time_delta) + fr_time_delta_unwrap(b->vb_time_delta)); + case T_OP_ADD_EQ: + if (!fr_add(&when, fr_time_delta_unwrap(a->vb_time_delta), fr_time_delta_unwrap(b->vb_time_delta))) return OVERFLOW; + dst->vb_time_delta = fr_time_delta_wrap(when); break; - case T_OP_SUB: - dst->vb_time_delta = fr_time_delta_wrap(fr_time_delta_unwrap(a->vb_time_delta) - fr_time_delta_unwrap(b->vb_time_delta)); + case T_OP_SUB_EQ: + if (!fr_sub(&when, fr_time_delta_unwrap(a->vb_time_delta), fr_time_delta_unwrap(b->vb_time_delta))) return OVERFLOW; + dst->vb_time_delta = fr_time_delta_wrap(when); break; default: @@ -363,7 +367,7 @@ static int calc_octets(TALLOC_CTX *ctx, fr_value_box_t *dst, fr_value_box_t cons fr_value_box_memdup_shallow(dst, dst->enumv, buf, len, a->tainted | b->tainted); break; - case T_OP_ADD: /* dst = a . b */ + case T_OP_ADD_EQ: /* dst = a . b */ buf = talloc_array(ctx, uint8_t, len); if (!buf) goto oom; @@ -421,7 +425,7 @@ static int calc_string(TALLOC_CTX *ctx, fr_value_box_t *dst, fr_value_box_t cons fr_value_box_strdup_shallow(dst, dst->enumv, buf, a->tainted | b->tainted); break; - case T_OP_ADD: + case T_OP_ADD_EQ: buf = talloc_array(ctx, char, len + 1); if (!buf) goto oom; @@ -506,7 +510,7 @@ static int calc_ipv4_addr(UNUSED TALLOC_CTX *ctx, fr_value_box_t *dst, fr_value_ b = &two; switch (op) { - case T_OP_ADD: + case T_OP_ADD_EQ: /* * For simplicity, make sure that the prefix is first. */ @@ -605,7 +609,7 @@ static int calc_ipv6_addr(UNUSED TALLOC_CTX *ctx, fr_value_box_t *dst, fr_value_ b = &two; switch (op) { - case T_OP_ADD: + case T_OP_ADD_EQ: /* * For simplicity, make sure that the prefix is first. */ @@ -670,11 +674,11 @@ static int calc_float32(UNUSED TALLOC_CTX *ctx, fr_value_box_t *dst, fr_value_bo } switch (op) { - case T_OP_ADD: + case T_OP_ADD_EQ: dst->vb_float32 = a->vb_float64 + b->vb_float64; break; - case T_OP_SUB: + case T_OP_SUB_EQ: dst->vb_float32 = a->vb_float64 - b->vb_float64; break; @@ -705,11 +709,11 @@ static int calc_float64(UNUSED TALLOC_CTX *ctx, fr_value_box_t *dst, fr_value_bo } switch (op) { - case T_OP_ADD: + case T_OP_ADD_EQ: dst->vb_float64 = a->vb_float64 + b->vb_float64; break; - case T_OP_SUB: + case T_OP_SUB_EQ: dst->vb_float64 = a->vb_float64 - b->vb_float64; break; @@ -724,11 +728,11 @@ static int calc_float64(UNUSED TALLOC_CTX *ctx, fr_value_box_t *dst, fr_value_bo #define CALC(_t) static int calc_ ## _t(UNUSED TALLOC_CTX *ctx, fr_value_box_t *dst, fr_value_box_t const *in1, fr_token_t op, fr_value_box_t const *in2) \ { \ switch (op) { \ - case T_OP_ADD: \ + case T_OP_ADD_EQ: \ if (!fr_add(&dst->vb_ ## _t, in1->vb_ ## _t, in2->vb_ ## _t)) return OVERFLOW; \ break; \ \ - case T_OP_SUB: \ + case T_OP_SUB_EQ: \ if (!fr_sub(&dst->vb_ ## _t, in1->vb_ ## _t, in2->vb_ ## _t)) return OVERFLOW; \ break; \ \ @@ -935,8 +939,8 @@ int fr_value_calc(TALLOC_CTX *ctx, fr_value_box_t *dst, fr_type_t hint, fr_value hint = FR_TYPE_BOOL; break; - case T_OP_ADD: - case T_OP_SUB: + case T_OP_ADD_EQ: + case T_OP_SUB_EQ: if (a->type == b->type) { hint = a->type; break; @@ -1031,8 +1035,8 @@ int fr_value_calc(TALLOC_CTX *ctx, fr_value_box_t *dst, fr_type_t hint, fr_value rcode = 0; break; - case T_OP_ADD: - case T_OP_SUB: + case T_OP_ADD_EQ: + case T_OP_SUB_EQ: case T_OP_PREPEND: fr_assert(hint != FR_TYPE_NULL); diff --git a/src/lib/util/dpair_legacy.c b/src/lib/util/dpair_legacy.c index 3afee983e04..c8b7c8ced86 100644 --- a/src/lib/util/dpair_legacy.c +++ b/src/lib/util/dpair_legacy.c @@ -726,7 +726,7 @@ void fr_pair_list_move(fr_pair_list_t *to, fr_pair_list_t *from, fr_token_t op) * Move it from the old list and add it * to the new list. */ - case T_OP_ADD: + case T_OP_ADD_EQ: do_add: j = fr_pair_list_next(from, i); fr_pair_remove(from, i); diff --git a/src/lib/util/pair_legacy.c b/src/lib/util/pair_legacy.c index b942862c28f..eaf2dd57c77 100644 --- a/src/lib/util/pair_legacy.c +++ b/src/lib/util/pair_legacy.c @@ -787,7 +787,7 @@ void fr_pair_list_move(fr_pair_list_t *to, fr_pair_list_t *from, fr_token_t op) * Move it from the old list and add it * to the new list. */ - case T_OP_ADD: + case T_OP_ADD_EQ: do_add: j = fr_pair_list_next(from, i); fr_pair_remove(from, i); diff --git a/src/lib/util/pair_legacy_tests.c b/src/lib/util/pair_legacy_tests.c index 7ff9c8c09cc..96388a09e0f 100644 --- a/src/lib/util/pair_legacy_tests.c +++ b/src/lib/util/pair_legacy_tests.c @@ -225,7 +225,7 @@ static void test_fr_pair_list_move(void) TEST_CHECK(pfiledone == true); TEST_CASE("Move pair from 'old_list' to 'new_list' using fr_pair_list_move()"); - fr_pair_list_move(&new_list, &old_list, T_OP_ADD); + fr_pair_list_move(&new_list, &old_list, T_OP_ADD_EQ); TEST_CASE("Looking for Test-Uint32-0"); TEST_CHECK((vp = fr_pair_find_by_da_idx(&new_list, fr_dict_attr_test_uint32, 0)) != NULL); diff --git a/src/lib/util/token.c b/src/lib/util/token.c index dd85670d787..4a7928d3f2a 100644 --- a/src/lib/util/token.c +++ b/src/lib/util/token.c @@ -39,8 +39,8 @@ fr_table_num_ordered_t const fr_tokens_table[] = { { L(")"), T_RBRACE }, { L(","), T_COMMA }, { L("++"), T_OP_INCRM }, - { L("+="), T_OP_ADD }, - { L("-="), T_OP_SUB }, + { L("+="), T_OP_ADD_EQ }, + { L("-="), T_OP_SUB_EQ }, { L(":="), T_OP_SET }, { L("=*"), T_OP_CMP_TRUE }, { L("!*"), T_OP_CMP_FALSE }, @@ -124,8 +124,8 @@ const char fr_token_quote[T_TOKEN_LAST + 1] = { const bool fr_assignment_op[T_TOKEN_LAST + 1] = { T(INCRM), - T(ADD), - T(SUB), + T(ADD_EQ), + T(SUB_EQ), T(SET), T(EQ), T(PREPEND), diff --git a/src/lib/util/token.h b/src/lib/util/token.h index 339ac85cc33..aede4e96488 100644 --- a/src/lib/util/token.h +++ b/src/lib/util/token.h @@ -46,8 +46,8 @@ typedef enum fr_token { T_SEMICOLON, /* ; */ T_OP_INCRM, /* ++ */ - T_OP_ADD, /* += */ - T_OP_SUB, /* -= 10 */ + T_OP_ADD_EQ, /* += */ + T_OP_SUB_EQ, /* -= 10 */ T_OP_SET, /* := */ T_OP_EQ, /* = */ T_OP_NE, /* != */ @@ -70,7 +70,7 @@ typedef enum fr_token { T_TOKEN_LAST } fr_token_t; -#define T_EQSTART T_OP_ADD +#define T_EQSTART T_OP_ADD_EQ #define T_EQEND (T_HASH) /** Macro to use as dflt diff --git a/src/modules/rlm_client/rlm_client.c b/src/modules/rlm_client/rlm_client.c index 1d2231aed87..53b9260cf30 100644 --- a/src/modules/rlm_client/rlm_client.c +++ b/src/modules/rlm_client/rlm_client.c @@ -93,7 +93,7 @@ static int _map_proc_client_get_vp(TALLOC_CTX *ctx, fr_pair_list_t *out, request vp->op = map->op; fr_pair_append(&head, vp); - if (map->op != T_OP_ADD) break; /* Create multiple attribute for multiple CONF_PAIRs */ + if (map->op != T_OP_ADD_EQ) break; /* Create multiple attribute for multiple CONF_PAIRs */ } fr_pair_list_append(out, &head); diff --git a/src/modules/rlm_csv/rlm_csv.c b/src/modules/rlm_csv/rlm_csv.c index cd2872c4841..7bb55e1c900 100644 --- a/src/modules/rlm_csv/rlm_csv.c +++ b/src/modules/rlm_csv/rlm_csv.c @@ -458,8 +458,8 @@ static int csv_map_verify(map_t *map, void *instance) switch (map->op) { case T_OP_SET: case T_OP_EQ: - case T_OP_SUB: - case T_OP_ADD: + case T_OP_SUB_EQ: + case T_OP_ADD_EQ: case T_OP_PREPEND: case T_OP_LT: case T_OP_GT: diff --git a/src/modules/rlm_exec/rlm_exec.c b/src/modules/rlm_exec/rlm_exec.c index bef6165bd09..4a1420d50ee 100644 --- a/src/modules/rlm_exec/rlm_exec.c +++ b/src/modules/rlm_exec/rlm_exec.c @@ -387,7 +387,7 @@ static unlang_action_t mod_exec_wait_resume(rlm_rcode_t *p_result, module_ctx_t ctx = tmpl_list_ctx(request, inst->output_list); fr_pair_list_afrom_box(ctx, &vps, request->dict, box); - if (!fr_pair_list_empty(&vps)) fr_pair_list_move(output_pairs, &vps, T_OP_ADD); + if (!fr_pair_list_empty(&vps)) fr_pair_list_move(output_pairs, &vps, T_OP_ADD_EQ); fr_dlist_talloc_free(&m->box); /* has been consumed */ } diff --git a/src/modules/rlm_files/rlm_files.c b/src/modules/rlm_files/rlm_files.c index 75b69158fb3..89c0487647c 100644 --- a/src/modules/rlm_files/rlm_files.c +++ b/src/modules/rlm_files/rlm_files.c @@ -489,7 +489,7 @@ redo: switch (map->op) { case T_OP_EQ: case T_OP_SET: - case T_OP_ADD: + case T_OP_ADD_EQ: fr_pair_list_init(&tmp_list); if (map_to_vp(request->control_ctx, &tmp_list, request, map, NULL) < 0) { fr_pair_list_free(&list); @@ -531,7 +531,7 @@ redo: /* * Move the control items over, too. */ - fr_pair_list_move(&request->control_pairs, &list, T_OP_ADD); + fr_pair_list_move(&request->control_pairs, &list, T_OP_ADD_EQ); fr_pair_list_free(&list); /* ctx may be reply */ diff --git a/src/modules/rlm_ldap/rlm_ldap.c b/src/modules/rlm_ldap/rlm_ldap.c index 5c2466135f1..d633a06a200 100644 --- a/src/modules/rlm_ldap/rlm_ldap.c +++ b/src/modules/rlm_ldap/rlm_ldap.c @@ -1595,7 +1595,7 @@ static unlang_action_t user_modify(rlm_rcode_t *p_result, rlm_ldap_t const *inst * T_OP_EQ is *NOT* supported, it is impossible to * support because of the lack of transactions in LDAP */ - case T_OP_ADD: + case T_OP_ADD_EQ: mod_s[total].mod_op = LDAP_MOD_ADD; break; @@ -1603,7 +1603,7 @@ static unlang_action_t user_modify(rlm_rcode_t *p_result, rlm_ldap_t const *inst mod_s[total].mod_op = LDAP_MOD_REPLACE; break; - case T_OP_SUB: + case T_OP_SUB_EQ: case T_OP_CMP_FALSE: mod_s[total].mod_op = LDAP_MOD_DELETE; break; diff --git a/src/modules/rlm_perl/rlm_perl.c b/src/modules/rlm_perl/rlm_perl.c index 507afdc2ef4..d59d0c85798 100644 --- a/src/modules/rlm_perl/rlm_perl.c +++ b/src/modules/rlm_perl/rlm_perl.c @@ -828,7 +828,7 @@ static int get_hv_content(TALLOC_CTX *ctx, request_t *request, HV *my_hv, fr_pai len = av_len(av); for (j = 0; j <= len; j++) { av_sv = av_fetch(av, j, 0); - ret = pairadd_sv(ctx, request, vps, key, *av_sv, T_OP_ADD, hash_name, list_name) + ret; + ret = pairadd_sv(ctx, request, vps, key, *av_sv, T_OP_ADD_EQ, hash_name, list_name) + ret; } } else ret = pairadd_sv(ctx, request, vps, key, res_sv, T_OP_EQ, hash_name, list_name) + ret; } diff --git a/src/modules/rlm_rest/rest.c b/src/modules/rlm_rest/rest.c index b2a39671a92..eabd0f097fe 100644 --- a/src/modules/rlm_rest/rest.c +++ b/src/modules/rlm_rest/rest.c @@ -1132,7 +1132,7 @@ static int json_pair_alloc(rlm_rest_t const *instance, rlm_rest_section_t const * Automagically switch the op for multivalued attributes. */ if (((flags.op == T_OP_SET) || (flags.op == T_OP_EQ)) && (i >= 1)) { - flags.op = T_OP_ADD; + flags.op = T_OP_ADD_EQ; } if (json_object_is_type(element, json_type_object) && !flags.is_json) {