Commit Graph

65 Commits

Author SHA1 Message Date
Max Berger 86a620f644 ddns-scripts: Fix Route53 provider
This fixes the Invalid Resource Record: FATAL problem: ARRDATAIllegalIPv4Address error message described in https://forum.openwrt.org/t/route53v1-script-error/160068

Maintainer: @chris5560, @maxberger, @dibdot
Tested: Checked on local system
Signed-off-by: Max Berger <max@berger.name>
2023-11-25 16:27:18 +01:00
Jihoon Han 79257dfb7c ddns-scripts: add support for LuaDNS
Signed-off-by: Jihoon Han <rapid_renard@renard.ga>
2023-01-09 18:26:29 +09:00
Cristian Le ff099ea53c
ddns-scripts: Allow setting root record for pdns script
Signed-off-by: Cristian Le <git@lecris.me>
2022-12-31 22:21:42 +01:00
Tianling Shen f7b73bf000
Merge pull request #19982 from golddranks/master
ddns-scripts: update_gandi_net: improve logging & add timeout
2022-12-13 03:59:46 +08:00
Pyry Kontio cefe85250c
ddns-scripts: update_gandi_net: improve logging & add timeout
- Improved logging
  - Log the executed curl command to be able to rerun and test it manually
  - Log the curl exit status
- Added 30 second timeout timeout for clear-cut detection of flaky connections.

Signed-off-by: Pyry Kontio <pyry.kontio@drasa.eu>
2022-12-10 03:37:19 +09:00
Chris Barrick cbdc67bd10 ddns-scripts: add support for Google Cloud DNS
The implementation uses a GCP service account. The user is expected to
create and secure a service account and generate a private key. The
"password" field can contain the key inline or be a file path pointing
to the key file on the router.

The GCP project name and Cloud DNS ManagedZone must also be provided.
These are taken as form-urlencoded key-value pairs in param_enc. The TTL
can optionally be supplied in param_opt.

Signed-off-by: Chris Barrick <chrisbarrick@google.com>
2022-12-08 22:04:33 -05:00
Rafał Miłecki f93cc0e22f ddns-scripts: add explicit "-d" switch for Dry Run
It was a bit confusing to use *verbosity* level for Dry Run mode. Add
explicity switch for it and designed DRY_RUN variable to make code
easier to understand.

Signed-off-by: Rafał Miłecki <rafal@milecki.pl>
2022-09-28 09:49:39 +02:00
Rafał Miłecki 586e283a51 ddns-scripts: rename variable: s/ERR_UPDATE/RETRY_COUNT/
Rename variable to make code easier to understand. This variable
specifies how many times in row ddns script tried to update IP without a
success.

Previous name ("ERR_UPDATE") didn't suggest it was for counting
anything. It also didn't specify was error was it related to.

Signed-off-by: Rafał Miłecki <rafal@milecki.pl>
2022-09-27 17:46:04 +02:00
Rafał Miłecki a6247d81a9 ddns-scripts: replace IP type (name) "local" with "current"
Local suggests something related to the local network or available
locally only. All that code related to the "local" IP was actually
dealing with *current* device external IP address. Using name "current"
should make code a bit easier to understand.

Signed-off-by: Rafał Miłecki <rafal@milecki.pl>
2022-09-27 17:42:58 +02:00
Rafał Miłecki e3292e4c97 ddns-scripts: rename variable: s/retry_count/retry_max_count/
Rename variable to make code easier to understand. This variable
specifies how many times ddns script should try to send a request.

Previous name ("retry_count") suggested it was for *counting* attempts.

Signed-off-by: Rafał Miłecki <rafal@milecki.pl>
2022-09-27 17:42:58 +02:00
Luca Conte 60047cdce1 ddns-scripts: add one.com provider
Signed-off-by: Luca Conte <main@lugico.de>
2022-01-27 13:59:42 +01:00
Florian Eckert b4694bb82c
Merge pull request #17617 from hgl/ddns-cloudflare
ddns-scripts-cloudflare: fix shell conditional
2022-01-15 16:03:37 +01:00
Glen Huang aed4dbf349 ddns-scripts-cloudflare: fix shell conditional
Signed-off-by: Glen Huang <heyhgl@gmail.com>
2022-01-15 22:33:28 +08:00
Claudio Marelli dc0953fedd ddns-scripts: pass user agent string
This adds a user agent string to the wget request.

Fixes #17507

Signed-off-by: Claudio Marelli <camarelli@gmx.net>
2022-01-15 10:07:30 +01:00
Glen Huang 78ef7d7379 ddns-scripts-cloudflare: allow explicit zone_id
When zone id is explicitly provided, there is no need for the API token to have read permission. Inspired by acme.sh's cloudflare logic.

Signed-off-by: Glen Huang <heyhgl@gmail.com>
2022-01-10 20:44:40 +08:00
Richard Yu 9e6dd11484
ddns-scripts: add ns1.com provider
Signed-off-by: Richard Yu <yurichard3839@gmail.com>
2021-12-15 18:22:56 +08:00
Martijn Atema aa820a2cae ddns-scripts: Add script for TransIP.nl
Signed-off-by: Martijn Atema <martijn@atema.one>
Signed-off-by: Florian Eckert <fe@dev.tdt.de>
- PKG_RELEASE number updated
2021-11-30 13:10:57 +01:00
George Giannou 49defda70c ddns-scripts: Fix DigitalOcean JSON payload
Signed-off-by: George Giannou <giannoug@gmail.com>
2021-11-29 13:00:36 +02:00
Florian Eckert fdb471ab9e
Merge pull request #17120 from giannoug/ddns-scripts-digitalocean
ddns-scripts: Rework DigitalOcean update script
2021-11-17 11:02:01 +01:00
George Giannou 550817815e ddns-scripts: Rework DigitalOcean update script
Signed-off-by: George Giannou <giannoug@gmail.com>
2021-11-15 16:24:30 +02:00
Martijn Atema de2a9d4b13
ddns-scripts: Fix typo in route53 update script
Signed-off-by: Martijn Atema <martijn@atema.one>
2021-11-15 12:44:41 +01:00
Jun Zhu 10bfa7e974 ddns-scripts: Add dnspod.cn
Signed-off-by: Jun Zhu <zhujunsan@gmail.com>
2021-09-30 14:18:55 +08:00
Cristian Le e3183a3312 ddns-script-gandi: Better error management
- Changed DNS endpoint to LiveDNS
- Now using `jshn.sh`
- Better handle errors and ouput

Signed-off-by: Cristian Le <git@lecris.me>
2021-08-31 23:51:35 +09:00
Cristian Le 36afa3dfce ddns-scripts-pdns: Add package
Signed-off-by: Cristian Le <git@lecris.me>
2021-08-31 21:55:09 +09:00
Florian Eckert 036079b308 ddns-scripts: get l3 device for bind network using curl
If pppoe is used for wan access. script set 'eth1' as interface for curl
call. The correct interface is however 'pppoe-wan'.

The script uses 'network_get_physdev' function to get real device for
bind_network but this is wrong. We need instead the l3_device of the the
logical interface.

In case if we don't use pppoe connection - 'l3_device' is equal to real device.

This was reported by the github user `welderpb` with P/R:
 https://github.com/openwrt/packages/pull/14431

Signed-off-by: Florian Eckert <fe@dev.tdt.de>
2021-06-22 10:13:09 +02:00
Wenli Looi 9e2aad3fde ddns-scripts: Fix for domains with dash
Signed-off-by: Wenli Looi <wlooi@ucalgary.ca>
2021-05-19 11:43:07 -07:00
Wenli Looi 93344aafa0 ddns-scripts: Fix for wildcard subdomain
Signed-off-by: Wenli Looi <wlooi@ucalgary.ca>
2021-05-18 23:24:53 -07:00
Edi Turn 0e4f2b1068 ddns-scripts: make WGET_SSL executable
Signed-off-by: Edi Turn <yyxstter@gmail.com>
2021-01-27 20:40:03 +08:00
Huangbin Zhan 9eab8cceda ddns-scripts: fix wget-ssl path
Signed-off-by: Huangbin Zhan <zhanhb88@gmail.com>
2021-01-17 22:28:05 +08:00
Florian Eckert 733e6508f3 ddns-scripts: add gandi.net provider
Signed-off-by: Florian Eckert <fe@dev.tdt.de>
2020-11-28 11:07:14 +01:00
Joel Johnson 5b362932a7 ddns-scripts: use ip_source as bind_network default
Fixes: #13182 on https://github.com/openwrt/packages

Signed-off-by: Joel Johnson <mrjoel@lixil.net>
2020-10-21 08:43:18 -06:00
Johnathan Arsenault 33d6dc4027 ddns-scripts: add ipv6 capability for no-ip.com
Signed-off-by: Johnathan Arsenault <johnathan.arsenault@gmail.com>
Tested-by: Stefan Lippers-Hollmann <s.l-h@gmx.de>
2020-10-05 16:02:26 +02:00
Florian Eckert 8d10cdda08 ddns-scripts: also read providers from custom directory
The provider could also be read from the custom directory. To get always
the latest version of the provider config json file, we read first the custom
directory and after that we also check the default directory, if we could not
find the provider file

Signed-off-by: Florian Eckert <fe@dev.tdt.de>
2020-09-28 15:28:27 +02:00
Florian Eckert 8be604072c ddns-scripts: move all json files to default
Since we can also install custom ddns services, the name for the default
services is not optimally chosen. To emphasize this the folder with the
standard services for the package feed will be renamed to default.

Signed-off-by: Florian Eckert <fe@dev.tdt.de>
2020-09-28 14:47:37 +02:00
Florian Eckert 1d20c59fc3 ddns-scripts: update dynamic_dns_*.sh installation
Signed-off-by: Florian Eckert <fe@dev.tdt.de>
2020-09-21 10:17:01 +02:00
Florian Eckert fdf1cdbd7b ddns-scripts: update cnkuai.cn to json
Signed-off-by: Florian Eckert <fe@dev.tdt.de>
2020-09-21 10:17:01 +02:00
Florian Eckert 96c67053e3 ddns-scripts: update route53-v1 to json
Signed-off-by: Florian Eckert <fe@dev.tdt.de>
2020-09-21 10:17:01 +02:00
Florian Eckert e051d37720 ddns-scripts: update bind-nsupdate to json
Signed-off-by: Florian Eckert <fe@dev.tdt.de>
2020-09-21 10:17:01 +02:00
Florian Eckert cabdcdf795 ddns-scripts: update no-ip.com to json
Signed-off-by: Florian Eckert <fe@dev.tdt.de>
2020-09-21 10:17:01 +02:00
Florian Eckert 6945528179 ddns-scripts: update digitalocean.com-v2 to json
Signed-off-by: Florian Eckert <fe@dev.tdt.de>
2020-09-21 10:17:01 +02:00
Florian Eckert f9f3d67a57 ddns-scripts: update godaddy.com-v1 to json
Signed-off-by: Florian Eckert <fe@dev.tdt.de>
2020-09-21 10:17:01 +02:00
Florian Eckert a4b13ba1dd ddns-scripts: update freedns.42.pl to json
Signed-off-by: Florian Eckert <fe@dev.tdt.de>
2020-09-21 10:17:01 +02:00
Florian Eckert 7a41ef8283 ddns-scripts: update cloudflare.com-v4 to json
Signed-off-by: Florian Eckert <fe@dev.tdt.de>
2020-09-21 10:17:01 +02:00
Christian Schoenebeck 5b26382273 ddns-scripts: Update to version 2.2.0-1
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>
2015-02-05 21:33:02 +01:00
Christian Schoenebeck 317740f2f2 ddns-scripts: Update to Version 2.1.0-5
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>
2015-01-17 00:11:09 +01:00
Christian Schoenebeck 64250aebc7 ddns-scripts: update to version 2.1.0-4
* 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>
2015-01-11 15:39:47 +01:00
Christian Schoenebeck 5e8123eb3b ddns-scripts: Update to version 2.1.0-3
- removed special handling for dynamic_dns_helper.sh and url_escape.sed in Makefile/postinst
- minor fixes in logging
- allow retry_count of "0" to run infinite retrys on error
	-- https://dev.openwrt.org/ticket/18382
- changed naming of .dat and .err file to have one per section, not one per process
- defer hotplug helper from 25-ddns to 95-ddns (according initscript START=95)
	-- https://github.com/openwrt/packages/issues/568 (#568)
- fix commandline for busybox wget
	-- https://dev.openwrt.org/ticket/18411
	-- https://dev.openwrt.org/ticket/18437
	-- https://github.com/openwrt/packages/issues/605 (#605)
- remove checking answer from ddns provider because there are to many different.
	Some providers do not follow API from dyndns.com

Signed-off-by: Christian Schoenebeck <christian.schoenebeck@gmail.com>
2014-12-07 14:45:31 +01:00
Christian Schoenebeck ab2b229ad6 ddns-scripts: new Version 2.1.0-2
- 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>
2014-11-15 21:28:01 +01:00
Christian Schoenebeck 4192651448 ddns-scripts: Update to Version 2.1.0-1 see description
- 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>
2014-11-09 16:37:11 +01:00
Christian Schoenebeck 8a9124dfc0 ddns-scripts: add retry loop to verify dns and proxy
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>
2014-10-11 11:00:19 +02:00