MEDIUM: http: add support for sending the server's name in the outgoing request

New option "http-send-name-header" specifies the name of a header which
will hold the server name in outgoing requests. This is the name of the
server the connection is really sent to, which means that upon redispatches,
the header's value is updated so that it always matches the server's name.
diff --git a/include/proto/proto_http.h b/include/proto/proto_http.h
index f5dcbce..0eed363 100644
--- a/include/proto/proto_http.h
+++ b/include/proto/proto_http.h
@@ -71,6 +71,7 @@
 int http_process_request(struct session *t, struct buffer *req, int an_bit);
 int http_process_tarpit(struct session *s, struct buffer *req, int an_bit);
 int http_process_request_body(struct session *s, struct buffer *req, int an_bit);
+int http_send_name_header(struct http_txn *txn, struct http_msg *msg, struct buffer *buf, struct proxy* be, const char* svr_name);
 int http_wait_for_response(struct session *s, struct buffer *rep, int an_bit);
 int http_process_res_common(struct session *t, struct buffer *rep, int an_bit, struct proxy *px);
 int http_request_forward_body(struct session *s, struct buffer *req, int an_bit);
diff --git a/include/types/proxy.h b/include/types/proxy.h
index 593260e..d0bc51c 100644
--- a/include/types/proxy.h
+++ b/include/types/proxy.h
@@ -272,6 +272,8 @@
 	int fwdfor_hdr_len;			/* length of "x-forwarded-for" header */
 	char *orgto_hdr_name;			/* header to use - default: "x-original-to" */
 	int orgto_hdr_len;			/* length of "x-original-to" header */
+	char *server_id_hdr_name;                   /* the header to use to send the server id (name) */
+	int server_id_hdr_len;                      /* the length of the id (name) header... name */
 
 	unsigned down_trans;			/* up-down transitions */
 	unsigned down_time;			/* total time the proxy was down */