diff options
author | Johan Bevemyr <[email protected]> | 2021-03-12 18:20:09 +0100 |
---|---|---|
committer | Loïc Hoguin <[email protected]> | 2022-03-08 14:04:22 +0100 |
commit | 56cbf3823331a56474248541987c9b9d13c452d4 (patch) | |
tree | 4550d2251b1439d682b0b3eb24304a10f9a3230d /src/gun.erl | |
parent | 7ed6d220176be60ace521a1a11a309f6537c0489 (diff) | |
download | gun-56cbf3823331a56474248541987c9b9d13c452d4.tar.gz gun-56cbf3823331a56474248541987c9b9d13c452d4.tar.bz2 gun-56cbf3823331a56474248541987c9b9d13c452d4.zip |
Don't add default SNI if already set
Diffstat (limited to 'src/gun.erl')
-rw-r--r-- | src/gun.erl | 13 |
1 files changed, 9 insertions, 4 deletions
diff --git a/src/gun.erl b/src/gun.erl index 3ca65b7..42bd409 100644 --- a/src/gun.erl +++ b/src/gun.erl @@ -1104,10 +1104,15 @@ ensure_alpn_sni(Protocols0, TransOpts0, OriginHost) -> %% %% Normally only DNS hostnames are supported for SNI. However, the ssl %% application itself allows any string through so we do the same. - if - is_list(OriginHost) -> [{server_name_indication, OriginHost}|TransOpts]; - is_atom(OriginHost) -> [{server_name_indication, atom_to_list(OriginHost)}|TransOpts]; - true -> TransOpts + %% + %% Only add SNI if not already present and OriginHost isn't an IP address. + case lists:keymember(server_name_indication, 1, TransOpts) of + false when is_list(OriginHost) -> + [{server_name_indication, OriginHost}|TransOpts]; + false when is_atom(OriginHost) -> + [{server_name_indication, atom_to_list(OriginHost)}|TransOpts]; + _ -> + TransOpts end. %% Normal TLS handshake. |