When data are skipped from the input buffer of an applet, we must take care
to notify the input buffer is no longer full. Otherwise, this could prevent
the stream to push data to the applet.
It is 3.3-specific. No backport needed.
*/
static inline void applet_skip_input(struct appctx *appctx, size_t len)
{
- if (appctx->flags & APPCTX_FL_INOUT_BUFS)
+ if (appctx->flags & APPCTX_FL_INOUT_BUFS) {
b_del(&appctx->inbuf, len);
+ applet_fl_clr(appctx, APPCTX_FL_INBLK_FULL);
+ }
else
co_skip(sc_oc(appctx_sc(appctx)), len);
}