[MINOR] checks: make the HTTP check code add the CRLF itself

Currently we cannot easily add headers nor anything to HTTP checks
because the requests are pre-formatted with the last CRLF. Make the
check code add the CRLF itself so that we can later add useful info.
diff --git a/include/common/defaults.h b/include/common/defaults.h
index bdc4176..7746a98 100644
--- a/include/common/defaults.h
+++ b/include/common/defaults.h
@@ -111,7 +111,7 @@
 #define	DEF_CHKINTR     2000
 #define DEF_FALLTIME    3
 #define DEF_RISETIME    2
-#define DEF_CHECK_REQ   "OPTIONS / HTTP/1.0\r\n\r\n"
+#define DEF_CHECK_REQ   "OPTIONS / HTTP/1.0\r\n"
 #define DEF_SMTP_CHECK_REQ   "HELO localhost\r\n"
 
 #define DEF_HANA_ONERR		HANA_ONERR_FAILCHK
diff --git a/src/cfgparse.c b/src/cfgparse.c
index 84b99fe..587a020 100644
--- a/src/cfgparse.c
+++ b/src/cfgparse.c
@@ -2564,12 +2564,12 @@
 				curproxy->check_req = strdup(DEF_CHECK_REQ); /* default request */
 				curproxy->check_len = strlen(DEF_CHECK_REQ);
 			} else if (!*args[3]) { /* one argument : URI */
-				int reqlen = strlen(args[2]) + strlen("OPTIONS  HTTP/1.0\r\n\r\n") + 1;
+				int reqlen = strlen(args[2]) + strlen("OPTIONS  HTTP/1.0\r\n") + 1;
 				curproxy->check_req = (char *)malloc(reqlen);
 				curproxy->check_len = snprintf(curproxy->check_req, reqlen,
-							       "OPTIONS %s HTTP/1.0\r\n\r\n", args[2]); /* URI to use */
+							       "OPTIONS %s HTTP/1.0\r\n", args[2]); /* URI to use */
 			} else { /* more arguments : METHOD URI [HTTP_VER] */
-				int reqlen = strlen(args[2]) + strlen(args[3]) + 3 + strlen("\r\n\r\n");
+				int reqlen = strlen(args[2]) + strlen(args[3]) + 3 + strlen("\r\n");
 				if (*args[4])
 					reqlen += strlen(args[4]);
 				else
@@ -2577,7 +2577,7 @@
 		    
 				curproxy->check_req = (char *)malloc(reqlen);
 				curproxy->check_len = snprintf(curproxy->check_req, reqlen,
-							       "%s %s %s\r\n\r\n", args[2], args[3], *args[4]?args[4]:"HTTP/1.0");
+							       "%s %s %s\r\n", args[2], args[3], *args[4]?args[4]:"HTTP/1.0");
 			}
 		}
 		else if (!strcmp(args[1], "ssl-hello-chk")) {
diff --git a/src/checks.c b/src/checks.c
index 50e3190..3f6fa90 100644
--- a/src/checks.c
+++ b/src/checks.c
@@ -664,6 +664,9 @@
 		    (s->proxy->options & PR_O_SMTP_CHK) ||
 		    (s->proxy->options2 & PR_O2_MYSQL_CHK)) {
 			int ret;
+			const char *check_req = s->proxy->check_req;
+			int check_len = s->proxy->check_len;
+
 			/* we want to check if this host replies to HTTP or SSLv3 requests
 			 * so we'll send the request, and won't wake the checker up now.
 			 */
@@ -673,9 +676,16 @@
 				int gmt_time = htonl(date.tv_sec);
 				memcpy(s->proxy->check_req + 11, &gmt_time, 4);
 			}
+			else if (s->proxy->options & PR_O_HTTP_CHK) {
+				memcpy(trash, check_req, check_len);
+				trash[check_len++] = '\r';
+				trash[check_len++] = '\n';
+				trash[check_len] = '\0';
+				check_req = trash;
+			}
 
-			ret = send(fd, s->proxy->check_req, s->proxy->check_len, MSG_DONTWAIT | MSG_NOSIGNAL);
-			if (ret == s->proxy->check_len) {
+			ret = send(fd, check_req, check_len, MSG_DONTWAIT | MSG_NOSIGNAL);
+			if (ret == check_len) {
 				/* we allow up to <timeout.check> if nonzero for a responce */
 				if (s->proxy->timeout.check)
 					t->expire = tick_add_ifset(now_ms, s->proxy->timeout.check);