diff --git a/include/proto/stream_interface.h b/include/proto/stream_interface.h index fe55288b6..92cfe4dcd 100644 --- a/include/proto/stream_interface.h +++ b/include/proto/stream_interface.h @@ -259,12 +259,6 @@ static inline int si_rx_endp_ready(const struct stream_interface *si) return !(si->flags & SI_FL_RX_WAIT_EP); } -/* Report that a stream interface wants to put some data into the input buffer */ -static inline void si_want_put(struct stream_interface *si) -{ - si->flags &= ~SI_FL_RX_WAIT_EP; -} - /* Report that a stream interface failed to put some data into the input buffer */ static inline void si_cant_put(struct stream_interface *si) { @@ -272,12 +266,6 @@ static inline void si_cant_put(struct stream_interface *si) si->flags &= ~SI_FL_RX_WAIT_EP; } -/* Report that a stream interface doesn't want to put data into the input buffer */ -static inline void si_stop_put(struct stream_interface *si) -{ - si->flags |= SI_FL_RX_WAIT_EP; -} - /* Report that a stream interface won't put any more data into the input buffer */ static inline void si_done_put(struct stream_interface *si) { @@ -285,6 +273,18 @@ static inline void si_done_put(struct stream_interface *si) si->flags |= SI_FL_RX_WAIT_EP; } +/* The stream interface announces it is ready to try to deliver more data to the input buffer */ +static inline void si_rx_endp_more(struct stream_interface *si) +{ + si->flags &= ~SI_FL_RX_WAIT_EP; +} + +/* The stream interface announces it doesn't have more data for the input buffer */ +static inline void si_rx_endp_done(struct stream_interface *si) +{ + si->flags |= SI_FL_RX_WAIT_EP; +} + /* The stream interface just got the input buffer it was waiting for */ static inline void si_rx_buff_rdy(struct stream_interface *si) { diff --git a/src/applet.c b/src/applet.c index 1fe453107..9c591c760 100644 --- a/src/applet.c +++ b/src/applet.c @@ -71,7 +71,7 @@ struct task *task_run_applet(struct task *t, void *context, unsigned short state * that one applet which ignores any event will not spin. */ si_cant_get(si); - si_stop_put(si); + si_rx_endp_done(si); /* Now we'll try to allocate the input buffer. We wake up the applet in * all cases. So this is the applet's responsibility to check if this @@ -80,7 +80,7 @@ struct task *task_run_applet(struct task *t, void *context, unsigned short state * do if it needs the buffer, it will be called again upon readiness. */ if (!si_alloc_ibuf(si, &app->buffer_wait)) - si_want_put(si); + si_rx_endp_more(si); app->applet->fct(app); si_applet_wake_cb(si); diff --git a/src/flt_spoe.c b/src/flt_spoe.c index cd0b88a94..edb853a66 100644 --- a/src/flt_spoe.c +++ b/src/flt_spoe.c @@ -1201,7 +1201,7 @@ static int spoe_wakeup_appctx(struct appctx *appctx) { si_want_get(appctx->owner); - si_want_put(appctx->owner); + si_rx_endp_more(appctx->owner); appctx_wakeup(appctx); return 1; } @@ -1338,7 +1338,7 @@ spoe_handle_connect_appctx(struct appctx *appctx) int ret; if (si->state <= SI_ST_CON) { - si_want_put(si); + si_rx_endp_more(si); task_wakeup(si_strm(si)->task, TASK_WOKEN_MSG); goto stop; } diff --git a/src/stream.c b/src/stream.c index dec9e84b5..da528b26e 100644 --- a/src/stream.c +++ b/src/stream.c @@ -852,7 +852,7 @@ static void sess_establish(struct stream *s) rep->analysers |= AN_RES_FLT_HTTP_HDRS; } - si_want_put(si); + si_rx_endp_more(si); rep->flags |= CF_READ_ATTACHED; /* producer is now attached */ if (req->flags & CF_WAKE_CONNECT) { req->flags |= CF_WAKE_ONCE; diff --git a/src/stream_interface.c b/src/stream_interface.c index f4beccb28..cb73900e5 100644 --- a/src/stream_interface.c +++ b/src/stream_interface.c @@ -1137,7 +1137,7 @@ int si_cs_recv(struct conn_stream *cs) goto out_shutdown_r; /* start by claiming we'll want to receive and change our mind later if needed */ - si_want_put(si); + si_rx_endp_more(si); if ((ic->flags & (CF_STREAMER | CF_STREAMER_FAST)) && !co_data(ic) && global.tune.idle_timer && @@ -1236,7 +1236,7 @@ int si_cs_recv(struct conn_stream *cs) si_cant_put(si); if (ret <= 0) { - si_stop_put(si); + si_rx_endp_done(si); break; }