MEDIUM: channel: make buffer_reserved() use channel_in_transit()

This ensures that we rely on a sane computation for the buffer size.
This commit is contained in:
Willy Tarreau 2015-01-14 14:07:13 +01:00
parent 1a4484dec8
commit fe57834955

View 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;
}