mirror of
http://git.haproxy.org/git/haproxy.git/
synced 2025-05-10 03:38:01 +00:00
MINOR: send-proxy-v2: sends authority TLV according to TLV received
Since patch "7185b789", the authority TLV in a PROXYv2 header from a client connection is stored. Authority TLV sends in PROXYv2 should be taken into account to allow chaining PROXYv2 without droping it.
This commit is contained in:
parent
c046d167e4
commit
8a4ffa0aab
@ -1308,16 +1308,26 @@ int make_proxy_line_v2(char *buf, int buf_len, struct server *srv, struct connec
|
|||||||
ret += make_tlv(&buf[ret], (buf_len - ret), PP2_TYPE_ALPN, value_len, value);
|
ret += make_tlv(&buf[ret], (buf_len - ret), PP2_TYPE_ALPN, value_len, value);
|
||||||
}
|
}
|
||||||
|
|
||||||
#ifdef USE_OPENSSL
|
|
||||||
if (srv->pp_opts & SRV_PP_V2_AUTHORITY) {
|
if (srv->pp_opts & SRV_PP_V2_AUTHORITY) {
|
||||||
value = ssl_sock_get_sni(remote);
|
value = NULL;
|
||||||
|
if (remote && remote->proxy_authority) {
|
||||||
|
value = remote->proxy_authority;
|
||||||
|
value_len = remote->proxy_authority_len;
|
||||||
|
}
|
||||||
|
#ifdef USE_OPENSSL
|
||||||
|
else {
|
||||||
|
if (value = ssl_sock_get_sni(remote))
|
||||||
|
value_len = strlen(value);
|
||||||
|
}
|
||||||
|
#endif
|
||||||
if (value) {
|
if (value) {
|
||||||
if ((buf_len - ret) < sizeof(struct tlv))
|
if ((buf_len - ret) < sizeof(struct tlv))
|
||||||
return 0;
|
return 0;
|
||||||
ret += make_tlv(&buf[ret], (buf_len - ret), PP2_TYPE_AUTHORITY, strlen(value), value);
|
ret += make_tlv(&buf[ret], (buf_len - ret), PP2_TYPE_AUTHORITY, value_len, value);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
#ifdef USE_OPENSSL
|
||||||
if (srv->pp_opts & SRV_PP_V2_SSL) {
|
if (srv->pp_opts & SRV_PP_V2_SSL) {
|
||||||
struct tlv_ssl *tlv;
|
struct tlv_ssl *tlv;
|
||||||
int ssl_tlv_len = 0;
|
int ssl_tlv_len = 0;
|
||||||
|
Loading…
Reference in New Issue
Block a user