From e5d4e272b2e1418c66ff246268e333ab88ef9da2 Mon Sep 17 00:00:00 2001 From: JimMoen Date: Tue, 26 Apr 2022 21:50:21 +0800 Subject: [PATCH] fix(ssl): sni option should be atom --- apps/emqx/src/emqx_tls_lib.erl | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/apps/emqx/src/emqx_tls_lib.erl b/apps/emqx/src/emqx_tls_lib.erl index 9f0c80be2..5f7c895cf 100644 --- a/apps/emqx/src/emqx_tls_lib.erl +++ b/apps/emqx/src/emqx_tls_lib.erl @@ -476,7 +476,7 @@ to_client_opts(Opts) -> CertFile = ensure_str(Get(certfile)), CAFile = ensure_str(Get(cacertfile)), Verify = GetD(verify, verify_none), - SNI = ensure_str(Get(server_name_indication)), + SNI = ensure_sni(Get(server_name_indication)), Versions = integral_versions(Get(versions)), Ciphers = integral_ciphers(Versions, Get(ciphers)), filter([ @@ -505,6 +505,11 @@ fuzzy_map_get(Key, Options, Default) -> Default end. +ensure_sni(disable) -> disable; +ensure_sni(undefined) -> undefined; +ensure_sni(L) when is_list(L) -> L; +ensure_sni(B) when is_binary(B) -> unicode:characters_to_list(B, utf8). + ensure_str(undefined) -> undefined; ensure_str(L) when is_list(L) -> L; ensure_str(B) when is_binary(B) -> unicode:characters_to_list(B, utf8).