3 ######## Public functions #####################
5 #Usage: dns_nsupdate_add _acme-challenge.www.domain.com "XKrxpRBosdIKFzxW_CT3KLZNf6q0HG9i01zxXp5CPBs"
9 NSUPDATE_SERVER
="${NSUPDATE_SERVER:-$(_readaccountconf_mutable NSUPDATE_SERVER)}"
10 NSUPDATE_SERVER_PORT
="${NSUPDATE_SERVER_PORT:-$(_readaccountconf_mutable NSUPDATE_SERVER_PORT)}"
11 NSUPDATE_KEY
="${NSUPDATE_KEY:-$(_readaccountconf_mutable NSUPDATE_KEY)}"
12 NSUPDATE_ZONE
="${NSUPDATE_ZONE:-$(_readaccountconf_mutable NSUPDATE_ZONE)}"
14 _checkKeyFile ||
return 1
16 # save the dns server and key to the account conf file.
17 _saveaccountconf_mutable NSUPDATE_SERVER
"${NSUPDATE_SERVER}"
18 _saveaccountconf_mutable NSUPDATE_SERVER_PORT
"${NSUPDATE_SERVER_PORT}"
19 _saveaccountconf_mutable NSUPDATE_KEY
"${NSUPDATE_KEY}"
20 _saveaccountconf_mutable NSUPDATE_ZONE
"${NSUPDATE_ZONE}"
22 [ -n "${NSUPDATE_SERVER}" ] || NSUPDATE_SERVER
="localhost"
23 [ -n "${NSUPDATE_SERVER_PORT}" ] || NSUPDATE_SERVER_PORT
=53
25 _info
"adding ${fulldomain}. 60 in txt \"${txtvalue}\""
26 [ -n "$DEBUG" ] && [ "$DEBUG" -ge "$DEBUG_LEVEL_1" ] && nsdebug
="-d"
27 [ -n "$DEBUG" ] && [ "$DEBUG" -ge "$DEBUG_LEVEL_2" ] && nsdebug
="-D"
28 if [ -z "${NSUPDATE_ZONE}" ]; then
29 nsupdate
-k "${NSUPDATE_KEY}" $nsdebug <<EOF
30 server ${NSUPDATE_SERVER} ${NSUPDATE_SERVER_PORT}
31 update add ${fulldomain}. 60 in txt "${txtvalue}"
35 nsupdate
-k "${NSUPDATE_KEY}" $nsdebug <<EOF
36 server ${NSUPDATE_SERVER} ${NSUPDATE_SERVER_PORT}
37 zone ${NSUPDATE_ZONE}.
38 update add ${fulldomain}. 60 in txt "${txtvalue}"
43 _err
"error updating domain"
50 #Usage: dns_nsupdate_rm _acme-challenge.www.domain.com
54 NSUPDATE_SERVER
="${NSUPDATE_SERVER:-$(_readaccountconf_mutable NSUPDATE_SERVER)}"
55 NSUPDATE_SERVER_PORT
="${NSUPDATE_SERVER_PORT:-$(_readaccountconf_mutable NSUPDATE_SERVER_PORT)}"
56 NSUPDATE_KEY
="${NSUPDATE_KEY:-$(_readaccountconf_mutable NSUPDATE_KEY)}"
57 NSUPDATE_ZONE
="${NSUPDATE_ZONE:-$(_readaccountconf_mutable NSUPDATE_ZONE)}"
59 _checkKeyFile ||
return 1
60 [ -n "${NSUPDATE_SERVER}" ] || NSUPDATE_SERVER
="localhost"
61 [ -n "${NSUPDATE_SERVER_PORT}" ] || NSUPDATE_SERVER_PORT
=53
62 _info
"removing ${fulldomain}. txt"
63 [ -n "$DEBUG" ] && [ "$DEBUG" -ge "$DEBUG_LEVEL_1" ] && nsdebug
="-d"
64 [ -n "$DEBUG" ] && [ "$DEBUG" -ge "$DEBUG_LEVEL_2" ] && nsdebug
="-D"
65 if [ -z "${NSUPDATE_ZONE}" ]; then
66 nsupdate
-k "${NSUPDATE_KEY}" $nsdebug <<EOF
67 server ${NSUPDATE_SERVER} ${NSUPDATE_SERVER_PORT}
68 update delete ${fulldomain}. txt
72 nsupdate
-k "${NSUPDATE_KEY}" $nsdebug <<EOF
73 server ${NSUPDATE_SERVER} ${NSUPDATE_SERVER_PORT}
74 zone ${NSUPDATE_ZONE}.
75 update delete ${fulldomain}. txt
80 _err
"error updating domain"
87 #################### Private functions below ##################################
90 if [ -z "${NSUPDATE_KEY}" ]; then
91 _err
"you must specify a path to the nsupdate key file"
94 if [ ! -r "${NSUPDATE_KEY}" ]; then
95 _err
"key ${NSUPDATE_KEY} is unreadable"