|
@@ -4,11 +4,13 @@
|
|
|
# Report Bugs here: https://github.com/Marvo2011/acme.sh/issues/1
|
|
|
# Last Edit: 17.02.2022
|
|
|
|
|
|
+DNS_CHALLENGE_PREFIX_ESCAPED="_acme-challenge\."
|
|
|
+
|
|
|
dns_selfhost_add() {
|
|
|
- domain=$1
|
|
|
+ fulldomain=$1
|
|
|
txt=$2
|
|
|
_info "Calling acme-dns on selfhost"
|
|
|
- _debug fulldomain "$domain"
|
|
|
+ _debug fulldomain "$fulldomain"
|
|
|
_debug txtvalue "$txt"
|
|
|
|
|
|
SELFHOSTDNS_UPDATE_URL="https://selfhost.de/cgi-bin/api.pl"
|
|
@@ -31,7 +33,16 @@ dns_selfhost_add() {
|
|
|
SELFHOSTDNS_LAST_SLOT=1
|
|
|
fi
|
|
|
|
|
|
- rid=$(echo "$SELFHOSTDNS_MAP" | grep -Eoi "$domain:(\d+)" | tr -d "$domain:")
|
|
|
+ # cut DNS_CHALLENGE_PREFIX_ESCAPED from fulldomain if present at the beginning of the string
|
|
|
+ lookupdomain=$(echo "$fulldomain" | sed "s/^$DNS_CHALLENGE_PREFIX_ESCAPED//")
|
|
|
+ _debug lookupdomain "$lookupdomain"
|
|
|
+
|
|
|
+ # get the RID for lookupdomain or fulldomain from SELFHOSTDNS_MAP
|
|
|
+ # only match full domains (at the beginning of the string or with a leading whitespace),
|
|
|
+ # e.g. don't match mytest.example.com or sub.test.example.com for test.example.com
|
|
|
+ # replace the whole string with the RID (matching group 3) for assignment
|
|
|
+ # if the domain is defined multiple times only the last occurance will be matched
|
|
|
+ rid=$(echo "$SELFHOSTDNS_MAP" | sed -n "s/\(^\|^.*\s\)\($lookupdomain:\|$fulldomain:\)\([0-9][0-9]*\)\(.*\)/\3/Ip")
|
|
|
|
|
|
if test -z "$rid"; then
|
|
|
if [ $SELFHOSTDNS_LAST_SLOT = "2" ]; then
|
|
@@ -69,9 +80,9 @@ dns_selfhost_add() {
|
|
|
}
|
|
|
|
|
|
dns_selfhost_rm() {
|
|
|
- domain=$1
|
|
|
+ fulldomain=$1
|
|
|
txt=$2
|
|
|
- _debug fulldomain "$domain"
|
|
|
+ _debug fulldomain "$fulldomain"
|
|
|
_debug txtvalue "$txt"
|
|
|
_info "Creating and removing of records is not supported by selfhost API, will not delete anything."
|
|
|
}
|