From f1ac793d5677498861b57ca6e1c523d53fef0a5d Mon Sep 17 00:00:00 2001 From: Evgeniy Khramtsov Date: Thu, 7 Dec 2017 17:24:34 +0300 Subject: [PATCH] Don't call pkix_is_self_signed/1 too frequently --- src/ejabberd_pkix.erl | 22 +++++++++++----------- 1 file changed, 11 insertions(+), 11 deletions(-) diff --git a/src/ejabberd_pkix.erl b/src/ejabberd_pkix.erl index 24a6a2a33..54bf8bc92 100644 --- a/src/ejabberd_pkix.erl +++ b/src/ejabberd_pkix.erl @@ -767,22 +767,22 @@ get_cert_paths(Certs, G) -> end, Certs). add_edges(G, [Cert1|T], L) -> - lists:foreach( - fun(Cert2) when Cert1 /= Cert2 -> - case public_key:pkix_is_self_signed(Cert1) of - true -> - ok; - false -> + case public_key:pkix_is_self_signed(Cert1) of + true -> + ok; + false -> + lists:foreach( + fun(Cert2) when Cert1 /= Cert2 -> case public_key:pkix_is_issuer(Cert1, Cert2) of true -> digraph:add_edge(G, Cert1, Cert2); false -> ok - end - end; - (_) -> - ok - end, L), + end; + (_) -> + ok + end, L) + end, add_edges(G, T, L); add_edges(_, [], _) -> ok.