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

This ensures that we rely on a sane computation for the buffer size.
diff --git a/include/proto/channel.h b/include/proto/channel.h
index dccb987..89bef1d 100644
--- a/include/proto/channel.h
+++ b/include/proto/channel.h
@@ -311,28 +311,12 @@
  */
 static inline int bi_avail(const struct channel *chn)
 {
-	int rem = chn->buf->size;
-	int rem2;
-
-	rem -= chn->buf->o;
-	rem -= chn->buf->i;
-	if (!rem)
-		return rem; /* buffer already full */
-
-	if (chn->to_forward >= chn->buf->i ||
-	    (CHN_INFINITE_FORWARD < MAX_RANGE(typeof(chn->buf->i)) &&   // just there to ensure gcc
-	     chn->to_forward == CHN_INFINITE_FORWARD))                  // avoids the useless second
-		return rem;                                             // test whenever possible
-
-	rem2 = rem - global.tune.maxrewrite;
-	rem2 += chn->buf->o;
-	rem2 += chn->to_forward;
+	int ret;
 
-	if (rem > rem2)
-		rem = rem2;
-	if (rem > 0)
-		return rem;
-	return 0;
+	ret = buffer_max_len(chn) - chn->buf->i - chn->buf->o;
+	if (ret < 0)
+		ret = 0;
+	return ret;
 }
 
 /* Cut the "tail" of the channel's buffer, which means strip it to the length