From: Willy Tarreau Date: Mon, 25 Sep 2017 14:17:25 +0000 (+0200) Subject: MINOR: h2: small function to know when the mux is busy X-Git-Tag: v1.8-rc1~55 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=5b5e68741ae9b29017b95fb2c0ae72589a108da7;p=thirdparty%2Fhaproxy.git MINOR: h2: small function to know when the mux is busy A mux is busy when any stream id >= 0 is currently being handled and the current stream's id doesn't match. When no stream is involved (ie: demuxer), stream 0 is considered. This will be necessary to know when it's possible to send frames. --- diff --git a/src/mux_h2.c b/src/mux_h2.c index ea4f90f7a8..370494d5bc 100644 --- a/src/mux_h2.c +++ b/src/mux_h2.c @@ -361,6 +361,18 @@ static inline int h2s_id(const struct h2s *h2s) return h2s ? h2s->id : 0; } +/* returns true of the mux is currently busy as seen from stream */ +static inline int h2c_mux_busy(const struct h2c *h2c, const struct h2s *h2s) +{ + if (h2c->msi < 0) + return 0; + + if (h2c->msi == h2s_id(h2s)) + return 0; + + return 1; +} + /*********************************************************/ /* functions below are I/O callbacks from the connection */