From 40aebd92399d3184758b312856b58a2eae2429e0 Mon Sep 17 00:00:00 2001 From: Willy Tarreau Date: Thu, 26 Apr 2012 11:05:50 +0200 Subject: [PATCH] MINOR: pattern: centralize handling of unstable data in pattern_process() Pattern fetch functions currently check for unstable data and return 0 when SMP_F_MAY_CHANGE is set. Instead of doing this everywhere and having to support specific fetch functions, better do that in pattern_process() which is the one interested in having stable data. --- src/pattern.c | 3 +++ 1 file changed, 3 insertions(+) diff --git a/src/pattern.c b/src/pattern.c index 2820cf60d..66ebc62de 100644 --- a/src/pattern.c +++ b/src/pattern.c @@ -486,6 +486,9 @@ struct sample *pattern_process(struct proxy *px, struct session *l4, void *l7, if (!expr->fetch->process(px, l4, l7, opt, expr->arg_p, p)) return NULL; + if (p->flags & SMP_F_MAY_CHANGE) + return NULL; /* we can only use stable patterns */ + 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 :