Revert "BUG/MINOR: connection: make sure to correctly tag local PROXY connections"
This reverts commit 52d0ed904f97b85d846416ae9cb20798b7452770.
As explained in this thread, it breaks Dovecot:
https://www.mail-archive.com/haproxy@formilux.org/msg36890.html
Sadly, the proposed fix there in turn broke Apache 2.4. A different
(likely configurable) solution will be needed.
diff --git a/src/connection.c b/src/connection.c
index 5617a1a..5f058e4 100644
--- a/src/connection.c
+++ b/src/connection.c
@@ -1256,18 +1256,11 @@
ret = PP2_HDR_LEN_UNSPEC;
}
else {
- /* Note: due to historic compatibility with V1 which required
- * to send "PROXY" with local addresses for local connections,
- * we can end up here with the remote in fact being our outgoing
- * connection. We still want to send real addresses and LOCAL on
- * it.
- */
- hdr->ver_cmd = PP2_VERSION;
- hdr->ver_cmd |= conn_is_back(remote) ? PP2_CMD_LOCAL : PP2_CMD_PROXY;
/* IPv4 for both src and dst */
if (src->ss_family == AF_INET && dst->ss_family == AF_INET) {
if (buf_len < PP2_HDR_LEN_INET)
return 0;
+ hdr->ver_cmd = PP2_VERSION | PP2_CMD_PROXY;
hdr->fam = PP2_FAM_INET | PP2_TRANS_STREAM;
hdr->addr.ip4.src_addr = ((struct sockaddr_in *)src)->sin_addr.s_addr;
hdr->addr.ip4.src_port = ((struct sockaddr_in *)src)->sin_port;
@@ -1281,6 +1274,7 @@
if (buf_len < PP2_HDR_LEN_INET6)
return 0;
+ hdr->ver_cmd = PP2_VERSION | PP2_CMD_PROXY;
hdr->fam = PP2_FAM_INET6 | PP2_TRANS_STREAM;
if (src->ss_family == AF_INET) {
v4tov6(&tmp, &((struct sockaddr_in *)src)->sin_addr);