Skip to content

Commit 80e5e94

Browse files
committed
Improve readability of the verify_fun helpers
1 parent 7c52663 commit 80e5e94

File tree

1 file changed

+16
-11
lines changed

1 file changed

+16
-11
lines changed

src/just_tls.erl

Lines changed: 16 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -107,30 +107,33 @@ close(#tls_socket{ssl_socket = SSLSocket}) ->
107107
%% @doc Prepare SSL options for direct use of ssl:connect/2 (client side)
108108
%% The `disconnect_on_failure' option is expected to be unset or true
109109
-spec make_ssl_opts(mongoose_tls:options()) -> [ssl:tls_option()].
110-
make_ssl_opts(Opts) ->
111-
{dummy_ref, SSLOpts} = format_opts_with_ref(Opts, false),
112-
SSLOpts.
110+
make_ssl_opts(#{verify_mode := Mode} = Opts) ->
111+
SslOpts = format_opts(Opts, false),
112+
[{verify_fun, verify_fun(Mode)} | SslOpts].
113113

114114
%% @doc Prepare SSL options for direct use of ssl:handshake/2 (server side)
115115
%% The `disconnect_on_failure' option is expected to be unset or true
116116
-spec make_cowboy_ssl_opts(mongoose_tls:options()) -> [ssl:tls_option()].
117-
make_cowboy_ssl_opts(Opts) ->
118-
{dummy_ref, SSLOpts} = format_opts_with_ref(Opts, fail_if_no_peer_cert),
119-
SSLOpts.
117+
make_cowboy_ssl_opts(#{verify_mode := Mode} = Opts) ->
118+
SslOpts = format_opts(Opts, fail_if_no_peer_cert),
119+
[{verify_fun, verify_fun(Mode)} | SslOpts].
120120

121121
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
122122
%% local functions
123123
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
124124

125125
format_opts_with_ref(Opts, FailIfNoPeerCert) ->
126+
SslOpts0 = format_opts(Opts, FailIfNoPeerCert),
126127
{Ref, VerifyFun} = verify_fun_opt(Opts),
128+
SslOpts = [{verify_fun, VerifyFun} | SslOpts0],
129+
{Ref, SslOpts}.
130+
131+
format_opts(Opts, FailIfNoPeerCert) ->
127132
SslOpts0 = maps:to_list(maps:with(ssl_option_keys(), Opts)),
128133
SslOpts1 = sni_opts(SslOpts0, Opts),
129134
SslOpts2 = verify_opts(SslOpts1, Opts),
130135
SslOpts3 = hibernate_opts(SslOpts2, Opts),
131-
SslOpts4 = fail_if_no_peer_cert_opts(SslOpts3, Opts, FailIfNoPeerCert),
132-
SslOpts = [{verify_fun, VerifyFun} | SslOpts4],
133-
{Ref, SslOpts}.
136+
fail_if_no_peer_cert_opts(SslOpts3, Opts, FailIfNoPeerCert).
134137

135138
ssl_option_keys() ->
136139
[certfile, cacertfile, ciphers, keyfile, password, versions, dhfile].
@@ -224,8 +227,10 @@ verify_fun(none) ->
224227
send_verification_failure(Pid, Ref, Reason) ->
225228
Pid ! {cert_verification_failure, Ref, Reason}.
226229

227-
receive_verify_results(dummy_ref) -> [];
228-
receive_verify_results(Ref) -> receive_verify_results(Ref, []).
230+
receive_verify_results(dummy_ref) ->
231+
[];
232+
receive_verify_results(Ref) ->
233+
receive_verify_results(Ref, []).
229234

230235
receive_verify_results(Ref, Acc) ->
231236
receive

0 commit comments

Comments
 (0)