From 7f494d0c5e489e2a5a3c63a313b9ace5f00801e3 Mon Sep 17 00:00:00 2001 From: Willy Tarreau Date: Fri, 16 Nov 2018 14:26:11 +0100 Subject: [PATCH] MINOR: stream-int: make si_sync_recv() simply check ENDP before si_cs_recv() Instead of checking complex conditions to call si_cs_recv() upon first call, let's simply use si_rx_endp_ready() now that si_cs_recv() reports it accurately, and add si_rx_blocked() to cover any blocking situation. --- include/proto/stream_interface.h | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/include/proto/stream_interface.h b/include/proto/stream_interface.h index 92cfe4dcd..c726f87fa 100644 --- a/include/proto/stream_interface.h +++ b/include/proto/stream_interface.h @@ -443,7 +443,7 @@ static inline int si_sync_recv(struct stream_interface *si) if (si->wait_event.wait_reason & SUB_CAN_RECV) return 0; // already subscribed - if (si->flags & SI_FL_RXBLK_ROOM && c_size(si_ic(si))) + if (!si_rx_endp_ready(si) || si_rx_blocked(si)) return 0; // already failed return si_cs_recv(cs);