BUG/MINOR: fcgi-app: Don't add C-L header on response to HEAD requests

In the FCGI app, when a full response is received, if there is no
content-length and transfer-encoding headers, a content-length header is
automatically added. This avoid, as far as possible to chunk the
response. This trick was added because, most of time, scripts don"t add
those headers.

But this should not be performed for response to HEAD requests. Indeed, in
this case, there is no payload. If the payload size is not specified, we
must not added it by hand. Otherwise, a "content-length: 0" will always be
added while it is not the real payload size (unknown at this stage).

This patch should solve issue #1639. It must be backported as far as 2.2.

(cherry picked from commit d057960769f284e2e4ee9b38d3c99f28f656c71d)
Signed-off-by: Christopher Faulet <cfaulet@haproxy.com>
(cherry picked from commit c8bcd86567d28970ab412a1377e897dae073c4ef)
Signed-off-by: Christopher Faulet <cfaulet@haproxy.com>
diff --git a/src/fcgi-app.c b/src/fcgi-app.c
index b8c6a39..ef22651 100644
--- a/src/fcgi-app.c
+++ b/src/fcgi-app.c
@@ -349,7 +349,7 @@
 
 		/* Add the header "Content-Length:" if possible */
 		sl = http_get_stline(htx);
-		if (sl &&
+		if (s->txn->meth != HTTP_METH_HEAD && sl &&
 		    (sl->flags & (HTX_SL_F_XFER_LEN|HTX_SL_F_CLEN|HTX_SL_F_CHNK)) == HTX_SL_F_XFER_LEN &&
 		    (htx->flags & HTX_FL_EOM)) {
 			struct htx_blk * blk;