diff --git a/include/proto/stream_interface.h b/include/proto/stream_interface.h index 890bfb8ec..84c309091 100644 --- a/include/proto/stream_interface.h +++ b/include/proto/stream_interface.h @@ -319,9 +319,10 @@ static inline void si_shutw(struct stream_interface *si) si->ops->shutw(si); } -/* Calls the data state update on the stream interfaace */ +/* Updates the stream interface and timers, then updates the data layer below */ static inline void si_update(struct stream_interface *si) { + stream_int_update(si); si->ops->update(si); } diff --git a/src/stream_interface.c b/src/stream_interface.c index abd0cee65..51099b824 100644 --- a/src/stream_interface.c +++ b/src/stream_interface.c @@ -786,9 +786,6 @@ void stream_int_update_conn(struct stream_interface *si) struct channel *oc = si_oc(si); struct connection *conn = __objt_conn(si->end); - stream_int_update(si); - - /* now update the connection itself */ if (!(ic->flags & CF_SHUTR)) { /* Read not closed */ if ((ic->flags & CF_DONT_READ) || !channel_may_recv(ic)) @@ -1486,8 +1483,6 @@ void si_applet_done(struct stream_interface *si) */ void stream_int_update_applet(struct stream_interface *si) { - stream_int_update(si); - if (((si->flags & (SI_FL_WANT_PUT|SI_FL_WAIT_ROOM)) == SI_FL_WANT_PUT) || ((si->flags & (SI_FL_WANT_GET|SI_FL_WAIT_DATA)) == SI_FL_WANT_GET)) appctx_wakeup(si_appctx(si));