BUG/MEDIUM: spoe: Don't rely on stream's expiration to detect processing timeout

On stream side, the SPOE filter relied on the stream's expiration date to be
woken up and be able to detect processing timeout. However, the stream
expiration date must not be updated this way. Mainly because it may be
overwritten at the end of process_stream(). In the worst case, it is set to
TICK_ETERNITY for any reason. In this case, it is impossible to detect the
SPOE filter must time out and abort the processing.

The right way to do is to set an analysis expiration date on the
corresponding channel, depending on the direction. This expiration date will
be used to compute the stream's expiration date at the end of
process_stream().

This patch may be related to issue #2478. It must be backported to all
stable versions.

(cherry picked from commit 3c066b1e341ce2093197d565f2711e6174c39d5b)
Signed-off-by: Christopher Faulet <cfaulet@haproxy.com>
(cherry picked from commit 527c30ca77cc511a88cf23aaf81005a85778a163)
Signed-off-by: Christopher Faulet <cfaulet@haproxy.com>
(cherry picked from commit 662aff549e18b066460d8253a016f1a3f4fbf870)
Signed-off-by: Christopher Faulet <cfaulet@haproxy.com>
(cherry picked from commit 7d9e6d6a5751bfe5668bf251abae2170571134d0)
Signed-off-by: Christopher Faulet <cfaulet@haproxy.com>
(cherry picked from commit 9ba62e29333860582c580d884ac2d4f8ef209029)
Signed-off-by: Christopher Faulet <cfaulet@haproxy.com>
1 file changed