MINOR: mux-h1: don't try to recv() before the connection is ready

Just as we already do in h1_send(), if the connection is not yet ready,
do not proceed and instead subscribe. This avoids a needless recvfrom()
and subscription to polling for a case which will never work since the
request was not even sent.
This commit is contained in:
Willy Tarreau 2019-06-03 10:12:22 +02:00
parent 694fcd0ee4
commit d58f27fead

View File

@ -1742,6 +1742,11 @@ static int h1_recv(struct h1c *h1c)
if (h1c->wait_event.events & SUB_RETRY_RECV) if (h1c->wait_event.events & SUB_RETRY_RECV)
return (b_data(&h1c->ibuf)); return (b_data(&h1c->ibuf));
if (h1c->flags & H1C_F_CS_WAIT_CONN) {
conn->xprt->subscribe(conn, conn->xprt_ctx, SUB_RETRY_RECV, &h1c->wait_event);
return 0;
}
if (!h1_recv_allowed(h1c)) { if (!h1_recv_allowed(h1c)) {
rcvd = 1; rcvd = 1;
goto end; goto end;