diff --git a/dnsapi/dns_ad.sh b/dnsapi/dns_ad.sh
index 158ea951..379b51f9 100644
--- a/dnsapi/dns_ad.sh
+++ b/dnsapi/dns_ad.sh
@@ -5,8 +5,7 @@
#This is the Alwaysdata api wrapper for acme.sh
-AD_HOST="api.alwaysdata.com"
-AD_URL="https://$AD_API_KEY:@$AD_HOST"
+AD_API_URL="https://$AD_API_KEY:@api.alwaysdata.com/v1"
######## Public functions #####################
@@ -35,7 +34,7 @@ dns_ad_add() {
_ad_tmpl_json="{\"domain\":$_domain_id,\"type\":\"TXT\",\"name\":\"$_sub_domain\",\"value\":\"$txtvalue\"}"
- if ad_rest POST "record/" "" "$_ad_tmpl_json" && [ -z "$response" ]; then
+ if _ad_rest POST "record/" "$_ad_tmpl_json" && [ -z "$response" ]; then
_info "txt record updated success."
return 0
fi
@@ -57,37 +56,51 @@ dns_ad_rm() {
_debug _sub_domain "$_sub_domain"
_debug _domain "$_domain"
- if ad_rest DELETE "record/" "domain=$_domain_id&name=$_sub_domain" "" && [ -z "$response" ]; then
- _info "txt record deleted success."
- return 0
+ _debug "Getting txt records"
+ _ad_rest GET "record/?domain=$_domain_id&name=$_sub_domain"
+
+ if [ -n "$response" ]; then
+ record_id=$(printf "%s\n" "$response" | _egrep_o "\"id\":\s*[0-9]+" | cut -d : -f 2 | tr -d \ | head -n 1)
+ _debug record_id "$record_id"
+ if [ -z "$record_id" ]; then
+ _err "Can not get record id to remove."
+ return 1
+ fi
+ if _ad_rest DELETE "record/$record_id/" && [ -z "$response" ]; then
+ _info "txt record deleted success."
+ return 0
+ fi
+ _debug response "$response"
+ return 1
fi
- _debug response "$response"
return 1
}
#################### Private functions below ##################################
-
+#_acme-challenge.www.domain.com
+#returns
+# _sub_domain=_acme-challenge.www
+# _domain=domain.com
+# _domain_id=12345
_get_root() {
domain=$1
i=2
p=1
- if ad_rest GET "domain/"; then
+ if _ad_rest GET "domain/"; then
+ response="$(echo "$response" | tr -d "\n" | sed 's/{/\n&/g')"
while true; do
h=$(printf "%s" "$domain" | cut -d . -f $i-100)
+ _debug h "$h"
if [ -z "$h" ]; then
#not valid
return 1
fi
- if _contains "$response" "$h"; then
- hostedzone="$(echo "$response" | tr -d "\n" | sed 's/