tree ffcd56f64d11dce955a207808d5723d27ffeec02
parent 697d9f5ec975a8ca2922d214ec6c6f3327b8838e
author Valentine Krasnobaeva <vkrasnobaeva@haproxy.com> 1723483260 +0200
committer Willy Tarreau <w@1wt.eu> 1725952538 +0200
encoding latin1

BUG/MINOR: pattern: pat_ref_set: return 0 if err was found

pat_ref_set_elt() returns 0, if we are run out of memory or can't parse a new
map value. Any arror message emitted by pat_ref_set_elt() is saved in err
buffer, if its provided by caller. These error messages are cumulated during
the loop.

pat_ref_set() is used to update values in map, referred to the same given key.
If during the update pat_ref_set_elt() fails, let's retun 0 to caller
immediately. We have the same non-unique key and the same new value in each
loop. So it seems quite odd to cumulate the same error messages and print it in
CLI:

        > add map @1 mytest.map <<
        + 1.0.1.11 TestA
        + 1.0.1.11 TESTA
        + 1.0.1.11 test_a
        +

        > set map mytest.map 1.0.1.11 15
         unable to parse '15' unable to parse '15' unable to parse '15'.

cli_parse_set_map(), which calls pat_ref_set() to update map, will return only
one error message with this patch:

> set map mytest.map 1.0.1.11 15
 unable to parse '15'.

hlua_set_map() and http_action_set_map() don't provide error buffer and will
just exit on the first error.

This should be backported in all stable versions.

(cherry picked from commit 911f4d93d436a9067fb45168f70f79b5916489b0)
Signed-off-by: Christopher Faulet <cfaulet@haproxy.com>
(cherry picked from commit b4af0cff4850509b2d3060ef8ea9be1c248454d7)
Signed-off-by: Christopher Faulet <cfaulet@haproxy.com>
(cherry picked from commit 45b47685c234f0d978512af7c752a9d43ce8e875)
[wt: ctx adj]
Signed-off-by: Willy Tarreau <w@1wt.eu>
