diff --git a/dnsapi/dns_nsupdatey.sh b/dnsapi/dns_nsupdatey.sh new file mode 100755 index 00000000..af254fe6 --- /dev/null +++ b/dnsapi/dns_nsupdatey.sh @@ -0,0 +1,113 @@ +#!/usr/bin/env sh + + +# Update DNS via nsupdate with "-y" option +# Based on dns_nsupdate.sh, which used with "-k" option +# +# Author: Vadim Kalinnikov + +######## Public functions ##################### + +#Usage: dns_nsupdatey_add _acme-challenge.www.domain.com "XKrxpRBosdIKFzxW_CT3KLZNf6q0HG9i01zxXp5CPBs" +dns_nsupdatey_add() { + fulldomain=$1 + txtvalue=$2 + NSUPDATE_Y_SERVER="${NSUPDATE_Y_SERVER:-$(_readaccountconf_mutable NSUPDATE_Y_SERVER)}" + NSUPDATE_Y_SERVER_PORT="${NSUPDATE_Y_SERVER_PORT:-$(_readaccountconf_mutable NSUPDATE_Y_SERVER_PORT)}" + NSUPDATE_Y_KEY="${NSUPDATE_Y_KEY:-$(_readaccountconf_mutable NSUPDATEY_KEY)}" + NSUPDATE_Y_ZONE="${NSUPDATE_Y_ZONE:-$(_readaccountconf_mutable NSUPDATE_Y_ZONE)}" + + _checkKeyParam || return 1 + + # save the dns server and key to the account conf file. + _saveaccountconf_mutable NSUPDATE_Y_SERVER "${NSUPDATE_Y_SERVER}" + _saveaccountconf_mutable NSUPDATE_Y_SERVER_PORT "${NSUPDATE_Y_SERVER_PORT}" + _saveaccountconf_mutable NSUPDATE_Y_KEY "${NSUPDATE_Y_KEY}" + _saveaccountconf_mutable NSUPDATE_Y_ZONE "${NSUPDATE_Y_ZONE}" + + [ -n "${NSUPDATE_Y_SERVER}" ] || NSUPDATE_SERVER="localhost" + [ -n "${NSUPDATE_Y_SERVER_PORT}" ] || NSUPDATE_SERVER_PORT=53 + + _info "adding ${fulldomain}. 60 in txt \"${txtvalue}\"" + [ -n "$DEBUG" ] && [ "$DEBUG" -ge "$DEBUG_LEVEL_1" ] && nsdebug="-d" + [ -n "$DEBUG" ] && [ "$DEBUG" -ge "$DEBUG_LEVEL_2" ] && nsdebug="-D" + if [ -z "${NSUPDATE_Y_ZONE}" ]; then + nsupdate -y "${NSUPDATE_Y_KEY}" $nsdebug <