@ -20,7 +20,7 @@ dns_selfhost_add() {
SELFHOSTDNS_MAP = " ${ SELFHOSTDNS_MAP :- $( _readdomainconf SELFHOSTDNS_MAP) } "
SELFHOSTDNS_MAP = " ${ SELFHOSTDNS_MAP :- $( _readdomainconf SELFHOSTDNS_MAP) } "
# Selfhost api can't dynamically add TXT record,
# Selfhost api can't dynamically add TXT record,
# so we have to store the last used RID of the domain to support a second RID for wildcard domains
# so we have to store the last used RID of the domain to support a second RID for wildcard domains
# (format: ';fulldomainA:lastRid;;fulldomainB:lastRid; ...')
# (format: 'fulldomainA:lastRid fulldomainB:lastRid ...')
SELFHOSTDNS_MAP_LAST_USED_INTERNAL = $( _readdomainconf SELFHOSTDNS_MAP_LAST_USED_INTERNAL)
SELFHOSTDNS_MAP_LAST_USED_INTERNAL = $( _readdomainconf SELFHOSTDNS_MAP_LAST_USED_INTERNAL)
if [ -z " ${ SELFHOSTDNS_USERNAME :- } " ] || [ -z " ${ SELFHOSTDNS_PASSWORD :- } " ] ; then
if [ -z " ${ SELFHOSTDNS_USERNAME :- } " ] || [ -z " ${ SELFHOSTDNS_PASSWORD :- } " ] ; then
@ -44,23 +44,15 @@ dns_selfhost_add() {
rid2 = $( echo " $mapEntry " | cut -d: -f3)
rid2 = $( echo " $mapEntry " | cut -d: -f3)
# read last used rid domain
# read last used rid domain
lastUsedRidForDomainEntry = $( echo " $SELFHOSTDNS_MAP_LAST_USED_INTERNAL " | sed -n -E " s/.*(; $fulldomain :[[:digit:]]+;).*/\1 /p " )
lastUsedRidForDomainEntry = $( echo " $SELFHOSTDNS_MAP_LAST_USED_INTERNAL " | sed -n -E " s/(^|^ .*[[:space:]]) ( $fulldomain :[[:digit:]]+)(.*)/\2 /p " )
_debug2 lastUsedRidForDomainEntry " $lastUsedRidForDomainEntry "
_debug2 lastUsedRidForDomainEntry " $lastUsedRidForDomainEntry "
lastUsedRidForDomain = $( echo " $lastUsedRidForDomainEntry " | tr -d ";" | cut -d: -f2)
lastUsedRidForDomain = $( echo " $lastUsedRidForDomainEntry " | cut -d: -f2)
rid = " $rid1 "
rid = " $rid1 "
if [ " $lastUsedRidForDomain " = " $rid " ] && ! test -z " $rid2 " ; then
if [ " $lastUsedRidForDomain " = " $rid " ] && ! test -z " $rid2 " ; then
rid = " $rid2 "
rid = " $rid2 "
fi
fi
if ! test -z " $lastUsedRidForDomainEntry " ; then
# replace last used rid entry for domain
SELFHOSTDNS_MAP_LAST_USED_INTERNAL = $( echo " $SELFHOSTDNS_MAP_LAST_USED_INTERNAL " | sed -n -E " s/ $lastUsedRidForDomainEntry /; $fulldomain : $rid ;/p " )
else
# add last used rid entry for domain
SELFHOSTDNS_MAP_LAST_USED_INTERNAL = " $SELFHOSTDNS_MAP_LAST_USED_INTERNAL " " ; $fulldomain : $rid ; "
fi
_info " Trying to add $txt on selfhost for rid: $rid "
_info " Trying to add $txt on selfhost for rid: $rid "
data = " ?username= $SELFHOSTDNS_USERNAME &password= $SELFHOSTDNS_PASSWORD &rid= $rid &content= $txt "
data = " ?username= $SELFHOSTDNS_USERNAME &password= $SELFHOSTDNS_PASSWORD &rid= $rid &content= $txt "
@ -71,6 +63,20 @@ dns_selfhost_add() {
return 1
return 1
fi
fi
# write last used rid domain
newLastUsedRidForDomainEntry = " $fulldomain : $rid "
if ! test -z " $lastUsedRidForDomainEntry " ; then
# replace last used rid entry for domain
SELFHOSTDNS_MAP_LAST_USED_INTERNAL = $( echo " $SELFHOSTDNS_MAP_LAST_USED_INTERNAL " | sed -n -E " s/ $lastUsedRidForDomainEntry / $newLastUsedRidForDomainEntry /p " )
else
# add last used rid entry for domain
if test -z " $SELFHOSTDNS_MAP_LAST_USED_INTERNAL " ; then
SELFHOSTDNS_MAP_LAST_USED_INTERNAL = " $newLastUsedRidForDomainEntry "
else
SELFHOSTDNS_MAP_LAST_USED_INTERNAL = " $SELFHOSTDNS_MAP_LAST_USED_INTERNAL $newLastUsedRidForDomainEntry "
fi
fi
# Now that we know the values are good, save them
# Now that we know the values are good, save them
_saveaccountconf_mutable SELFHOSTDNS_USERNAME " $SELFHOSTDNS_USERNAME "
_saveaccountconf_mutable SELFHOSTDNS_USERNAME " $SELFHOSTDNS_USERNAME "
_saveaccountconf_mutable SELFHOSTDNS_PASSWORD " $SELFHOSTDNS_PASSWORD "
_saveaccountconf_mutable SELFHOSTDNS_PASSWORD " $SELFHOSTDNS_PASSWORD "