]> git.ipfire.org Git - thirdparty/haproxy.git/commitdiff
MEDIUM: channel: make buffer_reserved() use channel_in_transit()
authorWilly Tarreau <w@1wt.eu>
Wed, 14 Jan 2015 13:07:13 +0000 (14:07 +0100)
committerWilly Tarreau <w@1wt.eu>
Wed, 14 Jan 2015 14:57:21 +0000 (15:57 +0100)
This ensures that we rely on a sane computation for the buffer size.

include/proto/channel.h

index 1648a6dad7d4ec732878669e9440af36a09afc91..dccb987218bfd08c657324014a1994505985c5c1 100644 (file)
@@ -287,16 +287,11 @@ static inline void channel_dont_read(struct channel *chn)
  */
 static inline int buffer_reserved(const struct channel *chn)
 {
-       unsigned int reserved = global.tune.maxrewrite;
+       int reserved;
 
-       if (chn->to_forward == CHN_INFINITE_FORWARD ||
-           chn->to_forward >= reserved ||
-           chn->buf->o >= reserved ||
-           chn->to_forward + chn->buf->o >= reserved)
+       reserved = global.tune.maxrewrite - channel_in_transit(chn);
+       if (reserved < 0)
                reserved = 0;
-       else
-               reserved -= chn->to_forward + chn->buf->o;
-
        return reserved;
 }