MINOR: receiver: define a flag for local accept

This flag is named RX_F_LOCAL_ACCEPT. It will be activated for special
receivers where connection balancing to threads is already handle
outside of listener_accept, such as with QUIC listeners.
diff --git a/include/haproxy/receiver-t.h b/include/haproxy/receiver-t.h
index f7412df..7c04d48 100644
--- a/include/haproxy/receiver-t.h
+++ b/include/haproxy/receiver-t.h
@@ -33,6 +33,7 @@
 #define RX_F_BOUND              0x00000001  /* receiver already bound */
 #define RX_F_INHERITED          0x00000002  /* inherited FD from the parent process (fd@) */
 #define RX_F_MWORKER            0x00000004  /* keep the FD open in the master but close it in the children */
+#define RX_F_LOCAL_ACCEPT       0x00000008  /* do not use a tasklet for accept, connections will be accepted on the current thread */
 
 /* Bit values for rx_settings->options */
 #define RX_O_FOREIGN            0x00000001  /* receives on foreign addresses */
diff --git a/src/listener.c b/src/listener.c
index c4be8dd..cb30dd2 100644
--- a/src/listener.c
+++ b/src/listener.c
@@ -953,6 +953,9 @@
 
 
 #if defined(USE_THREAD)
+		if (l->rx.flags & RX_F_LOCAL_ACCEPT)
+			goto local_accept;
+
 		mask = thread_mask(l->rx.bind_thread) & all_threads_mask;
 		if (atleast2(mask) && (global.tune.options & GTUNE_LISTENER_MQ) && !stopping) {
 			struct accept_queue_ring *ring;
@@ -1066,6 +1069,7 @@
 		}
 #endif // USE_THREAD
 
+ local_accept:
 		_HA_ATOMIC_INC(&l->thr_conn[tid]);
 		ret = l->accept(cli_conn);
 		if (unlikely(ret <= 0)) {