From: Olivier Houchard Date: Sat, 13 Mar 2021 23:34:49 +0000 (+0100) Subject: MINOR: raw_sock: Add a close method. X-Git-Tag: v2.4-dev13~8 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=ca1a57f022900f60d2f483c13df9ff29e5145e7d;p=thirdparty%2Fhaproxy.git MINOR: raw_sock: Add a close method. Add a close() method, that explicitely cancels any subscription on the connection, in preparation for future evolutions. --- diff --git a/src/raw_sock.c b/src/raw_sock.c index 1900a5c4a8..4fbc1a521a 100644 --- a/src/raw_sock.c +++ b/src/raw_sock.c @@ -434,6 +434,13 @@ static int raw_sock_unsubscribe(struct connection *conn, void *xprt_ctx, int eve return conn_unsubscribe(conn, xprt_ctx, event_type, es); } +static void raw_sock_close(struct connection *conn, void *xprt_ctx) +{ + if (conn->subs != NULL) { + conn_unsubscribe(conn, NULL, conn->subs->events, conn->subs); + } +} + /* We can't have an underlying XPRT, so just return -1 to signify failure */ static int raw_sock_remove_xprt(struct connection *conn, void *xprt_ctx, void *toremove_ctx, const struct xprt_ops *newops, void *newctx) { @@ -457,7 +464,7 @@ static struct xprt_ops raw_sock = { #endif .shutr = NULL, .shutw = NULL, - .close = NULL, + .close = raw_sock_close, .name = "RAW", };