From 44aae94ab9dbc4ae86dc0284f00732b5760aaee1 Mon Sep 17 00:00:00 2001 From: Christopher Faulet Date: Thu, 17 Jul 2025 15:45:36 +0200 Subject: [PATCH] MINOR: applet: Add HTX versions for applet_input_data() and applet_output_room() It will be useful for HTX applets because availale data in the input buffer and available space in the output buffer are computed from the HTX message and not the buffer itself. So now, applet_htx_input_data() and applet_htx_output_room() functions can be used. --- include/haproxy/applet.h | 19 +++++++++++++++++++ 1 file changed, 19 insertions(+) diff --git a/include/haproxy/applet.h b/include/haproxy/applet.h index 6eec621b4..2b1a5af7f 100644 --- a/include/haproxy/applet.h +++ b/include/haproxy/applet.h @@ -315,6 +315,15 @@ static inline size_t applet_input_data(const struct appctx *appctx) return co_data(sc_oc(appctx_sc(appctx))); } +/* Returns the amount of HTX data in the input buffer (see applet_get_inbuf) */ +static inline size_t applet_htx_input_data(const struct appctx *appctx) +{ + if (appctx->flags & APPCTX_FL_INOUT_BUFS) + return htx_used_space(htxbuf(&appctx->inbuf)); + else + return co_data(sc_oc(appctx_sc(appctx))); +} + /* Skips bytes from the input buffer (see applet_get_inbuf). * * This is useful when data have been read directly from the buffer. It is @@ -354,6 +363,16 @@ static inline size_t applet_output_room(const struct appctx *appctx) return channel_recv_max(sc_ic(appctx_sc(appctx))); } +/* Returns the amout of space available at the HTX output buffer (see applet_get_outbuf). + */ +static inline size_t applet_htx_output_room(const struct appctx *appctx) +{ + if (appctx->flags & APPCTX_FL_INOUT_BUFS) + return htx_free_data_space(htxbuf(&appctx->outbuf)); + else + return channel_recv_max(sc_ic(appctx_sc(appctx))); +} + /*Indicates that the applet have more data to deliver and it needs more room in * the output buffer to do so (see applet_get_outbuf). * -- 2.47.2