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.
This commit is contained in:
Willy Tarreau 2018-11-16 16:18:34 +01:00
parent 7f494d0c5e
commit 186dcdd128

View File

@ -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);