summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorWilly Tarreau <w@1wt.eu>2020-09-25 16:41:05 +0200
committerWilly Tarreau <w@1wt.eu>2020-10-07 18:45:03 +0200
commit11697c21becde06378f334ae73ad3710c3cd8f55 (patch)
tree753d4d95b3938833799389904a6731656a0c516f
parent8b9cbc733b0d7fe2bb666698a2b4c9f8f2a21875 (diff)
downloadhaproxy-11697c21becde06378f334ae73ad3710c3cd8f55.tar.gz
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().
-rw-r--r--src/protocol.c14
1 files changed, 6 insertions, 8 deletions
diff --git a/src/protocol.c b/src/protocol.c
index c248929b3..c9d26754b 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;
}
/*