|
|
|
@ -0,0 +1,60 @@ |
|
|
|
#!/usr/bin/env sh |
|
|
|
|
|
|
|
|
|
|
|
######## Public functions ##################### |
|
|
|
|
|
|
|
#Usage: dns_nsupdate_add _acme-challenge.www.domain.com "XKrxpRBosdIKFzxW_CT3KLZNf6q0HG9i01zxXp5CPBs" |
|
|
|
dns_nsupdate_add() { |
|
|
|
fulldomain=$1 |
|
|
|
txtvalue=$2 |
|
|
|
_checkKeyFile || return 1 |
|
|
|
[ -n "${NSUPDATE_SERVER}" ] || NSUPDATE_SERVER="localhost" |
|
|
|
# save the dns server and key to the account conf file. |
|
|
|
_saveaccountconf NSUPDATE_SERVER "${NSUPDATE_SERVER}" |
|
|
|
_saveaccountconf NSUPDATE_KEY "${NSUPDATE_KEY}" |
|
|
|
_info "adding ${fulldomain}. 60 in txt \"${txtvalue}\"" |
|
|
|
nsupdate -k "${NSUPDATE_KEY}" <<EOF |
|
|
|
server ${NSUPDATE_SERVER} |
|
|
|
update add ${fulldomain}. 60 in txt "${txtvalue}" |
|
|
|
send |
|
|
|
EOF |
|
|
|
if [ $? -ne 0 ]; then |
|
|
|
_err "error updating domain" |
|
|
|
return 1 |
|
|
|
fi |
|
|
|
|
|
|
|
return 0 |
|
|
|
} |
|
|
|
|
|
|
|
#Usage: dns_nsupdate_rm _acme-challenge.www.domain.com |
|
|
|
dns_nsupdate_rm() { |
|
|
|
fulldomain=$1 |
|
|
|
_checkKeyFile || return 1 |
|
|
|
[ -n "${NSUPDATE_SERVER}" ] || NSUPDATE_SERVER="localhost" |
|
|
|
_info "removing ${fulldomain}. txt" |
|
|
|
nsupdate -k "${NSUPDATE_KEY}" <<EOF |
|
|
|
server ${NSUPDATE_SERVER} |
|
|
|
update delete ${fulldomain}. txt |
|
|
|
send |
|
|
|
EOF |
|
|
|
if [ $? -ne 0 ]; then |
|
|
|
_err "error updating domain" |
|
|
|
return 1 |
|
|
|
fi |
|
|
|
|
|
|
|
return 0 |
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
#################### Private functions bellow ################################## |
|
|
|
|
|
|
|
_checkKeyFile() { |
|
|
|
if [ -z "${NSUPDATE_KEY}" ]; then |
|
|
|
_err "you must specify a path to the nsupdate key file" |
|
|
|
return 1 |
|
|
|
fi |
|
|
|
if [ ! -r "${NSUPDATE_KEY}" ]; then |
|
|
|
_err "key ${NSUPDATE_KEY} is unreadable" |
|
|
|
return 1 |
|
|
|
fi |
|
|
|
} |