]> git.ipfire.org Git - thirdparty/haproxy.git/commitdiff
BUG/MINOR: peers: Use right channel flag to consider the peer as connected
authorChristopher Faulet <cfaulet@haproxy.com>
Wed, 27 Jul 2022 08:49:31 +0000 (10:49 +0200)
committerChristopher Faulet <cfaulet@haproxy.com>
Wed, 3 Aug 2022 07:56:38 +0000 (09:56 +0200)
When a peer open a new connection to another peer, it is considered as
connected when the hello message is sent. To do so, the peer applet was
relying on CF_WRITE_PARTIAL channel flag. However it is not the right flag
to use. This one is a transient flag. Depending on the scheduling, this flag
may be removed by the stream before the peer has a chance to see
it. Instead, CF_WROTE_DATA flag must be checked.

This patch is related to the issue #1799. It must be backported as far as
2.0.

src/peers.c

index ba2e0d65cef29a5bee9effc1895cf8b40f15569d..3df4999f6793efc848ef82a9cccc38d29787a788 100644 (file)
@@ -2998,7 +2998,7 @@ switchstate:
                                        }
                                }
 
-                               if (sc_ic(sc)->flags & CF_WRITE_PARTIAL)
+                               if (sc_ic(sc)->flags & CF_WROTE_DATA)
                                        curpeer->statuscode = PEER_SESS_SC_CONNECTEDCODE;
 
                                reql = peer_getline(appctx);