mirror of
http://git.haproxy.org/git/haproxy.git/
synced 2024-12-14 15:34:35 +00:00
BUG/MEDIUM: acl: fix regression introduced by latest converters support
Since commit 348971e
(MEDIUM: acl: use the fetch syntax
'fetch(args),conv(),conv()' into the ACL keyword), ACLs wait on input
that may change. This is visible in the configuration below :
tcp-request inspect-delay 3s
tcp-request content accept if REQ_CONTENT
Nothing will pass before the end of the timer. This is because
historically, sample_process() was dedicated to stick tables where
it was absolutely necessary to wait for a stable sample. Now samples
are used by many other things and we can't afford this. So let's move
this check to the stick tables after the call to sample_process()
instead.
This is post-1.5-dev19 work, no backport is required.
This commit is contained in:
parent
26f4a04744
commit
67ff7e0af3
@ -839,9 +839,6 @@ struct sample *sample_process(struct proxy *px, struct session *l4, void *l7,
|
||||
if (!expr->fetch->process(px, l4, l7, opt, expr->arg_p, p, expr->fetch->kw))
|
||||
return NULL;
|
||||
|
||||
if ((p->flags & SMP_F_MAY_CHANGE) && !(opt & SMP_OPT_FINAL))
|
||||
return NULL; /* we can only use stable samples */
|
||||
|
||||
list_for_each_entry(conv_expr, &expr->conv_exprs, list) {
|
||||
/* we want to ensure that p->type can be casted into
|
||||
* conv_expr->conv->in_type. We have 3 possibilities :
|
||||
|
@ -615,6 +615,9 @@ struct stktable_key *stktable_fetch_key(struct stktable *t, struct proxy *px, st
|
||||
if (!smp)
|
||||
return NULL;
|
||||
|
||||
if ((smp->flags & SMP_F_MAY_CHANGE) && !(opt & SMP_OPT_FINAL))
|
||||
return NULL; /* we can only use stable samples */
|
||||
|
||||
if (!sample_to_key[smp->type][t->type])
|
||||
return NULL;
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user