define Package/ddns-scripts_nsupdate/install
$(INSTALL_DIR) $(1)/etc/uci-defaults
$(INSTALL_BIN) $(PKG_BUILD_DIR)/files/ddns.defaults $(1)/etc/uci-defaults/ddns_nsupdate
+
$(INSTALL_DIR) $(1)/usr/lib/ddns
- $(INSTALL_BIN) $(PKG_BUILD_DIR)/files/update_nsupdate.sh $(1)/usr/lib/ddns
+ $(INSTALL_BIN) ./files/usr/lib/ddns/update_nsupdate.sh \
+ $(1)/usr/lib/ddns
+
+ $(INSTALL_DIR) $(1)/usr/share/ddns/services
+ $(INSTALL_DATA) ./files/usr/share/ddns/services/bind-nsupdate.json \
+ $(1)/usr/share/ddns/services
endef
define Package/ddns-scripts_nsupdate/postinst
#!/bin/sh
- # remove old services file entries
- /bin/sed -i '/bind-nsupdate/d' $${IPKG_INSTROOT}/etc/ddns/services >/dev/null 2>&1
- /bin/sed -i '/bind-nsupdate/d' $${IPKG_INSTROOT}/etc/ddns/services_ipv6 >/dev/null 2>&1
- # and create new
- printf "%s\\t%s\\n" '"bind-nsupdate"' '"update_nsupdate.sh"' >> $${IPKG_INSTROOT}/etc/ddns/services
- printf "%s\\t%s\\n" '"bind-nsupdate"' '"update_nsupdate.sh"' >> $${IPKG_INSTROOT}/etc/ddns/services_ipv6
# on real system restart service if enabled
[ -z "$${IPKG_INSTROOT}" ] && {
[ -x /etc/uci-defaults/ddns_nsupdate ] && \
#!/bin/sh
# if NOT run buildroot then stop service
[ -z "$${IPKG_INSTROOT}" ] && /etc/init.d/ddns stop >/dev/null 2>&1
- # remove services file entries
- /bin/sed -i '/bind-nsupdate/d' $${IPKG_INSTROOT}/etc/ddns/services >/dev/null 2>&1
- /bin/sed -i '/bind-nsupdate/d' $${IPKG_INSTROOT}/etc/ddns/services_ipv6 >/dev/null 2>&1
exit 0 # suppress errors
endef
+++ /dev/null
-#
-#.Distributed under the terms of the GNU General Public License (GPL) version 2.0
-#
-# The script directly updates a PowerDNS (or maybe bind server) via nsupdate from bind-client package.
-#.based on github request #957 by Jan Riechers <de at r-jan dot de>
-#.2015 Christian Schoenebeck <christian dot schoenebeck at gmail dot com>
-#
-# This script is parsed by dynamic_dns_functions.sh inside send_update() function
-#
-# using following options from /etc/config/ddns
-# option username - keyname
-# option password - shared secret (base64 encoded)
-# option domain - full qualified domain to update
-# option dns_server - DNS server to update
-#
-# variable __IP already defined with the ip-address to use for update
-#
-local __TTL=600 #.preset DNS TTL (in seconds)
-local __RRTYPE __PW __TCP
-local __PROG=$(command -v nsupdate) # BIND nsupdate ?
-[ -z "$__PROG" ] && __PROG=$(command -v knsupdate) # Knot nsupdate ?
-
-[ -z "$__PROG" ] && write_log 14 "'nsupdate' or 'knsupdate' not installed !"
-[ -z "$username" ] && write_log 14 "Service section not configured correctly! Missing 'username'"
-[ -z "$password" ] && write_log 14 "Service section not configured correctly! Missing 'password'"
-[ -z "$dns_server" ] && write_log 14 "Service section not configured correctly! Missing 'dns_server'"
-
-[ $use_ipv6 -ne 0 ] && __RRTYPE="AAAA" || __RRTYPE="A"
-[ $force_dnstcp -ne 0 ] && __TCP="-v" || __TCP=""
-
-# create command file
-cat >$DATFILE <<-EOF
-server $dns_server
-key $username $password
-update del $domain $__RRTYPE
-update add $domain $__TTL $__RRTYPE $__IP
-show
-send
-answer
-quit
-EOF
-
-$__PROG -d $__TCP $DATFILE >$ERRFILE 2>&1
-
-# nsupdate always return success
-write_log 7 "(k)nsupdate reports:${N}$(cat $ERRFILE)"
-
-return 0
--- /dev/null
+#
+#.Distributed under the terms of the GNU General Public License (GPL) version 2.0
+#
+# The script directly updates a PowerDNS (or maybe bind server) via nsupdate from bind-client package.
+#.based on github request #957 by Jan Riechers <de at r-jan dot de>
+#.2015 Christian Schoenebeck <christian dot schoenebeck at gmail dot com>
+#
+# This script is parsed by dynamic_dns_functions.sh inside send_update() function
+#
+# using following options from /etc/config/ddns
+# option username - keyname
+# option password - shared secret (base64 encoded)
+# option domain - full qualified domain to update
+# option dns_server - DNS server to update
+#
+# variable __IP already defined with the ip-address to use for update
+#
+local __TTL=600 #.preset DNS TTL (in seconds)
+local __RRTYPE __PW __TCP
+local __PROG=$(command -v nsupdate) # BIND nsupdate ?
+[ -z "$__PROG" ] && __PROG=$(command -v knsupdate) # Knot nsupdate ?
+
+[ -z "$__PROG" ] && write_log 14 "'nsupdate' or 'knsupdate' not installed !"
+[ -z "$username" ] && write_log 14 "Service section not configured correctly! Missing 'username'"
+[ -z "$password" ] && write_log 14 "Service section not configured correctly! Missing 'password'"
+[ -z "$dns_server" ] && write_log 14 "Service section not configured correctly! Missing 'dns_server'"
+
+[ $use_ipv6 -ne 0 ] && __RRTYPE="AAAA" || __RRTYPE="A"
+[ $force_dnstcp -ne 0 ] && __TCP="-v" || __TCP=""
+
+# create command file
+cat >$DATFILE <<-EOF
+server $dns_server
+key $username $password
+update del $domain $__RRTYPE
+update add $domain $__TTL $__RRTYPE $__IP
+show
+send
+answer
+quit
+EOF
+
+$__PROG -d $__TCP $DATFILE >$ERRFILE 2>&1
+
+# nsupdate always return success
+write_log 7 "(k)nsupdate reports:${N}$(cat $ERRFILE)"
+
+return 0
--- /dev/null
+{
+ "name": "bind-nsupdate",
+ "ipv4": {
+ "url": "update_nsupdate.sh"
+ },
+ "ipv6": {
+ "url": "update_nsupdate.sh"
+ }
+}