mirror of
http://git.haproxy.org/git/haproxy.git
synced 2026-02-18 09:46:29 +02:00
BUG/MEDIUM: connections: Let the xprt layer know a takeover happened.
When we takeover a connection, let the xprt layer know. If it has its own tasklet, and it is already scheduled, then it has to be destroyed, otherwise it may run the new mux tasklet on the old thread. Note that we only do this for the ssl xprt for now, because the only other one that might wake the mux up is the handshake one, which is supposed to disappear before idle connections exist. No backport is needed, this is for 2.2.
This commit is contained in:
committed by
Willy Tarreau
parent
1662cdb0c6
commit
a74bb7e26e
@@ -354,6 +354,7 @@ struct xprt_ops {
|
||||
int (*prepare_srv)(struct server *srv); /* prepare a server context */
|
||||
void (*destroy_srv)(struct server *srv); /* destroy a server context */
|
||||
int (*get_alpn)(const struct connection *conn, void *xprt_ctx, const char **str, int *len); /* get application layer name */
|
||||
int (*takeover)(struct connection *conn, void *xprt_ctx, int orig_tid); /* Let the xprt know the fd have been taken over */
|
||||
char name[8]; /* transport layer name, zero-terminated */
|
||||
int (*subscribe)(struct connection *conn, void *xprt_ctx, int event_type, struct wait_event *es); /* Subscribe <es> to events, such as "being able to send" */
|
||||
int (*unsubscribe)(struct connection *conn, void *xprt_ctx, int event_type, struct wait_event *es); /* Unsubscribe <es> from events */
|
||||
|
||||
Reference in New Issue
Block a user