]> git.ipfire.org Git - thirdparty/freeradius-server.git/commitdiff
T_OP_ADD / T_OP_SUB -> T_OP_ADD_EQ / T_OP_SUB_EQ
authorAlan T. DeKok <aland@freeradius.org>
Fri, 19 Nov 2021 19:49:40 +0000 (14:49 -0500)
committerAlan T. DeKok <aland@freeradius.org>
Fri, 19 Nov 2021 20:37:00 +0000 (15:37 -0500)
because they have an equals sign, too.  This change is in preparation
for allowing many more tokens

23 files changed:
src/bin/radsniff.c
src/bin/unit_test_attribute.c
src/lib/ldap/map.c
src/lib/server/cf_file.c
src/lib/server/map.c
src/lib/server/map_async.c
src/lib/server/paircmp.c
src/lib/server/pairmove.c
src/lib/server/users_file.c
src/lib/unlang/compile.c
src/lib/util/calc.c
src/lib/util/dpair_legacy.c
src/lib/util/pair_legacy.c
src/lib/util/pair_legacy_tests.c
src/lib/util/token.c
src/lib/util/token.h
src/modules/rlm_client/rlm_client.c
src/modules/rlm_csv/rlm_csv.c
src/modules/rlm_exec/rlm_exec.c
src/modules/rlm_files/rlm_files.c
src/modules/rlm_ldap/rlm_ldap.c
src/modules/rlm_perl/rlm_perl.c
src/modules/rlm_rest/rest.c

index 531a5447d9cc567adc5b2ab59d5c035180e2339e..41279e763a7b457f5d528d25d229a03abc831353 100644 (file)
@@ -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);
index 3c57626b3144dcd6dffb6eccb25642abebf64927..ca30dcef762228ba1bbb1b9739edc2295df82dff 100644 (file)
@@ -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
index 9e43e5714c868671b45dbc24efc62d73d7d14947..510a6527ca06b65e09a0265e4885984bc049e1a7 100644 (file)
@@ -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:
index 49cd14c1e64753db338074f11013af56d54d4dcd..302cbedef0197f8d8b7a14cc29a73d90d2e90db5 100644 (file)
@@ -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:
index eaef7814e68b15378d83730822fe88a94e58030f..3804da5d2bbc5b772cba633cf83c0ffc5f95b449 100644 (file)
@@ -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;
index 629ffa621dde720853ff2f1042d892b0438b129c..2a57499b5b7523ecdfd950bf7b6591538f56000a 100644 (file)
@@ -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;
index aeb24b87e13b904fca6edff4a66ea275ce5c86c7..c5a0d33403f2b6416436e79b2fe0641ce5dbc672 100644 (file)
@@ -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;
                }
 
index 6190fdf3ab325f30abfdc96ed396d2818d963580..e08d6226e8f7d64a056cb624254ad56e21a8b805 100644 (file)
@@ -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",
index cdbd3b93b222d737a3d6d38ad227ce98ce5521e5..dd79a951db75d52dfb51404a80de2c511d6a6419 100644 (file)
@@ -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                 },
index 1a72811b665ce204d51516678e76eab52b16294d..c4af73e0a3babaa2dd3815b8b83495af39f68aa7 100644 (file)
@@ -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);
index 780b22ef79915b276122368de78ffeab6f0f1b1e..3a846ceb2d858e090a86a18e849e9c0381abe153 100644 (file)
@@ -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);
 
index 3afee983e048aa70daf4f8b4d9052f5adecd2774..c8b7c8ced8654ac9a48f931aa5655103dec60c2b 100644 (file)
@@ -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);
index b942862c28f6272c692c0a607d29cff82f6ce896..eaf2dd57c77f5386707bf742cd2a14e62748b4c2 100644 (file)
@@ -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);
index 7ff9c8c09cca56cfb1e3d9504b9fc24f5afd9b53..96388a09e0f5af03c04a760c261720924c0de8d8 100644 (file)
@@ -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);
index dd85670d78734b1f081ad76719f59cce0ff7d9b1..4a7928d3f2ac9c5235a1d63ab093ad894ccae778 100644 (file)
@@ -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),
index 339ac85cc3384fb9ef8471fe94b1efa45187e873..aede4e96488a4ff6b8d6e79d32f6f2d3abcd762c 100644 (file)
@@ -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
index 1d2231aed872bfd1c5c2e1777a9a5c6f92cd67ab..53b9260cf300069943aac8428f2c557bad34a6cf 100644 (file)
@@ -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);
index cd2872c48416a5f3cea7817834348813b18b891c..7bb55e1c900878935e80006d0de361a1a65540f7 100644 (file)
@@ -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:
index bef6165bd09dfc183ced5a0b1a8440c9dcc431dd..4a1420d50eee58738d776d9f298b9f4aad2aeccc 100644 (file)
@@ -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 */
                }
index 75b69158fb3095b44a747db0f85db560a7b31c2d..89c0487647c417a740513da940d73dee861f1ba5 100644 (file)
@@ -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 */
index 5c2466135f1a58de5877f08f91bb636269f97cdd..d633a06a2003c96194ebd986ade75019ede9c192 100644 (file)
@@ -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;
index 507afdc2ef4c05818ba04e66cc854bd23d9b1175..d59d0c85798407da7fbf95ad422b3b503486680a 100644 (file)
@@ -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;
        }
index b2a39671a92d740db4671d135bc9a8e57d38d6d1..eabd0f097fea933fd3bd05f16fb5b79aadfb5f01 100644 (file)
@@ -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) {