aboutsummaryrefslogtreecommitdiff
path: root/src/ejabberd_acme.erl
diff options
context:
space:
mode:
authorEvgeniy Khramtsov <ekhramtsov@process-one.net>2017-11-17 13:06:04 +0300
committerEvgeniy Khramtsov <ekhramtsov@process-one.net>2017-11-17 13:06:04 +0300
commit224a3e13c942798e263073229cf7d8fcfed02410 (patch)
tree32eaf952b844eb4175567696d7a01d28a922426e /src/ejabberd_acme.erl
parentMerge branch 'master' of github.com:processone/ejabberd (diff)
Improve ACME options validation
Diffstat (limited to '')
-rw-r--r--src/ejabberd_acme.erl23
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].