MINOR: applet: Add appctx_init() helper fnuction

It is just a helper function that call the .init applet callback function,
if it exists. This will simplify a bit the init stage when a new applet is
started. For now, this callback function is only used when a new service is
started.
This commit is contained in:
Christopher Faulet 2022-05-12 14:59:28 +02:00
parent ab5d1dceed
commit 16c0d9cda0
2 changed files with 11 additions and 2 deletions

View File

@ -42,6 +42,16 @@ void appctx_shut(struct appctx *appctx);
struct appctx *appctx_new(struct applet *applet, struct cs_endpoint *endp); struct appctx *appctx_new(struct applet *applet, struct cs_endpoint *endp);
/* Helper function to call .init applet callback function, if it exists. Returns 0
* on success and -1 on error.
*/
static inline int appctx_init(struct appctx *appctx)
{
if (appctx->applet->init)
return appctx->applet->init(appctx);
return 0;
}
/* Releases an appctx previously allocated by appctx_new(). */ /* Releases an appctx previously allocated by appctx_new(). */
static inline void __appctx_free(struct appctx *appctx) static inline void __appctx_free(struct appctx *appctx)
{ {

View File

@ -997,9 +997,8 @@ enum act_return process_use_service(struct act_rule *rule, struct proxy *px,
return ACT_RET_ERR; return ACT_RET_ERR;
/* Finish initialisation of the context. */ /* Finish initialisation of the context. */
memset(&appctx->ctx, 0, sizeof(appctx->ctx));
appctx->rule = rule; appctx->rule = rule;
if (appctx->applet->init && !appctx->applet->init(appctx)) if (appctx_init(appctx) == -1)
return ACT_RET_ERR; return ACT_RET_ERR;
} }
else else