mirror of
https://github.com/openwrt/packages.git
synced 2025-12-23 08:04:32 +04:00
- add support of knsupdate (update_nsupdate.sh - url update easydns.com - add some service answers - alphabetic reorder services files for easier reading - rename services/provider (Makefile postinst handle /etc/config/ddns) -- freedns.afraid.org -> afraid.org -- free.editdns.net -> editdns.net -- domains.google.com -> google.com -- spdns.de -> spdyn.de -- strato.de -> strato.com - new provider (looking in deep into https://sourceforge.net/projects/inadyn-mt project) -- dyn.com (= dyndns.org) -- ddnss.de -- dhis.org -- dnspark.com (IPv4 only) -- dynsip.org (IPv4 only) -- dynv6.com -- joker.com (IPv4 only) -- loopia.com (= loopia.se) -- sitelutions.com (IPv4 only) -- system-ns.com (IPv4 only) - new provider (looking in deep into /etc.defaults/ddns_provider.conf file for Synology DiskStation published at https://gist.github.com/ntrepid8/6653274) -- able.or.kr (IPv4 only) -- ddo.jp (IPv4 only) -- dnsmadeeasy.com (IPv4 only) -- oray.com (IPv4 only) - new provider (looking in deep into https://github.com/ipfire/ddns project) -- all-inkl.com -- desec.io -- domopoli.de (IPv4 only) -- opendns.com (IPv4 only) -- udmedia.de -- xlhost.de (IPv4 only) - new provider (looking in deep into https://github.com/yaddns/yaddns project ) -- dyndns.it (IPv4 only) Signed-off-by: Christian Schoenebeck <christian.schoenebeck@gmail.com>
48 lines
1.7 KiB
Bash
48 lines
1.7 KiB
Bash
#
|
|
#.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
|
|
#
|
|
__TTL=600 #.preset DNS TTL (in seconds)
|
|
__RRTYPE __PW __TCP
|
|
__PROG=$(which nsupdate) # BIND nsupdate ?
|
|
[ -z "$__PROG" ] && __PROG=$(which 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 |