mirror of
https://git.haproxy.org/git/haproxy.git/
synced 2025-09-20 21:31:28 +02:00
MINOR: applet: Make some applet functions HTX aware
applet_output_room() and applet_input_data() are now HTX aware. These functions automatically rely on htx versions if APPLET_FL_HTX flag is set for the applet.
This commit is contained in:
parent
927884a3eb
commit
71c01c1010
@ -319,15 +319,6 @@ static inline struct buffer *applet_get_outbuf(struct appctx *appctx)
|
|||||||
return sc_ib(appctx_sc(appctx));
|
return sc_ib(appctx_sc(appctx));
|
||||||
}
|
}
|
||||||
|
|
||||||
/* Returns the amount of data in the input buffer (see applet_get_inbuf) */
|
|
||||||
static inline size_t applet_input_data(const struct appctx *appctx)
|
|
||||||
{
|
|
||||||
if (appctx_app_test(appctx, APPLET_FL_NEW_API))
|
|
||||||
return b_data(&appctx->inbuf);
|
|
||||||
else
|
|
||||||
return co_data(sc_oc(appctx_sc(appctx)));
|
|
||||||
}
|
|
||||||
|
|
||||||
/* Returns the amount of HTX data in the input buffer (see applet_get_inbuf) */
|
/* 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)
|
static inline size_t applet_htx_input_data(const struct appctx *appctx)
|
||||||
{
|
{
|
||||||
@ -337,12 +328,26 @@ static inline size_t applet_htx_input_data(const struct appctx *appctx)
|
|||||||
return co_data(sc_oc(appctx_sc(appctx)));
|
return co_data(sc_oc(appctx_sc(appctx)));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/* Returns the amount of data in the input buffer (see applet_get_inbuf) */
|
||||||
|
static inline size_t applet_input_data(const struct appctx *appctx)
|
||||||
|
{
|
||||||
|
if (appctx_app_test(appctx, APPLET_FL_HTX))
|
||||||
|
return applet_htx_input_data(appctx);
|
||||||
|
|
||||||
|
if (appctx_app_test(appctx, APPLET_FL_NEW_API))
|
||||||
|
return b_data(&appctx->inbuf);
|
||||||
|
else
|
||||||
|
return co_data(sc_oc(appctx_sc(appctx)));
|
||||||
|
}
|
||||||
|
|
||||||
/* Skips <len> bytes from the input buffer (see applet_get_inbuf).
|
/* Skips <len> bytes from the input buffer (see applet_get_inbuf).
|
||||||
*
|
*
|
||||||
* This is useful when data have been read directly from the buffer. It is
|
* This is useful when data have been read directly from the buffer. It is
|
||||||
* illegal to call this function with <len> causing a wrapping at the end of the
|
* illegal to call this function with <len> causing a wrapping at the end of the
|
||||||
* buffer. It's the caller's responsibility to ensure that <len> is never larger
|
* buffer. It's the caller's responsibility to ensure that <len> is never larger
|
||||||
* than available ouput data.
|
* than available ouput data.
|
||||||
|
*
|
||||||
|
* This function is not HTX aware.
|
||||||
*/
|
*/
|
||||||
static inline void applet_skip_input(struct appctx *appctx, size_t len)
|
static inline void applet_skip_input(struct appctx *appctx, size_t len)
|
||||||
{
|
{
|
||||||
@ -366,16 +371,6 @@ static inline void applet_reset_input(struct appctx *appctx)
|
|||||||
co_skip(sc_oc(appctx_sc(appctx)), co_data(sc_oc(appctx_sc(appctx))));
|
co_skip(sc_oc(appctx_sc(appctx)), co_data(sc_oc(appctx_sc(appctx))));
|
||||||
}
|
}
|
||||||
|
|
||||||
/* Returns the amout of space available at the output buffer (see applet_get_outbuf).
|
|
||||||
*/
|
|
||||||
static inline size_t applet_output_room(const struct appctx *appctx)
|
|
||||||
{
|
|
||||||
if (appctx_app_test(appctx, APPLET_FL_NEW_API))
|
|
||||||
return b_room(&appctx->outbuf);
|
|
||||||
else
|
|
||||||
return channel_recv_max(sc_ic(appctx_sc(appctx)));
|
|
||||||
}
|
|
||||||
|
|
||||||
/* Returns the amout of space available at the HTX output buffer (see applet_get_outbuf).
|
/* 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)
|
static inline size_t applet_htx_output_room(const struct appctx *appctx)
|
||||||
@ -386,6 +381,19 @@ static inline size_t applet_htx_output_room(const struct appctx *appctx)
|
|||||||
return channel_recv_max(sc_ic(appctx_sc(appctx)));
|
return channel_recv_max(sc_ic(appctx_sc(appctx)));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/* Returns the amout of space available at the output buffer (see applet_get_outbuf).
|
||||||
|
*/
|
||||||
|
static inline size_t applet_output_room(const struct appctx *appctx)
|
||||||
|
{
|
||||||
|
if (appctx_app_test(appctx, APPLET_FL_HTX))
|
||||||
|
return applet_htx_output_room(appctx);
|
||||||
|
|
||||||
|
if (appctx_app_test(appctx, APPLET_FL_NEW_API))
|
||||||
|
return b_room(&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
|
/*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).
|
* the output buffer to do so (see applet_get_outbuf).
|
||||||
*
|
*
|
||||||
|
Loading…
x
Reference in New Issue
Block a user