DNS_PLUGIN_PATH="/usr/share/proxmox-acme/dnsapi"
HTTP_HEADER="$(mktemp)"
+DEBUG="0"
+
_base64() {
openssl base64 -e | tr -d '\r\n'
}
}
_debug() {
- return
+ if [[ $DEBUG -eq 0 ]]; then
+ return
+ fi
+ printf -- "%s" "[$(date)] " >&1
+ echo "$1 $2"
}
_debug2() {
- return
+ _debug $1 $2
}
_debug3() {
- return
+ _debug $1 $2
}
_secure_debug() {
- return
+ _debug $1 $2
}
_secure_debug2() {
- return
+ _debug $1 $2
}
_secure_debug3() {
- return
+ _debug $1 $2
}
_saveaccountconf() {
# Proxmox implementation to inject the DNSAPI variables
_load_plugin_config() {
- tmp_str="${plugin_conf_string//[^,]}"
- index="$(_math ${#tmp_str} + 1)"
- while [ "$index" -gt "0" ]
- do
- field=$(_getfield $plugin_conf_string "$index" ",")
- ADDR=(${field/=/ })
+ while IFS= read -r line; do
+ ADDR=(${line/=/ })
key="${ADDR[0]}"
value="${ADDR[1]}"
- # decode base64 encoded values
- value=$(echo $value | /usr/bin/openssl base64 -d -A)
-
# acme.sh uses eval insted of export
- export "$key"="$value"
- index="$(_math "$index" - 1)"
+ if [ -n "$key" ]; then
+ export "$key"="$value"
+ fi
done
}
# $2 <String> Fully Qualified Domain Name
# $3 <String> value for TXT record
# $4 <String> DNS plugin auth and config parameter separated by ","
+# $5 <Integer> 0 is off, and the default all others are on.
setup() {
dns_plugin="dns_$1"
dns_plugin_path="${DNS_PLUGIN_PATH}/${dns_plugin}.sh"
fqdn="_acme-challenge.$2"
- txtvalue=$3
+ DEBUG=$3
+ IFS= read -r txtvalue
plugin_conf_string=$4
_load_plugin_config
dns_plugin="dns_$1"
dns_plugin_path="${DNS_PLUGIN_PATH}/${dns_plugin}.sh"
fqdn="_acme-challenge.$2"
- txtvalue=$3
- plugin_conf_string=$4
+ DEBUG=$3
+ IFS= read -r txtvalue
_load_plugin_config