]> git.ipfire.org Git - thirdparty/haproxy.git/commitdiff
MINOR: protocol: directly call enable_listener() from protocol_enable_all()
authorWilly Tarreau <w@1wt.eu>
Fri, 25 Sep 2020 14:41:05 +0000 (16:41 +0200)
committerWilly Tarreau <w@1wt.eu>
Fri, 9 Oct 2020 09:27:30 +0000 (11:27 +0200)
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().

src/protocol.c

index c248929b337bb98c3f77627c348264de1514ef2c..c9d26754baef9a153bbab8d5bd29ebc994462eb9 100644 (file)
@@ -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;
 }
 
 /*