fix: try-catch for unknow reason to inhibit api crash

This commit is contained in:
JimMoen 2024-02-28 14:29:46 +08:00
parent 042a84c30f
commit 812e8ef314
No known key found for this signature in database
1 changed files with 27 additions and 9 deletions

View File

@ -883,6 +883,7 @@ gen_point(Type, Name, Path) ->
%% TODO: cert manager for more generic utils functions
cert_expiry_at_from_path(Path0) ->
Path = emqx_schema:naive_env_interpolation(Path0),
try
case file:read_file(Path) of
{ok, PemBin} ->
[CertEntry | _] = public_key:pem_decode(PemBin),
@ -891,7 +892,24 @@ cert_expiry_at_from_path(Path0) ->
{'utcTime', NotAfterUtc} =
Cert#'Certificate'.'tbsCertificate'#'TBSCertificate'.validity#'Validity'.'notAfter',
utc_time_to_epoch(NotAfterUtc);
{error, _} ->
{error, Reason} ->
?SLOG(error, #{
msg => "read_cert_file_failed",
path => Path0,
resolved_path => Path,
reason => Reason
}),
0
end
catch
E:R ->
?SLOG(error, #{
msg => "obtain_cert_expiry_time_failed",
error => E,
reason => R,
path => Path0,
resolved_path => Path
}),
0
end.