From 5d5b2fecac824f6149151934a6935e251ca477ed Mon Sep 17 00:00:00 2001 From: Willy Tarreau Date: Fri, 25 Sep 2015 10:59:38 +0200 Subject: [PATCH] MEDIUM: stream-int: call stream_int_update() from si_update() Now the call to stream_int_update() is moved to si_update(), which is exclusively called from the stream, so that the socket layer may be updated without updating the stream layer. This will later permit to call it individually from other places (other tasks or applets for example). --- include/proto/stream_interface.h | 3 ++- src/stream_interface.c | 5 ----- 2 files changed, 2 insertions(+), 6 deletions(-) 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));