MEDIUM: stream-int: support splicing from applets
If we want to splice from applets, we must check the pipe before clearing
SI_FL_WAIT_ROOM.
diff --git a/src/stream_interface.c b/src/stream_interface.c
index 08c72e5..781f449 100644
--- a/src/stream_interface.c
+++ b/src/stream_interface.c
@@ -183,7 +183,7 @@
(si->ib->cons->flags & SI_FL_WAIT_DATA)) {
si_chk_snd(si->ib->cons);
/* check if the consumer has freed some space */
- if (!channel_full(si->ib))
+ if (!channel_full(si->ib) && !si->ib->pipe)
si->flags &= ~SI_FL_WAIT_ROOM;
}
@@ -314,7 +314,7 @@
if (unlikely(si->state != SI_ST_EST || (ib->flags & (CF_SHUTR|CF_DONT_READ))))
return;
- if (channel_full(ib)) {
+ if (channel_full(ib) || ib->pipe) {
/* stop reading */
si->flags |= SI_FL_WAIT_ROOM;
}