diff --git a/Dockerfile b/Dockerfile
index 5a64c720..84fc658f 100644
--- a/Dockerfile
+++ b/Dockerfile
@@ -6,6 +6,7 @@ RUN apk update -f \
coreutils \
curl \
socat \
+ bind-tools \
&& rm -rf /var/cache/apk/*
ENV LE_CONFIG_HOME /acme.sh
diff --git a/dnsapi/dns_inwx.sh b/dnsapi/dns_inwx.sh
index cd5af91b..f4590cf8 100755
--- a/dnsapi/dns_inwx.sh
+++ b/dnsapi/dns_inwx.sh
@@ -158,7 +158,8 @@ _inwx_login() {
export _H1
#https://github.com/inwx/php-client/blob/master/INWX/Domrobot.php#L71
- if _contains "$response" "tfa"; then
+ if _contains "$response" "code1000" \
+ && _contains "$response" "tfaGOOGLE-AUTH"; then
if [ -z "$INWX_Shared_Secret" ]; then
_err "Mobile TAN detected."
_err "Please define a shared secret."
diff --git a/dnsapi/dns_nsupdate.sh b/dnsapi/dns_nsupdate.sh
index 555f4d29..4437ab9b 100755
--- a/dnsapi/dns_nsupdate.sh
+++ b/dnsapi/dns_nsupdate.sh
@@ -1,6 +1,9 @@
#!/usr/bin/env sh
######## Public functions #####################
+ECHO=$(command -v echo)
+NSUPDATE=$(command -v nsupdate)
+NSUPDATE_COMMANDS_FILE="/tmp/nsupdate"
#Usage: dns_nsupdate_add _acme-challenge.www.domain.com "XKrxpRBosdIKFzxW_CT3KLZNf6q0HG9i01zxXp5CPBs"
dns_nsupdate_add() {
@@ -13,17 +16,26 @@ dns_nsupdate_add() {
_saveaccountconf NSUPDATE_SERVER "${NSUPDATE_SERVER}"
_saveaccountconf NSUPDATE_SERVER_PORT "${NSUPDATE_SERVER_PORT}"
_saveaccountconf NSUPDATE_KEY "${NSUPDATE_KEY}"
+ if ! [ -z "$NSUPDATE_ZONE" ]; then
+ _saveaccountconf NSUPDATE_ZONE "${NSUPDATE_ZONE}"
+ fi
_info "adding ${fulldomain}. 60 in txt \"${txtvalue}\""
- nsupdate -k "${NSUPDATE_KEY}" <${NSUPDATE_COMMANDS_FILE}
+ if ! [ -z "$NSUPDATE_ZONE" ]; then
+ $ECHO "zone ${NSUPDATE_ZONE}" >>${NSUPDATE_COMMANDS_FILE}
+ fi
+ $ECHO "update add ${fulldomain}. 60 in txt \"${txtvalue}\"" >>${NSUPDATE_COMMANDS_FILE}
+ $ECHO "send" >>${NSUPDATE_COMMANDS_FILE}
+
+ _debug "$(cat ${NSUPDATE_COMMANDS_FILE})"
+
+ if ! $NSUPDATE -k "${NSUPDATE_KEY}" -v ${NSUPDATE_COMMANDS_FILE}; then
_err "error updating domain"
+ rm ${NSUPDATE_COMMANDS_FILE}
return 1
fi
-
+ rm ${NSUPDATE_COMMANDS_FILE}
return 0
}
@@ -34,16 +46,22 @@ dns_nsupdate_rm() {
[ -n "${NSUPDATE_SERVER}" ] || NSUPDATE_SERVER="localhost"
[ -n "${NSUPDATE_SERVER_PORT}" ] || NSUPDATE_SERVER_PORT=53
_info "removing ${fulldomain}. txt"
- nsupdate -k "${NSUPDATE_KEY}" <${NSUPDATE_COMMANDS_FILE}
+ if ! [ -z "$NSUPDATE_ZONE" ]; then
+ $ECHO "zone ${NSUPDATE_ZONE}" >>${NSUPDATE_COMMANDS_FILE}
+ fi
+ $ECHO "update delete ${fulldomain}. txt" >>${NSUPDATE_COMMANDS_FILE}
+ $ECHO "send" >>${NSUPDATE_COMMANDS_FILE}
+
+ _debug "$(cat ${NSUPDATE_COMMANDS_FILE})"
+
+ if ! $NSUPDATE -k "${NSUPDATE_KEY}" -v ${NSUPDATE_COMMANDS_FILE}; then
_err "error updating domain"
+ rm ${NSUPDATE_COMMANDS_FILE}
return 1
fi
-
+ rm ${NSUPDATE_COMMANDS_FILE}
return 0
}