]> git.ipfire.org Git - thirdparty/haproxy.git/commitdiff
MINOR: protocol: always initialize the receivers list on registration
authorWilly Tarreau <w@1wt.eu>
Fri, 9 Aug 2024 19:32:29 +0000 (21:32 +0200)
committerWilly Tarreau <w@1wt.eu>
Wed, 21 Aug 2024 15:37:46 +0000 (17:37 +0200)
Till now, protocols were required to self-initialize their receivers
list head, which is not very convenient, and is quite error prone.
Indeed, it's too easy to copy-paste a protocol definition and forget
to update the .receivers field to point to itself, resulting in mixed
lists. Let's just do that in protocol_register(). And while we're at
it, let's also zero the nb_receivers entry that works with it, so that
the protocol definition isn't required to pre-initialize stuff related
to internal book-keeping.

src/protocol.c

index 516c020d1c077ad4f9ae4bbdd47cb83496283651..f5f4940685861274f0853ec0a2c44dc15e7bf354 100644 (file)
@@ -44,6 +44,9 @@ void protocol_register(struct protocol *proto)
        BUG_ON(sock_family < 0 || sock_family >= AF_CUST_MAX);
        BUG_ON(proto->proto_type >= PROTO_NUM_TYPES);
 
+       LIST_INIT(&proto->receivers);
+       proto->nb_receivers = 0;
+
        HA_SPIN_LOCK(PROTO_LOCK, &proto_lock);
        LIST_APPEND(&protocols, &proto->list);
        __protocol_by_family[sock_family]