tree 31268dbc66979e69fe17cb89f3d578d9e0491aba
parent 1432a0c5db8af09f51ce2bd75f3a8ecda266aee9
author Thierry FOURNIER <tfournier@exceliance.fr> 1389968713 +0100
committer Willy Tarreau <w@1wt.eu> 1395075967 +0100
encoding latin1

MEDIUM: pattern: The function pattern_exec_match() returns "struct pattern" if the patten match.

Before this commit, the pattern_exec_match() function returns the
associate sample, the associate struct pattern or the associate struct
pattern_tree. This is complex to use, because we can check the type of
information returned.

Now the function return always a "struct pattern". If <fill> is not set,
only the value of the pointer can be used as boolean (NULL or other). If
<fill> is set, you can use the <smp> pointer and the pattern
information.

If information must be duplicated, it is stored in trash buffer.
Otherwise, the pattern can point on existing strings.
