mirror of
https://git.haproxy.org/git/haproxy.git/
synced 2025-08-07 23:56:57 +02:00
MINOR: quic: define QUIC flag on listener
Mark QUIC listeners with the flag LI_F_QUIC_LISTENER. It is set by the proto-quic layer on the add listener callback. This allows to override more clearly the accept callback on quic_session_accept.
This commit is contained in:
parent
31ea9177ac
commit
b59b88950a
@ -191,6 +191,8 @@ struct bind_conf {
|
|||||||
struct rx_settings settings; /* all the settings needed for the listening socket */
|
struct rx_settings settings; /* all the settings needed for the listening socket */
|
||||||
};
|
};
|
||||||
|
|
||||||
|
#define LI_F_QUIC_LISTENER 0x00000001 /* listener uses proto quic */
|
||||||
|
|
||||||
/* The listener will be directly referenced by the fdtab[] which holds its
|
/* The listener will be directly referenced by the fdtab[] which holds its
|
||||||
* socket. The listener provides the protocol-specific accept() function to
|
* socket. The listener provides the protocol-specific accept() function to
|
||||||
* the fdtab.
|
* the fdtab.
|
||||||
|
@ -66,6 +66,7 @@
|
|||||||
#include <haproxy/log.h>
|
#include <haproxy/log.h>
|
||||||
#include <haproxy/mailers.h>
|
#include <haproxy/mailers.h>
|
||||||
#include <haproxy/namespace.h>
|
#include <haproxy/namespace.h>
|
||||||
|
#include <haproxy/quic_sock.h>
|
||||||
#include <haproxy/obj_type-t.h>
|
#include <haproxy/obj_type-t.h>
|
||||||
#include <haproxy/peers-t.h>
|
#include <haproxy/peers-t.h>
|
||||||
#include <haproxy/peers.h>
|
#include <haproxy/peers.h>
|
||||||
@ -3901,11 +3902,13 @@ int check_config_validity()
|
|||||||
if (!listener->maxaccept)
|
if (!listener->maxaccept)
|
||||||
listener->maxaccept = global.tune.maxaccept ? global.tune.maxaccept : MAX_ACCEPT;
|
listener->maxaccept = global.tune.maxaccept ? global.tune.maxaccept : MAX_ACCEPT;
|
||||||
|
|
||||||
/* listener->accept may already be initialized by some
|
/* listener accept callback */
|
||||||
* protocols so do not overwrite it in this case.
|
listener->accept = session_accept_fd;
|
||||||
*/
|
#ifdef USE_QUIC
|
||||||
if (!listener->accept)
|
/* override the accept callback for QUIC listeners. */
|
||||||
listener->accept = session_accept_fd;
|
if (listener->flags & LI_F_QUIC_LISTENER)
|
||||||
|
listener->accept = quic_session_accept;
|
||||||
|
#endif
|
||||||
|
|
||||||
listener->analysers |= curproxy->fe_req_ana;
|
listener->analysers |= curproxy->fe_req_ana;
|
||||||
listener->default_target = curproxy->default_target;
|
listener->default_target = curproxy->default_target;
|
||||||
|
@ -518,8 +518,7 @@ int quic_connect_server(struct connection *conn, int flags)
|
|||||||
*/
|
*/
|
||||||
static void quic_add_listener(struct protocol *proto, struct listener *listener)
|
static void quic_add_listener(struct protocol *proto, struct listener *listener)
|
||||||
{
|
{
|
||||||
/* custom accept callback for QUIC */
|
listener->flags |= LI_F_QUIC_LISTENER;
|
||||||
listener->accept = quic_session_accept;
|
|
||||||
|
|
||||||
MT_LIST_INIT(&listener->rx.pkts);
|
MT_LIST_INIT(&listener->rx.pkts);
|
||||||
listener->rx.odcids = EB_ROOT_UNIQUE;
|
listener->rx.odcids = EB_ROOT_UNIQUE;
|
||||||
|
Loading…
Reference in New Issue
Block a user