- if local ip cannot be detected or is invalid then do not exit ddns-scripts #2950,
using multiple url's to detect local ip not jet implemented
- change spdns.de update url and add sydyn.de inside services file #2991
- move transfer- and lookup-program detection to dynamic_dns_functions.sh
so run once at startup in stead of at every transfer/lookup
- add khost, drill and hostip to verify_host_port() function
- updated tld_names.dat
Signed-off-by: Christian Schoenebeck <christian.schoenebeck@gmail.com>
- fix handling of parameter "is_glue" and "dns_server" to work with luci-app-ddns
- update TLD_names.dat
Signed-off-by: Christian Schoenebeck <christian.schoenebeck@gmail.com>
Assuming the following dns zone configuration for kresin.me:
. 1800 IN NS ns.inwx.de.
home.kresin.me. 1800 IN NS gw.home.kresin.me.
gw.home.kresin.me. 60 IN A 198.51.100.1
Using the example, gw.home.kresin.me is a glue record and used as DDNS
record as well. gw.home.kresin.me points to the OpenWrt installation
where the ddns-scripts are running.
Since ns.inwx.de isn't the authoritative server for home.kresin.me,
a query for the the A record of gw.home.kresin.me will be "forwarded"
to and replied by the authoritative server 198.51.100.1. If the
authoritative server can't be reached, the query times out without any
address returned.
The only way to get the A record of the glue record is to use bind
host in verbose output mode, query ns.inwx.de for gw.home.kresin.me and
evaluate the additional section of the response.
To my knowledge, only bind host in verbose output mode shows the
additional section of the response. Therefore, this features depends on
bind host.
It is not possible to use the bind host verbose mode for all queries.
In verbose mode the "has address" line isn't returned. Grepping for the
hostname might fail if the hostname is CNAME. Grepping for the first
occurrence of an ip-address is way to error prone, since it could
return the ip address of a different record type.
Signed-off-by: Mathias Kresin <dev@kresin.me>
- add DNS lookup support for "drill" and "khost" (Knot DNS) #2637
- new service nsupdate.info (IPv4 and IPv6) #2433
- new services dyndnss.net, dyns.net (IPv4 only)
- new services dnshome.de, goip.de, myonlineportal.net (IPv4 and IPv6)
Signed-off-by: Christian Schoenebeck <christian.schoenebeck@gmail.com>
- roll back to "old" update_url of freedns.afraid.org fix for #2445 and openwrt/luci#661
- add provider nubem.com (IPv4 only)
- add provider nettica.com (IPv4 only)
- add provider zerigo.com (IPv4 and IPv6)
- add provider regfish.de (IPv4 and IPv6)
Signed-off-by: Christian Schoenebeck <christian.schoenebeck@gmail.com>
- renamed (lower case) filenames and servicenames for no-ip.com, cloudflare.com and bind_nsupdate including modifing existing configurations #2375
- updated tld_names.dat
Signed-off-by: Christian Schoenebeck <christian.schoenebeck@gmail.com>
- new function expand_ipv6()
- expand IPv6 before compare https://dev.openwrt.org/ticket/21725
- Fix split_FQDN() to return host.subdomain correctly #2334
- modified check for musl library used by nslookup #2341#2346 thanks to Arjen de Korte
Signed-off-by: Christian Schoenebeck <christian.schoenebeck@gmail.com>
- add support for "hostip" to get_registered_ip() as alternative to "Bind host" package https://dev.openwrt.org/ticket/20893#comment:5
- allow to send updates using compiled-in certificate file/path of curl/wget #2242#2243#2245
- add support for uclient-fetch / libustream-ssl.so
- remove /128 prefix-filter in get_local_ip() via interface #2268
- add dyndns.org to services_ipv6 https://forum.openwrt.org/viewtopic.php?id=62103
- readd duckdns.org to services #2251 (lost somewhere in data heaven)
- add zzzz.io service #2302
- updated tld_names.dat
Signed-off-by: Christian Schoenebeck <christian.schoenebeck@gmail.com>
This is necessary when there are multiple records for the same domain,
otherwise the script will overwrite the first one returned by the API.
It has the secondary benefit of allowing faster updates by performing
only one API call instead of two.
In case 'rec_id' is not set the script behaves exactly as before.
Signed-off-by: Leonardo Brondani Schenkel <leonardo@schenkel.net>
Added dy.fi dynamic dns provider into ddns-scripts (ipv4) services file.
Tested-by: Vaasa Hacklab ry <info@vaasa.hacklab.fi>
Signed-off-by: Sami Olmari <sami@olmari.fi>
- add -V / --version parameter to show version information
- new option lookup_host as host to use by nslookup/host to validate IP address changes, to be separate from [DOMAIN] parameter which produces a lot of questions in the forum and on multi-host updates
- new option param_enc for optional usage inside update_url [PARAMENC] (will be send urlencoded)
- new option param_opt for optional usage inside update_url [PARAMOPT]
- new service strato.de (IPv4 only) requested by ludwig.jaffe@
- new service variomedia.de (IPv4 & IPv6) requested by Wolfgang Oertl #1884
- rewritten function get_service_data to read services/service_ipv6 file
- allow 3rd parameter inside services/service_ipv6 file - here should be the answer of the ddns provider on success. If parameter is set, it's checked by ddns-scripts and report errors to logfile/syslog if failed and retry
- updated tld_names.dat
Signed-off-by: Christian Schoenebeck <christian.schoenebeck@gmail.com>
fixed sed when filtering IP address from nslookup output
because "Server:" block might have multiple address lines.
Thanks to Arjen de Korte
Signed-off-by: Christian Schoenebeck <christian.schoenebeck@gmail.com>
* fix Makefile to force compression of tld_names.dat reported in OpenWrt Ticket 19597
* change default of retry_count to "0" (retry endless) suggested by Henning Schild
* updated tld_names.dat include changes until 07.05.2015
Signed-off-by: Christian Schoenebeck <christian.schoenebeck@gmail.com>
* fix problem with lucihelper script reported in OpenWrt Ticket 19419
* rewritten split_FQDN fixing detection errors and using zcat
* updated tld_names.dat and .gz compressed to save space
* add LoopiaDNS (loopia.se) to services_ipv6
Signed-off-by: Christian Schoenebeck <christian.schoenebeck@gmail.com>
* new service "bind-nsupdate" using nsupdate to directly updates a PowerDNS or Bind server via nsupdate.
suggested by Jan Riechers (Pull #957) many thanks!
* updated tld-names.dat
Signed-off-by: Christian Schoenebeck <christian.schoenebeck@gmail.com>
new option "use_curl" to force the use of curl if GNU Wget and curl are installed
fix initscript reload(): reload and not restart if killall -1 fails
BusyBox nc not support -v in every compiled version
Signed-off-by: Christian Schoenebeck <christian.schoenebeck@gmail.com>
modified source directory structure
- files for production files
- samples for sample files (not installed in final build)
modified Makefile
- separate options for additional provider scripts
- remove comments and empty lines from final build
add IPv4 100.64/10 (RFC 6598) and 169.254/16 (RFC 5735) to the range of default blocked IP's.
new option "bind_network" to force GNU Wget or cURL to use specific network/interface for communication
new "domains.google.com" as IPv4 DDNS provider #822
Signed-off-by: Christian Schoenebeck <christian.schoenebeck@gmail.com>
restructure startup of dnymaic_dns_updater.sh
- first run load_all_config_options (it returns 1 if SECTION_ID not found) #779
- set all defaults if necessary
- verify if username and/or password is needed inside update_url #779
- remove wait - will be done by retry_interval and retry_count if communication fails
provider specific update scripts
- verify if username/password are needed
services_ipv6
- added freedns.afraid.org
- IPv6 should work due to their documentation
minor fixes
Signed-off-by: Christian Schoenebeck <christian.schoenebeck@gmail.com>
* remove CHANGELOG from distribution
* fix syslog output printing "\n" or other formating chars
* ddns configuration
- new UCI-config value ddns.global.allow_local_ip "0" or "1"
(default "0") - (OpenWrt Ticket 18642)
* dynamic_dns_functions.sh
- new function split_FQDN() splits a given FQDN into host,
(registerable) domainname, and TLD using
https://publicsuffix.org/list/effective_tld_names.dat
- verify_host_port() use BIND host, if installed
- verify_host_port() not detecting ip, if already given
- fixed regexp for IP detection from nslookup's answer - (OpenWrt
Ticket 16363)
- support ddns.global.allow_local_ip to allow sending non public IP's
to DDNS provider like 127.x, 192.168.x.x or fxxx - (OpenWrt Ticket
18642)
* new file tld_names.dat
- used by dynamic_dns_functions.sh inside split_FQDN() function to
find valid TLD's
* update_cloudflare.sh
- modified subdomain/domain splitting using split_FQDN()
- modified support for AA12.09 (json_get_keys())
- minor fixes and cleanup
- many thanks to Aaron Tanner for testing
Signed-off-by: Christian Schoenebeck <christian.schoenebeck@gmail.com>
- moved /usr/lib/ddns/dynamic_dns_lucihelper.sh from luci-app-ddns into this package
(Github openwrt/luci issue 251)
(OpenWrt Trac tickets 18326 18347)
- fix: dynamic_dns_update.sh did not loop
(OpenWrt Trac ticket 18336)
- add provider cloudflare.com IPv4 and IPv6 (Thanks to Paul for support and testing)
(OpenWrt Trac ticket 12500)
- modified detection, if dynamic_dns_fuctions are used by dynamic_dns_lucihelper.sh
- redirect stdout of wget,curl,host,nslookup,nc etc to /tmp/ddns_$$.dat and *.err instead of variables
- extended error detection in get_local_ip function
- modified verify of option ip_script to allow parameters, when calling
- add provider selfhost.de IPv4
- add provider no-ip.pl (nothing to do with no-ip.com)
(Github openwrt/packages issue #542)
IPv4 (tested) and also added for
IPv6 (NOT tested) because client IP is autodetected be provider
- add getlocalip_sample.sh as sample script for usage of
option ip_source 'script' together with
option ip_script '/usr/lib/ddns/getlocalip.sh -4'
- cleanup whitespaces at line ends
Signed-off-by: Christian Schoenebeck <christian.schoenebeck@gmail.com>
- fixed postinst and prerm in Makefile
- implementation of provider specific update scripts into services and
services_ipv6 file.
first Provider "no-ip.com" - Thanks to DarkStarXxX for
request and testing
- finished uci/ddns wiki at http://wiki.openwrt.org/doc/uci/ddns
- rewritten retry management
- rewritten logging including following Issue 469
https://github.com/openwrt/packages/issues/469
- stop running sections on hotplug ifdown event (like start on ifup)
- implement trap detection
also kill "sleep" child processes
SIGHUP to reload configuration (not really reloading, simply
starting a new process)
/etc/init.d/ddns reload implemented
- code optimization
- new provider LoopiaDNS.se Issue 494
https://github.com/openwrt/packages/issues/494
Signed-off-by: Christian Schoenebeck <christian.schoenebeck@gmail.com>
Changed the verify of DNS server and proxy at script start to retry the
verify if there are connection problems during verify
plus some minor changes.
Signed-off-by: Christian Schoenebeck <christian.schoenebeck@gmail.com>
fixes problem CRITICAL ERROR - custom update_script not found
when extracting url and script from services / services_ipv6 file
Signed-off-by: Christian Schoenebeck <christian.schoenebeck@gmail.com>
Squashed commit of the following:
commit 2701c8868e
Author: Christian Schoenebeck <christian.schoenebeck@gmail.com>
Date: Sun Oct 5 11:01:57 2014 +0200
ddns-scripts: Added support for custom update scripts
Sample script
Signed-off-by: Christian Schoenebeck <christian.schoenebeck@gmail.com>
commit e07ecb90fa
Author: Christian Schoenebeck <christian.schoenebeck@gmail.com>
Date: Sun Oct 5 11:00:11 2014 +0200
ddns-scripts: Added support for custom update scripts
Added support for custom update scripts with new option update_script.
function get_service_url() renamed to get_service_data() and extended to detect scripts inside service / service_ipv6 for later use
function send_update() modified to support custom update scripts.
Signed-off-by: Christian Schoenebeck <christian.schoenebeck@gmail.com>
commit 39e41b2151
Author: Christian Schoenebeck <christian.schoenebeck@gmail.com>
Date: Sun Oct 5 10:52:44 2014 +0200
ddns-scripts: Added support for custom update scripts
Added support for custom update scripts with new option update_script
Signed-off-by: Christian Schoenebeck <christian.schoenebeck@gmail.com>
commit 33f264768e
Author: Christian Schoenebeck <christian.schoenebeck@gmail.com>
Date: Sun Oct 5 10:48:21 2014 +0200
ddns-scripts: Insert description for NEW option update_script
Insert description for NEW option update_script
Signed-off-by: Christian Schoenebeck <christian.schoenebeck@gmail.com>
commit 6f6a60244d
Author: Christian Schoenebeck <christian.schoenebeck@gmail.com>
Date: Sun Oct 5 10:43:52 2014 +0200
ddns-scripts: Update PKG_RELEASE
Update_PKG_RELEASE to reflect changes
Signed-off-by: Christian Schoenebeck <christian.schoenebeck@gmail.com>
New function __urlencode() to remove special chars used in send_update() for username and password.
username might have email address and password might have special chars for security reasons.
Signed-off-by: Christian Schoenebeck <christian.schoenebeck@gmail.com>
Thanks to "eqsun" for report and offer of fix.
Otherwise the ip address starts with 100~109 will be treated as invalid.
Signed-off-by: Christian Schoenebeck <christian.schoenebeck@gmail.com>
new extraction of IP inside function get_registered_ip for host and nslookup
thanks to jow for the sed
Signed-off-by: Christian Schoenebeck <christian.schoenebeck@gmail.com>
Squashed commit of the following:
commit fc1d42f069
Author: Christian Schoenebeck <christian.schoenebeck@gmail.com>
Date: Sun Sep 21 18:01:43 2014 +0200
[ddns-scripts] Update to Version 2.0.1-1
commit 731f9b4df0
Author: Christian Schoenebeck <christian.schoenebeck@gmail.com>
Date: Sun Sep 21 17:59:25 2014 +0200
[ddns-scripts] Update to Version 2.0.1-1
personal helper script to create hashes for CA-Certificates for Wget and cURL using https protocol without errors.
Sorry GitHub web interface only supports single commits that will be summarized into one pull request.
Signed-off-by: Christian Schoenebeck <christian.schoenebeck@gmail.com>
commit df8f6c9d5d
Author: Christian Schoenebeck <christian.schoenebeck@gmail.com>
Date: Sun Sep 21 17:56:05 2014 +0200
[ddns-scripts] Update to Version 2.0.1-1
rewritten
Sorry GitHub web interface only supports single commits that will be summarized into one pull request.
Signed-off-by: Christian Schoenebeck <christian.schoenebeck@gmail.com>
commit 50cdf5acb9
Author: Christian Schoenebeck <christian.schoenebeck@gmail.com>
Date: Sun Sep 21 17:54:40 2014 +0200
[ddns-scripts] Update to Version 2.0.1-1
rewritten
Sorry GitHub web interface only supports single commits that will be summarized into one pull request.
Signed-off-by: Christian Schoenebeck <christian.schoenebeck@gmail.com>
commit b1d650a345
Author: Christian Schoenebeck <christian.schoenebeck@gmail.com>
Date: Sun Sep 21 17:52:52 2014 +0200
[ddns-scripts] Update to Version 2.0.1-1
not needed in this version
Sorry GitHub web interface only supports single commits that will be summarized into one pull request.
Signed-off-by: Christian Schoenebeck <christian.schoenebeck@gmail.com>
commit 9532114b03
Author: Christian Schoenebeck <christian.schoenebeck@gmail.com>
Date: Sun Sep 21 17:51:39 2014 +0200
[ddns-scripts] Update to Version 2.0.1-1
same function as existing services file but used for IPv6
Sorry GitHub web interface only supports single commits that will be summarized into one pull request.
Signed-off-by: Christian Schoenebeck <christian.schoenebeck@gmail.com>
commit a636bc25c6
Author: Christian Schoenebeck <christian.schoenebeck@gmail.com>
Date: Sun Sep 21 17:46:56 2014 +0200
[ddns-scripts] Update to Version 2.0.1-1
New file explaining availible parameters.
Sorry GitHub web interface only supports single commits that will be summarized into one pull request.
Signed-off-by: Christian Schoenebeck <christian.schoenebeck@gmail.com>
commit 52332354fc
Author: Christian Schoenebeck <christian.schoenebeck@gmail.com>
Date: Sun Sep 21 17:44:45 2014 +0200
[ddns-scripts] Update to Version 2.0.1-1
Sorry GitHub web interface only supports single commits that will be summarized into one pull request.
Signed-off-by: Christian Schoenebeck <christian.schoenebeck@gmail.com>