From: Willy Tarreau Date: Thu, 26 Apr 2012 09:05:50 +0000 (+0200) Subject: MINOR: pattern: centralize handling of unstable data in pattern_process() X-Git-Tag: v1.5-dev9~33 X-Git-Url: http://git.ipfire.org/?a=commitdiff_plain;h=40aebd92399d3184758b312856b58a2eae2429e0;p=thirdparty%2Fhaproxy.git 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. --- diff --git a/src/pattern.c b/src/pattern.c index 2820cf60d6..66ebc62de6 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 :