Commit graph

551 commits

Author SHA1 Message Date
David Kerr
541e3563ca Manual sync with master 2020-07-03 14:35:09 -04:00
David Kerr
115c858b2f Resolve merge conflicts 2020-06-30 21:20:19 -04:00
David Kerr
aac0a11c73 remove T_IFV4 and T_IFV6 because can be the same as T_IF (+5 squashed commits)
Squashed commits:
[469890b] Spelling of deprecated
[a80f1fb] update to latest design spec
[e6193cb] Remove warning message from call to sprintf()
[8d0d168] Updates to new IPv6 settings
[76b75ce] Add all the settings proposed by the IPv6 design document

Updates to new IPv6 settings

Remove warning message from call to sprintf()

update to latest design spec

Spelling of deprecated

remove T_IFV4 and T_IFV6 because can be the same as T_IF
2020-06-30 21:20:19 -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
David Kerr
00ce8bdeb3 Add is_ipv4() and extract_ipv4() functions 2020-06-29 00:19:32 -04:00