]> git.ipfire.org Git - thirdparty/haproxy.git/commitdiff
MINOR: vars: Make vars_(un|)set_by_name(_ifexist|) return a success value
authorTim Duesterhus <tim@bastelstu.be>
Tue, 19 May 2020 11:49:40 +0000 (13:49 +0200)
committerChristopher Faulet <cfaulet@haproxy.com>
Mon, 25 May 2020 06:12:27 +0000 (08:12 +0200)
Change the return type from `void` to `int` and return whether setting
the variable was successful.

include/proto/vars.h
src/vars.c

index caf00ff685ac607cfc461b1b9a7521b88a02011c..81f99dfb3e75a745d54043a9966c299d4c8543a9 100644 (file)
@@ -7,9 +7,9 @@ void vars_init(struct vars *vars, enum vars_scope scope);
 void vars_prune(struct vars *vars, struct session *sess, struct stream *strm);
 void vars_prune_per_sess(struct vars *vars);
 int vars_get_by_name(const char *name, size_t len, struct sample *smp);
-void vars_set_by_name_ifexist(const char *name, size_t len, struct sample *smp);
-void vars_set_by_name(const char *name, size_t len, struct sample *smp);
-void vars_unset_by_name_ifexist(const char *name, size_t len, struct sample *smp);
+int vars_set_by_name_ifexist(const char *name, size_t len, struct sample *smp);
+int vars_set_by_name(const char *name, size_t len, struct sample *smp);
+int vars_unset_by_name_ifexist(const char *name, size_t len, struct sample *smp);
 int vars_get_by_desc(const struct var_desc *var_desc, struct sample *smp);
 int vars_check_arg(struct arg *arg, char **err);
 
index 08b1307f19c14036a94d6517df29aa8a30d25f5e..ec95aaa3deaa8c62948259acbb72432c6e418d72 100644 (file)
@@ -538,49 +538,50 @@ int vars_check_arg(struct arg *arg, char **err)
 }
 
 /* This function store a sample in a variable if it was already defined.
- * In error case, it fails silently.
+ * Returns zero on failure and non-zero otherwise. The variable not being
+ * defined is treated as a failure.
  */
-void vars_set_by_name_ifexist(const char *name, size_t len, struct sample *smp)
+int vars_set_by_name_ifexist(const char *name, size_t len, struct sample *smp)
 {
        enum vars_scope scope;
 
        /* Resolve name and scope. */
        name = register_name(name, len, &scope, 0, NULL);
        if (!name)
-               return;
+               return 0;
 
-       sample_store_stream(name, scope, smp);
+       return sample_store_stream(name, scope, smp);
 }
 
 
 /* This function store a sample in a variable.
- * In error case, it fails silently.
+ * Returns zero on failure and non-zero otherwise.
  */
-void vars_set_by_name(const char *name, size_t len, struct sample *smp)
+int vars_set_by_name(const char *name, size_t len, struct sample *smp)
 {
        enum vars_scope scope;
 
        /* Resolve name and scope. */
        name = register_name(name, len, &scope, 1, NULL);
        if (!name)
-               return;
+               return 0;
 
-       sample_store_stream(name, scope, smp);
+       return sample_store_stream(name, scope, smp);
 }
 
 /* This function unset a variable if it was already defined.
- * In error case, it fails silently.
+ * Returns zero on failure and non-zero otherwise.
  */
-void vars_unset_by_name_ifexist(const char *name, size_t len, struct sample *smp)
+int vars_unset_by_name_ifexist(const char *name, size_t len, struct sample *smp)
 {
        enum vars_scope scope;
 
        /* Resolve name and scope. */
        name = register_name(name, len, &scope, 0, NULL);
        if (!name)
-               return;
+               return 0;
 
-       sample_clear_stream(name, scope, smp);
+       return sample_clear_stream(name, scope, smp);
 }