From 79dc51653bcaa74d93b2288d6b81cbca3bf838b9 Mon Sep 17 00:00:00 2001 From: Charles Date: Wed, 10 Feb 2021 23:41:03 +0100 Subject: [PATCH 1/3] Forward all Opts to SSL config Pass all the supplied Opts, Erlang SSL will pick out only what it needs / understands. Don't discard other options user intends to pass for SSL config --- src/elli.erl | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) diff --git a/src/elli.erl b/src/elli.erl index 9f233ce..b4201d8 100644 --- a/src/elli.erl +++ b/src/elli.erl @@ -129,11 +129,13 @@ init([Opts]) -> MinAcceptors = proplists:get_value(min_acceptors, Opts, 20), UseSSL = proplists:get_value(ssl, Opts, false), - KeyFile = proplists:get_value(keyfile, Opts), - CertFile = proplists:get_value(certfile, Opts), + %% KeyFile = proplists:get_value(keyfile, Opts), + %% CertFile = proplists:get_value(certfile, Opts), SockType = ?IF(UseSSL, ssl, plain), + %% Pass all the supplied Opts, Erlang SSL will pick out only + %% what it needs / understands. Don't discard other options user intends to pass for SSL config SSLSockOpts = ?IF(UseSSL, - [{keyfile, KeyFile}, {certfile, CertFile}], + Opts, []), AcceptTimeout = proplists:get_value(accept_timeout, Opts, 10000), From 9096528aa233997c2799aa75bde64e3bdbcb9516 Mon Sep 17 00:00:00 2001 From: Charles Date: Thu, 11 Feb 2021 00:40:04 +0100 Subject: [PATCH 2/3] Update elli.erl --- src/elli.erl | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) diff --git a/src/elli.erl b/src/elli.erl index b4201d8..50246ed 100644 --- a/src/elli.erl +++ b/src/elli.erl @@ -134,8 +134,15 @@ init([Opts]) -> SockType = ?IF(UseSSL, ssl, plain), %% Pass all the supplied Opts, Erlang SSL will pick out only %% what it needs / understands. Don't discard other options user intends to pass for SSL config + %% Sanitize Opts + Opts1 = proplists:delete(reuseaddr, Opts), + Opts2 = proplists:delete(backlog, Opts1), + Opts3 = proplists:delete(packet, Opts2), + Opts4 = proplists:delete(active, Opts3), + Opts5 = proplists:delete(ssl, Opts4), + SSLSockOpts = ?IF(UseSSL, - Opts, + Opts5, []), AcceptTimeout = proplists:get_value(accept_timeout, Opts, 10000), From ed71872aaacdeebb81e33bb2d5efda94c801d08d Mon Sep 17 00:00:00 2001 From: Charles Date: Thu, 11 Feb 2021 00:42:46 +0100 Subject: [PATCH 3/3] Update elli.erl --- src/elli.erl | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/elli.erl b/src/elli.erl index 50246ed..3829a12 100644 --- a/src/elli.erl +++ b/src/elli.erl @@ -140,7 +140,7 @@ init([Opts]) -> Opts3 = proplists:delete(packet, Opts2), Opts4 = proplists:delete(active, Opts3), Opts5 = proplists:delete(ssl, Opts4), - + SSLSockOpts = ?IF(UseSSL, Opts5, []),