aboutsummaryrefslogtreecommitdiffstats
path: root/check-certificates
diff options
context:
space:
mode:
authorGravatar Christian Hesse <mail@eworm.de>2019-04-18 10:39:32 +0200
committerGravatar Christian Hesse <mail@eworm.de>2019-04-30 16:52:53 +0200
commit7f96e5c9669f30cd22914de7f092d009faddf304 (patch)
treed9b80f84ff3e4d65b75603c8e7d1a0a429cb7eb7 /check-certificates
parent9aac873163051aef8c1f8b5b959e5796a5341e1a (diff)
global-functions: add $WaitForFile, wait for file on fetch
The fetch command is asynchronous, the file is not guaranteed to be available when command terminates. I opened an issue at Mikrotik support (Ticket#2019041722004999), their answer: > You should perform a check in a loop. > :delay until file exist > > That can happen also with any configuration not just files. So add a function to wait for a file with given name. I have not seen this with other configuration, though.
Diffstat (limited to 'check-certificates')
-rw-r--r--check-certificates5
1 files changed, 4 insertions, 1 deletions
diff --git a/check-certificates b/check-certificates
index bd1e0ed..9dd9acb 100644
--- a/check-certificates
+++ b/check-certificates
@@ -10,6 +10,7 @@
:global SendNotification;
:global UrlEncode;
+:global WaitForFile;
:local GetIssuerCN do={
:foreach IssuerI in=$1 do={
@@ -39,7 +40,9 @@
:foreach Type in={ ".pem"; ".p12" } do={
:local CertFileName ([ $UrlEncode $CommonName ] . $Type);
:do {
- / tool fetch check-certificate=yes-without-crl ($CertRenewUrl . $CertFileName);
+ / tool fetch check-certificate=yes-without-crl \
+ ($CertRenewUrl . $CertFileName) dst-path=$CertFileName;
+ $WaitForFile $CertFileName;
:foreach PassPhrase in=$CertRenewPass do={
/ certificate import file-name=$CertFileName passphrase=$PassPhrase;
}