BUG/MINOR: channel: compare to_forward with buf->i, not buf->size

We know that all incoming data are going to be purged if to_forward
is greater than them, not only if greater than the buffer size. This
buf has no direct impact on this version, but it participates to some
bugs affecting http-send-name-header since 1.4. This fix will have to
be backported down to 1.4 albeit in a different form.
diff --git a/include/proto/channel.h b/include/proto/channel.h
index 3ec9218..ca08ff1 100644
--- a/include/proto/channel.h
+++ b/include/proto/channel.h
@@ -138,10 +138,13 @@
 	if (!rem)
 		return 1; /* buffer already full */
 
-	if (chn->to_forward >= chn->buf->size ||
-	    (CHN_INFINITE_FORWARD < MAX_RANGE(typeof(chn->buf->size)) && // just there to ensure gcc
-	     chn->to_forward == CHN_INFINITE_FORWARD))                  // avoids the useless second
-		return 0;                                               // test whenever possible
+	/* now we know there's some room left, verify if we're touching
+	 * the reserve with some permanent input data.
+	 */
+	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 0;                                             // test whenever possible
 
 	rem -= global.tune.maxrewrite;
 	rem += chn->buf->o;
@@ -300,8 +303,8 @@
 	if (!rem)
 		return rem; /* buffer already full */
 
-	if (chn->to_forward >= chn->buf->size ||
-	    (CHN_INFINITE_FORWARD < MAX_RANGE(typeof(chn->buf->size)) && // just there to ensure gcc
+	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