From: Christopher Faulet Date: Tue, 23 Jan 2024 06:42:08 +0000 (+0100) Subject: MINOR: applet: Add an appctx flag to report shutdown to applets X-Git-Tag: v3.0-dev3~57 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=cc7b141e1ce99bd14501b660824e3ae5ec101365;p=thirdparty%2Fhaproxy.git 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. --- diff --git a/include/haproxy/applet-t.h b/include/haproxy/applet-t.h index bd3bf68ca0..f4e4241089 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 77f69346a9..90918c8827 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);