# DNS API for Domain-Offensive / Resellerinterface / Domainrobot
+# Report bugs at https://github.com/seidler2547/acme.sh/issues
+
+# set these environment variables to match your customer ID and password:
# DO_PID="KD-1234567"
# DO_PW="cdfkjl3n2"
dns_do_add() {
fulldomain=$1
txtvalue=$2
- _cookiejar="$(_mktemp)"
if _dns_do_authenticate; then
_info "Adding TXT record to ${_domain} as ${fulldomain}"
_dns_do_soap createRR origin "${_domain}" name "${fulldomain}" type TXT data "${txtvalue}" ttl 300
#fulldomain
dns_do_rm() {
fulldomain=$1
- _cookiejar="$(_mktemp)"
if _dns_do_authenticate; then
if _dns_do_list_rrs; then
+ _dns_do_had_error=0
for _rrid in ${_rr_list}; do
_info "Deleting resource record $_rrid for $_domain"
_dns_do_soap deleteRR origin "${_domain}" rrid "${_rrid}"
if ! _contains "${response}" '>success<'; then
+ _dns_do_had_error=1
_err "Could not delete resource record for ${_domain}, id ${_rrid}"
fi
done
- return 0
+ return $_dns_do_had_error
fi
fi
return 1
_debug "_domain $_domain"
return 0
else
- _err "Authentication failed, check logs"
+ _err "Authentication failed, are DO_PID and DO_PW set correctly?"
fi
return 1
}
_err "getRRList origin ${_domain} failed"
return 1
fi
- _rr_list="$(echo "${response}" \
- | tr -d "\n\r\t" \
- | sed -e 's/<item xsi:type="ns2:Map">/\n/g' \
- | grep ">$(_regexcape "$fulldomain")</value>" \
- | sed -e 's/<\/item>/\n/g' \
- | grep '>id</key><value' \
- | _egrep_o '>[0-9]{1,16}<' \
- | tr -d '><')"
+ _rr_list="$(echo "${response}" |
+ tr -d "\n\r\t" |
+ sed -e 's/<item xsi:type="ns2:Map">/\n/g' |
+ grep ">$(_regexcape "$fulldomain")</value>" |
+ sed -e 's/<\/item>/\n/g' |
+ grep '>id</key><value' |
+ _egrep_o '>[0-9]{1,16}<' |
+ tr -d '><')"
[ "${_rr_list}" ]
}
</env:Envelope>'
# set SOAP headers
- _H1="SOAPAction: ${DO_URL}#${func}"
- # add cookie header if present
- [ -s "${_cookiejar}" ] && _H2="$(cat "${_cookiejar}")"
+ export _H1="SOAPAction: ${DO_URL}#${func}"
if ! response="$(_post "${_xml}" "${DO_URL}")"; then
_err "Error <$1>"
_debug2 "SOAP response $response"
# retrieve cookie header
- _egrep_o 'Cookie: [^;]+' <"$HTTP_HEADER" | head -1 >"${_cookiejar}"
+ _H2="$(_egrep_o 'Cookie: [^;]+' <"$HTTP_HEADER" | _head_n 1)"
+ export _H2
return 0
}
domain=$1
i=1
- _all_domains="$(_mktemp)"
_dns_do_soap getDomainList
- echo "${response}" | tr -d "\n\r\t " | _egrep_o 'domain</key><value[^>]+>[^<]+' | sed -e 's/^domain<\/key><value[^>]+>//g' >"${_all_domains}"
+ _all_domains="$(echo "${response}" |
+ tr -d "\n\r\t " |
+ _egrep_o 'domain</key><value[^>]+>[^<]+' |
+ sed -e 's/^domain<\/key><value[^>]*>//g')"
while true; do
h=$(printf "%s" "$domain" | cut -d . -f $i-100)
return 1
fi
- if grep -q "$(_regexcape "$h")" "${_all_domains}"; then
+ if _contains "${_all_domains}" "^$(_regexcape "$h")\$"; then
_domain="$h"
return 0
fi