mirror of
https://git.haproxy.org/git/haproxy.git/
synced 2025-09-23 14:51:27 +02:00
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.
This commit is contained in:
parent
b034b2598d
commit
9b20c55562
@ -183,7 +183,7 @@ static void stream_int_update_embedded(struct stream_interface *si)
|
|||||||
(si->ib->cons->flags & SI_FL_WAIT_DATA)) {
|
(si->ib->cons->flags & SI_FL_WAIT_DATA)) {
|
||||||
si_chk_snd(si->ib->cons);
|
si_chk_snd(si->ib->cons);
|
||||||
/* check if the consumer has freed some space */
|
/* 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;
|
si->flags &= ~SI_FL_WAIT_ROOM;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -314,7 +314,7 @@ static void stream_int_chk_rcv(struct stream_interface *si)
|
|||||||
if (unlikely(si->state != SI_ST_EST || (ib->flags & (CF_SHUTR|CF_DONT_READ))))
|
if (unlikely(si->state != SI_ST_EST || (ib->flags & (CF_SHUTR|CF_DONT_READ))))
|
||||||
return;
|
return;
|
||||||
|
|
||||||
if (channel_full(ib)) {
|
if (channel_full(ib) || ib->pipe) {
|
||||||
/* stop reading */
|
/* stop reading */
|
||||||
si->flags |= SI_FL_WAIT_ROOM;
|
si->flags |= SI_FL_WAIT_ROOM;
|
||||||
}
|
}
|
||||||
|
Loading…
x
Reference in New Issue
Block a user