From: Willy Tarreau Date: Fri, 25 Sep 2020 14:41:05 +0000 (+0200) Subject: MINOR: protocol: directly call enable_listener() from protocol_enable_all() X-Git-Tag: v2.3-dev6~34 X-Git-Url: http://git.ipfire.org/?a=commitdiff_plain;h=5b95ae6b323c40331e668117a5dbd4a0428d7b8e;p=thirdparty%2Fhaproxy.git MINOR: protocol: directly call enable_listener() from protocol_enable_all() protocol_enable_all() calls proto->enable_all() for all protocols, which is always equal to enable_all_listeners() which in turn simply is a generic loop calling enable_listener() always returning ERR_NONE. Let's clean this madness by first calling enable_listener() directly from protocol_enable_all(). --- diff --git a/src/protocol.c b/src/protocol.c index c248929b33..c9d26754ba 100644 --- a/src/protocol.c +++ b/src/protocol.c @@ -196,23 +196,21 @@ int protocol_resume_all(void) } /* enables all listeners of all registered protocols. This is intended to be - * used after a fork() to enable reading on all file descriptors. Returns a - * composition of ERR_NONE, ERR_RETRYABLE, ERR_FATAL. + * used after a fork() to enable reading on all file descriptors. Returns + * composition of ERR_NONE. */ int protocol_enable_all(void) { struct protocol *proto; - int err; + struct listener *listener; - err = 0; HA_SPIN_LOCK(PROTO_LOCK, &proto_lock); list_for_each_entry(proto, &protocols, list) { - if (proto->enable_all) { - err |= proto->enable_all(proto); - } + list_for_each_entry(listener, &proto->listeners, rx.proto_list) + enable_listener(listener); } HA_SPIN_UNLOCK(PROTO_LOCK, &proto_lock); - return err; + return ERR_NONE; } /*