I am getting this error:

matching method 'found' cannot be used with fetch keyword 'req.payload'

In order to detect correct frame I do something like this do you think it is enough?

   acl px  req.payload(0,4) -m bin FF00FF00
   acl rib req.payload(5,4) -m bin 00000000

   tcp-request content accept if px WAIT_END
   tcp-request inspect-delay 1s

   stick-table type binary len 4 size 50k expire 30m
   stick on req.payload(5,4) table protokolX if px !rib

Presumably, I try to avoid stickiness on frames where ID is not set..



Dne 24.9.2015 v 10:46 Emeric Brun napsal(a):
On 09/24/2015 09:16 AM, Miloš Kozák wrote:
I did try even that..

Interesting thing happens when I set tcp-inspect delay to 10s, my stickiness 
rule appears after 30s. The problem is it takes very much of time, and the 
stickiness then actually does not work, i.e., I can see that every further 
response goes from different server. Also, the stickiness rule does not appear 
everytime, only exceptionally..

My stickiness rules goes from first packet hence only a few ms should be OK, 
but it does not work with such a short time at all..


Milos

tcp-inspect is not enought, you must use also use a tcp-request content rule to 
force haproxy to wait for data.

Something like that:

acl ID req.payload(4,5) -m found
tcp-request inspect-delay 5s
tcp-request content accept if ID
stick on req.payload(4,5) if ID

R,
Emeric


Reply via email to