From cc7b141e1ce99bd14501b660824e3ae5ec101365 Mon Sep 17 00:00:00 2001 From: Christopher Faulet Date: Tue, 23 Jan 2024 07:42:08 +0100 Subject: [PATCH] MINOR: applet: Add an appctx flag to report shutdown to applets There is no shutdown for reads and send with applets. Both are performed when the appctx is released. So instead of 2 flags, like for muxes/connections, only one flag is used. But the idea is the same: acknowledge the event at the applet level. --- include/haproxy/applet-t.h | 3 ++- src/applet.c | 1 + 2 files changed, 3 insertions(+), 1 deletion(-) diff --git a/include/haproxy/applet-t.h b/include/haproxy/applet-t.h index bd3bf68ca..f4e424108 100644 --- a/include/haproxy/applet-t.h +++ b/include/haproxy/applet-t.h @@ -44,7 +44,8 @@ #define APPCTX_FL_EOS 0x00000020 #define APPCTX_FL_ERR_PENDING 0x00000040 #define APPCTX_FL_ERROR 0x00000080 -#define APPCTX_FL_WANT_DIE 0x00000100 /* applet was running and requested to die */ +#define APPCTX_FL_SHUTDOWN 0x00000100 /* applet was shut down (->release() called if any). No more data exchange with SCs */ +#define APPCTX_FL_WANT_DIE 0x00000200 /* applet was running and requested to die */ struct appctx; struct proxy; diff --git a/src/applet.c b/src/applet.c index 77f69346a..90918c882 100644 --- a/src/applet.c +++ b/src/applet.c @@ -395,6 +395,7 @@ void appctx_shut(struct appctx *appctx) TRACE_ENTER(APPLET_EV_RELEASE, appctx); if (appctx->applet->release) appctx->applet->release(appctx); + applet_fl_set(appctx, APPCTX_FL_SHUTDOWN); if (LIST_INLIST(&appctx->buffer_wait.list)) LIST_DEL_INIT(&appctx->buffer_wait.list);