From: Willy Tarreau Date: Fri, 16 Nov 2018 15:18:34 +0000 (+0100) Subject: MINOR: stream-int: automatically mark applets as ready if they block on the channel X-Git-Tag: v1.9-dev7~94 X-Git-Url: http://git.ipfire.org/?a=commitdiff_plain;h=186dcdd128db7e056645a70b64beb4cdfc4cf5de;p=thirdparty%2Fhaproxy.git MINOR: stream-int: automatically mark applets as ready if they block on the channel If an applet reports being blocked due to any of the channel-side flags, it's reportedly ready to deliver incoming data. It's better to do this after the return from the applet handler so that applet developers don't have to worry about details related to flags ordering. --- diff --git a/src/stream_interface.c b/src/stream_interface.c index e23a283897..4e63ed2404 100644 --- a/src/stream_interface.c +++ b/src/stream_interface.c @@ -1422,6 +1422,12 @@ void si_applet_wake_cb(struct stream_interface *si) if (!(si->flags & SI_FL_RX_WAIT_EP) && (ic->flags & CF_SHUTR)) si->flags |= SI_FL_ERR; + /* automatically mark the applet having data available if it reported + * begin blocked by the channel. + */ + if (si_rx_blocked(si)) + si_rx_endp_more(si); + /* update the stream-int, channels, and possibly wake the stream up */ stream_int_notify(si);