Commit graph

802 commits

Author SHA1 Message Date
Richard Hansen
23e372d283
Merge pull request #216 from ddclient/perl-version
Explicit require version
2020-07-01 11:44:23 -04:00
Sandro Jäckel
c4f2670d8b Explicit require version
because centos does not include it at all times
2020-07-01 11:43:47 -04:00
Sandro
19813a7247
Merge pull request #195 from rhansen/config
Move per-service variables to the service definitions
2020-07-01 10:07:46 +02:00
Richard Hansen
8ed93cb576 Move per-service variables to the service definitions
Most of the entries in `%variables` are only used once. Move them down
to their respective service definitions.

Also:
  * Use idiomatic hash merging instead of `merge()`.
  * Sort the variables by name.
2020-06-30 22:14:15 -04:00
Sandro
ef566064d5
Merge pull request #215 from rhansen/verbose-tests
Recommend `VERBOSE=1` when running tests
2020-07-01 01:42:51 +02:00
Richard Hansen
c198e21c16 Recommend VERBOSE=1 when running tests
This causes Automake to output a failed test's log so that you don't
have to look at the `.log` file yourself.
2020-06-30 19:37:01 -04:00
Richard Hansen
296576d57f
Merge pull request #209 from ddclient/ci-centos
Add test for centos, use matrix for ubuntu
2020-06-30 18:57:39 -04:00
Sandro Jäckel
af718224b3 Add fedora to ci 2020-06-30 18:54:19 -04:00
Sandro Jäckel
ea840db62d Add centos 6 to ci 2020-06-30 18:51:41 -04:00
Sandro Jäckel
c4fae81053 Add centos 8 to ci 2020-06-30 18:51:41 -04:00
Richard Hansen
38d71b2efa Set VERBOSE=1 to show logs on failure 2020-06-30 18:47:22 -04:00
Sandro Jäckel
0ca6e62b67 Use matrix for ubuntu 2020-06-30 18:47:22 -04:00
Sandro
504e326274
Merge pull request #214 from rhansen/woima
Fix woima protocol implementation `for` loop
2020-07-01 00:45:31 +02:00
Richard Hansen
7a2d065a2d Fix woima protocol implementation for loop 2020-06-30 18:41:40 -04:00
Sandro
43c0581334
Merge pull request #213 from rhansen/regex-flag-compat
Remove the `/a` regex flag
2020-07-01 00:37:13 +02:00
Richard Hansen
ccc876c160 Remove the /a regex flag
This flag was added in Perl 5.14 so we can't use it.
2020-06-30 18:34:41 -04:00
Sandro
05e5759aa1
Merge pull request #212 from rhansen/automake-parallel-tests
Enable Automake's parallel-tests feature
2020-07-01 00:27:17 +02:00
Richard Hansen
65bc4cd986 Enable Automake's parallel-tests feature
Apparently it's off by default in Automake 1.11.
2020-06-30 18:22:22 -04:00
Richard Hansen
034e6501ed
Merge pull request #196 from dkerr64/Cleanup-extract_ipv4-and-is_ipv6-and-usage
Cleanup extract ipv4 and is ipv6 and usage
2020-06-30 15:54:25 -04:00
David Kerr
36d8b511b3 Move un_zero_pad into extract_ipv4, extract_ipv6
This also causes `is_ipv4` to reject IPv4 addresses with leading
zeros.
2020-06-30 15:44:24 -04:00
David Kerr
0a999577c7 Simplify the IPv4 regular expression 2020-06-30 15:43:07 -04:00
David Kerr
5da22a8a69 Implement is_ipv6 in terms of extract_ivp6 2020-06-30 15:26:40 -04:00
David Kerr
ab0a4597ce Validate the ip setting 2020-06-30 15:22:13 -04:00
David Kerr
fe513f733d Use is_ipv6, not extract_ipv6, to validate IPv6 address 2020-06-30 15:19:38 -04:00
David Kerr
af1332264f Delete unnecessary address check
`get_ip` is guaranteed to return a valid IP address or `undef`.
2020-06-30 15:16:55 -04:00
Sandro
7e0f696c87
Merge pull request #210 from rhansen/tap-driver.sh
Tell Git to ignore changes to build-aux/tap-driver.sh
2020-06-30 21:00:36 +02:00
Sandro
7c81627c92
Merge pull request #211 from rhansen/rename-template
Rename `*.template` to `*.in`
2020-06-30 20:51:32 +02:00
Richard Hansen
44eaf653f1 Rename *.template to *.in
Apparently the `.template` extension is commonly used in macOS for a
word processor template file.

See issue #206.
2020-06-30 13:27:08 -04:00
Richard Hansen
38e44ef1fb Tell Git to ignore changes to build-aux/tap-driver.sh 2020-06-30 12:27:11 -04:00
Richard Hansen
5e7683df85 Merge pull request #208 from ddclient/fix-shebang
Fix shebang
2020-06-30 11:59:27 -04:00
Sandro Jäckel
86a3294b0f Fix shebang
cause perl needs a regular shebang even when evoking the script
directly with perl
2020-06-30 11:55:11 -04:00
Sandro
06851b770e
Merge pull request #207 from rhansen/test-improvements 2020-06-30 09:08:50 +02:00
Richard Hansen
a8212a397e Add a test for unexpected warnings 2020-06-30 00:40:26 -04:00
Richard Hansen
0cc83cd5ec Simplify runtime imports in test code
Also use `BAIL_OUT` instead of `die` if `require 'ddclient'` fails.
2020-06-29 17:26:46 -04:00
Richard Hansen
858fe53072
Merge pull request #163 from rhansen/ipv6-design-doc
Design doc for IPv6 support
2020-06-29 17:24:32 -04:00
Richard Hansen
d31d9f8bde Design doc for IPv6 support
Add a document describing a design for comprehensive IPv6 support. The
ddclient maintainers agreed to this design, and it should be used to
guide the implementation of full IPv6 support.
2020-06-29 17:23:51 -04:00
Richard Hansen
58c6570dde
Merge pull request #184 from rhansen/freedns
Redo freedns.afraid.org protocol to fix several bugs
2020-06-29 17:22:56 -04:00
Richard Hansen
566c3c3d5e Redo freedns.afraid.org protocol to fix several bugs
* Support IPv6 addresses.
  * Support updating addresses that aren't the client's own addresses.
  * Set status to 'failed' if the update fails for any reason.
  * Don't skip hosts if a previous update failed.
  * Check for a non-OK code from the update server.
  * Strip headers before processing responses.

This still uses API v1 because API v2 currently has some limitations;
see #180 for details.

Fixes #180
2020-06-29 17:22:09 -04:00
Richard Hansen
d593892c6a Set up GitHub CI
Teach GitHub to run tests for changes to `master` and for pull
requests targeting `master`.
2020-06-29 17:14:21 -04:00
Richard Hansen
c72d128a9e Disable accidental interpolation in regular expression
Without this change, Perl prints the following warning:

> Possible unintended interpolation of `@$` in string at ddclient line 43.
2020-06-29 17:13:06 -04:00
Richard Hansen
dde91fd028 Typo fix (you -> your) 2020-06-29 17:12:01 -04:00
Richard Hansen
f360860378
Merge pull request #161 from rhansen/test-framework
Build system and unit test infrastructure
2020-06-29 11:09:12 -04:00
Richard Hansen
c390e75769 Add unit test infrastructure.
Now all that is needed to add a new unit test is to create a `t/*.pl`
file and list it in the `handwritten_tests` variable.

To run the test suite, run:

    ./autogen && ./configure && make check

Fixes #147
2020-06-29 11:08:32 -04:00
Richard Hansen
f6f920eb39 Use the "modulino" pattern to facilitate unit tests
Now the `ddclient` file can be used as a script or as a module. For
details, see: https://www.drdobbs.com/scripts-as-modules/184416165

Addresses #147
2020-06-29 11:08:28 -04:00
Richard Hansen
8cbcecba99 Add Autotools-based build infrastructure
This makes it easier to package ddclient, especially as enhancements
are made such as unit tests or a man page.

I chose GNU Autoconf and Automake mostly because I'm familiar with
them, but also because I know they are well supported. Unfortunately
they can be difficult to understand/maintain (especially Autoconf), so
we may want to convert to something else later.

Addresses #146, #147
2020-06-29 11:06:34 -04:00
Sandro
bfdf9454f0
Merge pull request #201 from rhansen/group_hosts_by
`group_hosts_by` improvements
2020-06-29 09:40:11 +02:00
Sandro
4f08d77cae
Merge pull request #202 from rhansen/cloudns
Add ClouDNS support
2020-06-29 09:36:44 +02:00
Richard Hansen
0792f9b272 Add ClouDNS support
Fixes #190
2020-06-29 01:15:42 -04:00
Richard Hansen
8fcc9b0e2f group_hosts_by improvements
* Don't modify `$config{$h}{$v}` if variable `$v` for host `$h` is
    `undef`.
  * Tolerate the user passing `wantip` or duplicate keys.
2020-06-29 01:15:28 -04:00
Richard Hansen
b1da99c361 Merge pull request #200 from rhansen/undo-revert
Add is_ipv4() and ipv4_match() functions
2020-06-29 01:13:43 -04:00