MINOR: h2: Make sure to return 1 in h2_recv() when needed.

In h2_recv(), return 1 if we have data available, or if h2_recv_allowed()
failed, to be sure h2_process() is called.
Also don't subscribe if our buffer is full.
diff --git a/src/mux_h2.c b/src/mux_h2.c
index ae885d9..f7999d2 100644
--- a/src/mux_h2.c
+++ b/src/mux_h2.c
@@ -2236,10 +2236,10 @@
 	size_t ret;
 
 	if (h2c->wait_event.wait_reason & SUB_CAN_RECV)
-		return 0;
+		return (b_data(&h2c->dbuf));
 
 	if (!h2_recv_allowed(h2c))
-		return 0;
+		return 1;
 
 	buf = h2_get_buf(h2c, &h2c->dbuf);
 	if (!buf) {
@@ -2255,10 +2255,11 @@
 			ret = 0;
 	} while (ret > 0);
 
-	if (h2_recv_allowed(h2c)) {
+	if (h2_recv_allowed(h2c) && (b_data(buf) < buf->size)) {
 		conn_xprt_want_recv(conn);
 		conn->xprt->subscribe(conn, SUB_CAN_RECV, &h2c->wait_event);
 	}
+
 	if (!b_data(buf)) {
 		h2_release_buf(h2c, &h2c->dbuf);
 		return 0;