]> git.ipfire.org Git - thirdparty/haproxy.git/commitdiff
BUG/MINOR: backend: inspect request not response buffer to check for TFO
authorWilly Tarreau <w@1wt.eu>
Wed, 31 Dec 2025 11:35:24 +0000 (12:35 +0100)
committerWilly Tarreau <w@1wt.eu>
Wed, 31 Dec 2025 12:03:53 +0000 (13:03 +0100)
In 2.6, do_connect_server() was introduced by commit 0a4dcb65f ("MINOR:
stream-int/backend: Move si_connect() in the backend scope") and changed
the approach to work with a stream instead of a stream-interface. However
si_oc(si) was wrongly turned to &s->res instead of &s->req, which breaks
TFO by always inspecting the response channel to figure whether there are
data pending.

This fix can be backported to all versions till 2.6.

src/backend.c

index b13922d656d3f00dbe7e5e512c0620156e51c631..c8adf38a325464b31b0580d52225549109121d26 100644 (file)
@@ -1445,7 +1445,7 @@ static int do_connect_server(struct stream *s, struct connection *conn)
        if (unlikely(!conn || !conn->ctrl || !conn->ctrl->connect))
                return SF_ERR_INTERNAL;
 
-       if (co_data(&s->res))
+       if (co_data(&s->req))
                conn_flags |= CONNECT_HAS_DATA;
        if (s->conn_retries == 0)
                conn_flags |= CONNECT_CAN_USE_TFO;