@@ -6,7 +6,7 @@ Docs: github.com/acmesh-official/acme.sh/wiki/dnsapi#dns_nsupdate
66Options:
77 NSUPDATE_SERVER Server hostname. Default: "localhost".
88 NSUPDATE_SERVER_PORT Server port. Default: "53".
9- NSUPDATE_KEY File path to TSIG key. Default: ""
9+ NSUPDATE_KEY File path to TSIG key. Default: "". Optional.
1010 NSUPDATE_ZONE Domain zone to update. Optional.
1111'
1212
@@ -34,42 +34,49 @@ dns_nsupdate_add() {
3434 [ -n " ${NSUPDATE_KEY} " ] || NSUPDATE_KEY=" "
3535 [ -n " ${NSUPDATE_OPT} " ] || NSUPDATE_OPT=" "
3636
37+ NSUPDATE_SERVER_LIST=$( printf " %s" " $NSUPDATE_SERVER " | tr ' ,' ' ' )
38+
3739 _info " adding ${fulldomain} . 60 in txt \" ${txtvalue} \" "
3840 [ -n " $DEBUG " ] && [ " $DEBUG " -ge " $DEBUG_LEVEL_1 " ] && nsdebug=" -d"
3941 [ -n " $DEBUG " ] && [ " $DEBUG " -ge " $DEBUG_LEVEL_2 " ] && nsdebug=" -D"
40- if [ -z " ${NSUPDATE_ZONE} " ]; then
41- # shellcheck disable=SC2086
42- if [ -z " ${NSUPDATE_KEY} " ]; then
43- nsupdate $nsdebug $NSUPDATE_OPT << EOF
44- server ${NSUPDATE_SERVER} ${NSUPDATE_SERVER_PORT}
42+
43+ for NS_SERVER in $NSUPDATE_SERVER_LIST ; do
44+ _info " Updating DNS server: $NS_SERVER "
45+
46+ if [ -z " ${NSUPDATE_ZONE} " ]; then
47+ # shellcheck disable=SC2086
48+ if [ -z " ${NSUPDATE_KEY} " ]; then
49+ nsupdate $nsdebug $NSUPDATE_OPT << EOF
50+ server ${NS_SERVER} ${NSUPDATE_SERVER_PORT}
4551update add ${fulldomain} . 60 in txt "${txtvalue} "
4652send
4753EOF
48- else
49- nsupdate -k " ${NSUPDATE_KEY} " $nsdebug $NSUPDATE_OPT << EOF
50- server ${NSUPDATE_SERVER } ${NSUPDATE_SERVER_PORT}
54+ else
55+ nsupdate -k " ${NSUPDATE_KEY} " $nsdebug $NSUPDATE_OPT << EOF
56+ server ${NS_SERVER } ${NSUPDATE_SERVER_PORT}
5157update add ${fulldomain} . 60 in txt "${txtvalue} "
5258send
5359EOF
54- fi
55- else
56- # shellcheck disable=SC2086
57- if [ -z " ${NSUPDATE_KEY} " ]; then
58- nsupdate $nsdebug $NSUPDATE_OPT << EOF
59- server ${NSUPDATE_SERVER } ${NSUPDATE_SERVER_PORT}
60+ fi
61+ else
62+ # shellcheck disable=SC2086
63+ if [ -z " ${NSUPDATE_KEY} " ]; then
64+ nsupdate $nsdebug $NSUPDATE_OPT << EOF
65+ server ${NS_SERVER } ${NSUPDATE_SERVER_PORT}
6066zone ${NSUPDATE_ZONE} .
6167update add ${fulldomain} . 60 in txt "${txtvalue} "
6268send
6369EOF
64- else
65- nsupdate -k " ${NSUPDATE_KEY} " $nsdebug $NSUPDATE_OPT << EOF
66- server ${NSUPDATE_SERVER } ${NSUPDATE_SERVER_PORT}
70+ else
71+ nsupdate -k " ${NSUPDATE_KEY} " $nsdebug $NSUPDATE_OPT << EOF
72+ server ${NS_SERVER } ${NSUPDATE_SERVER_PORT}
6773zone ${NSUPDATE_ZONE} .
6874update add ${fulldomain} . 60 in txt "${txtvalue} "
6975send
7076EOF
77+ fi
7178 fi
72- fi
79+ done
7380 if [ $? -ne 0 ]; then
7481 _err " error updating domain"
7582 return 1
@@ -91,42 +98,50 @@ dns_nsupdate_rm() {
9198 [ -n " ${NSUPDATE_SERVER} " ] || NSUPDATE_SERVER=" localhost"
9299 [ -n " ${NSUPDATE_SERVER_PORT} " ] || NSUPDATE_SERVER_PORT=53
93100 [ -n " ${NSUPDATE_KEY} " ] || NSUPDATE_KEY=" "
101+
102+ NSUPDATE_SERVER_LIST=$( printf " %s" " $NSUPDATE_SERVER " | tr ' ,' ' ' )
103+
94104 _info " removing ${fulldomain} . txt"
95105 [ -n " $DEBUG " ] && [ " $DEBUG " -ge " $DEBUG_LEVEL_1 " ] && nsdebug=" -d"
96106 [ -n " $DEBUG " ] && [ " $DEBUG " -ge " $DEBUG_LEVEL_2 " ] && nsdebug=" -D"
97- if [ -z " ${NSUPDATE_ZONE} " ]; then
98- # shellcheck disable=SC2086
99- if [ -z " ${NSUPDATE_KEY} " ]; then
100- nsupdate $nsdebug $NSUPDATE_OPT << EOF
101- server ${NSUPDATE_SERVER} ${NSUPDATE_SERVER_PORT}
107+
108+ for NS_SERVER in $NSUPDATE_SERVER_LIST ; do
109+ _info " Updating DNS server: $NS_SERVER "
110+
111+ if [ -z " ${NSUPDATE_ZONE} " ]; then
112+ # shellcheck disable=SC2086
113+ if [ -z " ${NSUPDATE_KEY} " ]; then
114+ nsupdate $nsdebug $NSUPDATE_OPT << EOF
115+ server ${NS_SERVER} ${NSUPDATE_SERVER_PORT}
102116update delete ${fulldomain} . txt
103117send
104118EOF
105- else
106- nsupdate -k " ${NSUPDATE_KEY} " $nsdebug $NSUPDATE_OPT << EOF
107- server ${NSUPDATE_SERVER } ${NSUPDATE_SERVER_PORT}
119+ else
120+ nsupdate -k " ${NSUPDATE_KEY} " $nsdebug $NSUPDATE_OPT << EOF
121+ server ${NS_SERVER } ${NSUPDATE_SERVER_PORT}
108122update delete ${fulldomain} . txt
109123send
110124EOF
111- fi
112- else
113- # shellcheck disable=SC2086
114- if [ -z " ${NSUPDATE_KEY} " ]; then
115- nsupdate $nsdebug $NSUPDATE_OPT << EOF
116- server ${NSUPDATE_SERVER } ${NSUPDATE_SERVER_PORT}
125+ fi
126+ else
127+ # shellcheck disable=SC2086
128+ if [ -z " ${NSUPDATE_KEY} " ]; then
129+ nsupdate $nsdebug $NSUPDATE_OPT << EOF
130+ server ${NS_SERVER } ${NSUPDATE_SERVER_PORT}
117131zone ${NSUPDATE_ZONE} .
118132update delete ${fulldomain} . txt
119133send
120134EOF
121- else
122- nsupdate -k " ${NSUPDATE_KEY} " $nsdebug $NSUPDATE_OPT << EOF
123- server ${NSUPDATE_SERVER } ${NSUPDATE_SERVER_PORT}
135+ else
136+ nsupdate -k " ${NSUPDATE_KEY} " $nsdebug $NSUPDATE_OPT << EOF
137+ server ${NS_SERVER } ${NSUPDATE_SERVER_PORT}
124138zone ${NSUPDATE_ZONE} .
125139update delete ${fulldomain} . txt
126140send
127141EOF
142+ fi
128143 fi
129- fi
144+ done
130145 if [ $? -ne 0 ]; then
131146 _err " error updating domain"
132147 return 1
0 commit comments