mirror of
http://git.haproxy.org/git/haproxy.git/
synced 2025-01-10 16:00:08 +00:00
MINOR: vars: support storing empty sample data with a variable
Storing an unset sample (SMP_T_ANY == 0) will be used to only reserve the variable's space but associate no value. We need to slightly adjust var_to_smp() for this so that it considers a value-less variable as non existent and falls back to the default value.
This commit is contained in:
parent
4994b57728
commit
63c30667d7
@ -591,9 +591,9 @@ int vars_unset_by_name_ifexist(const char *name, size_t len, struct sample *smp)
|
||||
}
|
||||
|
||||
|
||||
/* This retrieves variable <name> from variables <vars>, and if found,
|
||||
* duplicates the result into sample <smp>. smp_dup() is used in order to
|
||||
* release the variables lock ASAP (so a pre-allocated chunk is obtained
|
||||
/* This retrieves variable <name> from variables <vars>, and if found and not
|
||||
* empty, duplicates the result into sample <smp>. smp_dup() is used in order
|
||||
* to release the variables lock ASAP (so a pre-allocated chunk is obtained
|
||||
* via get_trash_shunk()). The variables' lock is used for reads.
|
||||
*
|
||||
* The function returns 0 if the variable was not found and no default
|
||||
@ -607,7 +607,7 @@ static int var_to_smp(struct vars *vars, const char *name, struct sample *smp, c
|
||||
/* Get the variable entry. */
|
||||
HA_RWLOCK_RDLOCK(VARS_LOCK, &vars->rwlock);
|
||||
var = var_get(vars, name);
|
||||
if (!var) {
|
||||
if (!var || !var->data.type) {
|
||||
if (!def) {
|
||||
HA_RWLOCK_RDUNLOCK(VARS_LOCK, &vars->rwlock);
|
||||
return 0;
|
||||
|
Loading…
Reference in New Issue
Block a user