diff options
author | Evgeniy Khramtsov <ekhramtsov@process-one.net> | 2017-11-17 13:06:04 +0300 |
---|---|---|
committer | Evgeniy Khramtsov <ekhramtsov@process-one.net> | 2017-11-17 13:06:04 +0300 |
commit | 224a3e13c942798e263073229cf7d8fcfed02410 (patch) | |
tree | 32eaf952b844eb4175567696d7a01d28a922426e | |
parent | Merge branch 'master' of github.com:processone/ejabberd (diff) |
Improve ACME options validation
Diffstat (limited to '')
-rw-r--r-- | src/ejabberd_acme.erl | 23 |
1 files changed, 12 insertions, 11 deletions
diff --git a/src/ejabberd_acme.erl b/src/ejabberd_acme.erl index 5cb15dcc5..0d54918d9 100644 --- a/src/ejabberd_acme.erl +++ b/src/ejabberd_acme.erl @@ -1203,19 +1203,20 @@ generate_key() -> %% Option Parsing Code %% %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% - -parse_acme_opts(AcmeOpt) -> - [parse_acme_opt(Opt) || Opt <- AcmeOpt]. - - -parse_acme_opt({ca_url, CaUrl}) when is_bitstring(CaUrl) -> - {ca_url, binary_to_list(CaUrl)}; -parse_acme_opt({contact, Contact}) when is_bitstring(Contact) -> - {contact, Contact}. - -spec opt_type(acme) -> fun((acme_config()) -> (acme_config())); (atom()) -> [atom()]. opt_type(acme) -> - fun parse_acme_opts/1; + fun(L) -> + lists:map( + fun({ca_url, URL}) -> + URL1 = binary_to_list(URL), + {ok, _} = http_uri:parse(URL1), + URL1; + ({contact, Contact}) -> + [<<_, _/binary>>, <<_, _/binary>>] = + binary:split(Contact, <<":">>), + Contact + end, L) + end; opt_type(_) -> [acme]. |