Hello,
In my HAProxy config, I would like to ban people for a certain amount of
time by setting a general-purpose counter from 0 to 1, where 1 = banned,
in a stick table. When the stick table entry expires, the counter is
reset to 0 and the person is un-banned. This works fine. However, I
would like to ignore this person's requests while they're banned. That
way, as they make requests, they are not continuously banning
themselves.
Consider if I use this ACL and "track" line:
```
acl is_banned sc_get_gpc1(0) gt 0
http-request track-sc0 be_name unless is_banned
```
This ACL uses `sc_get_gpc1(0)` to read the value of the general-purpose
counter. When this ACL is used by the `track-sc0` line, it *resets the
TTL* on the stick table entry, which means that a person will be banned
forever unless they stop making requests. I don't want this. I want to
ban them for only 10 seconds. So, instead, I use this ACL:
```
acl is_banned be_name,table_gpc1 gt 0
http-request track-sc0 be_name unless is_banned
```
By using the `table_gpc1` conveter, the TTL is *not* reset when the ACL
is used, which is good.
My question is, is this an undocumented feature? A bug that may one day
be "fixed"? Why is there a difference between `sc_get_gpc1(0)` and
`table_gpc1`, where the former resets the TTL on the stick table entry,
but the latter does not?
Also, if this is a bug, would it be helpful to have a parameter on the
track-sc0 line that allows me to opt in to not resetting the TTL?
Thank you,
Nick Ramirez