Richard Hansen
962abfbbc3
use=web, use=<fw>: Don't treat non-2xx results as successes
2024-07-27 04:40:34 -04:00
Richard Hansen
e272caa385
use=web, use=<fw>: Strip HTTP headers before searching for IP
2024-07-27 04:40:34 -04:00
Richard Hansen
08626482c3
header_ok: Don't assume that it is only used for host updates
2024-07-27 03:59:52 -04:00
Richard Hansen
d48b482269
geturl: Log message improvements
2024-07-27 03:59:52 -04:00
Richard Hansen
b1752c2622
logging: Delete unused msg
function
2024-07-27 03:59:29 -04:00
Richard Hansen
6aa68f72a7
logging: Change multi-line log message designation style
...
Before, the first line of a multi-line log message was prefixed with a
space while all subsequent messages were prefixed with `|`. Now the
first line is prefixed with `>` and all subsequent lines with a space.
This makes it easier to quickly discern message boundaries.
2024-07-27 03:47:47 -04:00
Richard Hansen
bd437a0abf
nic_updateable: Log message improvements
2024-07-26 23:58:20 -04:00
Richard Hansen
8262f112ea
nic_updateable: Read option value after loading config
2024-07-26 23:58:20 -04:00
Richard Hansen
1ad9b565bd
nic_updateable: Don't warn about success
...
Why issue a warning that things have suddenly started going well?
It's bizarre.
2024-07-26 23:58:20 -04:00
Richard Hansen
1054e162fa
query_cisco: Use host-specific option value
2024-07-26 23:50:14 -04:00
Richard Hansen
0392c5e725
query_cisco: Delete redundant warning
...
The same message is already logged in `get_ipv4`.
2024-07-26 23:50:14 -04:00
Richard Hansen
e891f53345
update_nics: Consistently use --opt
instead of opt
2024-07-26 23:50:04 -04:00
Richard Hansen
5d68b11d78
get_ipv6: Factor out check for deprecated value
2024-07-26 23:50:04 -04:00
Richard Hansen
2530adb39e
get_ip: Log message improvements
2024-07-26 23:50:04 -04:00
Richard Hansen
b9d372c12d
get_ip: Allow $arg
to be undefined
...
This is simpler, and makes it possible to distinguish unset from set
to an empty string.
2024-07-26 23:49:48 -04:00
Richard Hansen
0ea2f06513
get_ip: Don't mutate $arg
...
This makes log messages easier to understand.
2024-07-26 19:05:47 -04:00
Richard Hansen
ccc205301a
Delete old test code
...
It's better to start a test HTTP server or override `@curl` from tests
in `t/*.pl`.
2024-07-26 19:05:47 -04:00
Richard Hansen
6ddecb4ecc
Replace use vars
with our
...
From the documentation for `vars`:
> NOTE: For use with variables in the current package for a single
> scope, the functionality provided by this pragma has been superseded
> by "our" declarations, available in Perl v5.6.0 or later, and use of
> this pragma is discouraged.
2024-07-26 19:05:47 -04:00
Richard Hansen
89d7193f69
nic_updateable: Simplify option changed detection logic
2024-07-26 18:15:21 -04:00
Richard Hansen
38a4e9eeef
nic_updateable: Remove unnecessary force_update
parameter
...
`nic_updateable` can look up the host's `force_update` function itself
so there's no need to pass it as an argument.
2024-07-26 17:24:49 -04:00
Richard Hansen
0ffffb1400
Delete unnecessary force_update => undef
lines
2024-07-26 17:21:11 -04:00
Richard Hansen
5a8bee1e4d
Delete unnecessary nic_dyndns2_force_update
...
The `nic_updateable` function already checks the variables to see if
they have changed, so this function is redundant.
2024-07-26 17:06:09 -04:00
Richard Hansen
2a9abc9d4c
Delete unused nic_easydns_force_update
function
2024-07-26 17:04:12 -04:00
jameskimmel
bcfdf70c34
delete unused zoneedit force update
...
I think this sub is never used.
2024-07-23 18:53:27 +02:00
Richard Hansen
9996c1b7d4
googledomains: Remove support for defunct service
2024-07-22 23:28:33 -04:00
Richard Hansen
ddfa8663ad
woima: Remove support for defunct service
2024-07-22 23:26:41 -04:00
Richard Hansen
3c68abe551
easydns: Fix incorrect status value on success
2024-07-20 03:44:05 -04:00
Richard Hansen
a7feb95091
easydns: Add missing OK
and NO_AUTH
result codes
2024-07-20 03:44:05 -04:00
Richard Hansen
d8c74169ee
easydns: Include the full ILLEGAL INPUT
result code in log messages
2024-07-20 03:44:05 -04:00
Richard Hansen
a724084114
easydns: Fix extraction of result code from response body
...
The server returns a full HTML document, not just the result code.
Change equality check to a regex match that is resilient to
server-side changes.
2024-07-20 03:44:05 -04:00
Richard Hansen
435357ac50
easydns: Invert condition to improve readability
2024-07-20 03:44:04 -04:00
Richard Hansen
da26fe76e0
easydns: Update IPv4 and IPv6 separately
...
https://kb.easydns.com/knowledge/dynamic-dns/ doesn't say anything
about repeating the `myip` parameter, or that both IPv4 and IPv6
addresses can be included in the same `myip` parameter.
Unfortunately it also doesn't say whether updating the IPv4 address
alone will nuke the IPv6 AAAA record, or whether updating the IPv6
address alone will nuke the IPv4 A record (like Google Domains used to
do). Here's hoping that the A and AAAA records are truly independent.
2024-07-20 03:44:04 -04:00
Richard Hansen
7a4b96e04e
easydns: Delete incorrect handling of TOOSOON
error
...
Before:
* `$scale` was ignored causing it to set `wtime` to 5s in the
future, which is too brief. Fortunately, `min-error-interval`
applied which prevented overly aggressive retries.
* The lack of call to `failed` meant that `$result` was not set to
"FAILED" and thus `mail-failure` recipients were not emailed.
Now `TOOSOON` is treated like any other error and will result in a
retry after `min-error-interval` (default: 5m).
2024-07-20 03:35:56 -04:00
Richard Hansen
fb990208b3
easydns: Consolidate lines for readability
2024-07-20 03:35:56 -04:00
Richard Hansen
6992a34028
easydns: Simplify response processing
2024-07-20 03:35:56 -04:00
Richard Hansen
7a2625b7a7
easydns: Refine log messages
...
* Consistently use just the hostname as the log message prefix.
* Delete redundant verbose log message.
* Log IPv4 and IPv6 separately in case `$ipv4` or `$ipv6` is
`undef`.
* Don't log the full line when a known error result is returned.
* For unknown results, don't wrap the line in parentheses.
* Use string interpolation for readability.
2024-07-20 03:35:56 -04:00
Richard Hansen
94c304601e
easydns: Increase default min-interval
to 10m
2024-07-20 03:35:56 -04:00
Richard Hansen
e7ad0e8e6e
easydns: Whitespace fixes
2024-07-20 03:35:46 -04:00
Richard Hansen
3a57ca1374
Delete --geturl
command-line argument and geturl
option
...
They are not used in any tests, and `curl` is a better choice anyway.
2024-07-19 18:06:28 -04:00
Richard Hansen
12b2c0d03d
godaddy: Inline some unnecessary variables
2024-07-19 16:21:37 -04:00
Richard Hansen
bdc69d879f
geturl: Accept an arrayref for headers
2024-07-19 16:21:37 -04:00
Richard Hansen
b9144c01c2
godaddy: Use eq
for string equality
...
`==` is for numeric equality.
2024-07-19 16:21:37 -04:00
Richard Hansen
4b2155a43c
godaddy: Combine URL lines to improve readability
...
Also drop unnecessary curly braces for consistency.
2024-07-19 16:18:14 -04:00
Richard Hansen
6e98c0cdb2
godaddy: Invert conditional to improve readability
2024-07-19 16:17:50 -04:00
Richard Hansen
b1c0029604
godaddy: Simplify for
loop
2024-07-19 16:17:49 -04:00
Richard Hansen
3258ea34c0
godaddy: Shorten variables for brevity and consistency
2024-07-19 16:17:19 -04:00
Richard Hansen
56f4a2afe2
godaddy: Don't bother setting status on error
...
It's initialized to a non-'good' value before the function is called,
and ddclient doesn't distinguish between different non-good values, so
it is sufficient to leave it alone.
2024-07-19 16:16:44 -04:00
Richard Hansen
e01ed55a58
godaddy: Simplify and improve error messages
2024-07-19 16:16:21 -04:00
Richard Hansen
c63eb0f060
godaddy: Fix dubious response body check
...
It doesn't make sense to continue processing if the response body
can't be parsed. Maybe GoDaddy returned 200 and there's a bug in the
body parsing logic, in which case the `bad` result should actually be
`good`. But it's better to assume that the update wasn't saved, in
case the server returns 200 with a JSON object that semantically means
"failed to update".
2024-07-19 16:15:37 -04:00
Richard Hansen
f82d2af0f2
godaddy: Whitespace fixes
2024-07-19 16:15:30 -04:00
Richard Hansen
53b373fc9e
godaddy: Delete unnecessary comments
2024-07-19 16:08:41 -04:00
Starkstromkonsument
83ef1fa99a
Add new protocol inwx
...
Adoption of protocol dyndns2 to support their custom URL:
'https://dyndns.inwx.com/nic/update?myip= <ipaddr>&myipv6=<ip6addr>'
2024-07-19 02:26:25 -04:00
Richard Hansen
30a7c5ad78
dyndns2: Delete obsolete custom
and static
options
...
<https://help.dyn.com/remote-access-api/perform-update/ > says:
> We will accept these parameters without generating error messages:
>
> * `system`, previously used to identify update type
2024-07-19 02:12:53 -04:00
Richard Hansen
26f57bf36a
dyndns2: Delete obsolete(?) "wait" response handling
2024-07-19 01:33:02 -04:00
Richard Hansen
adfd68d5e0
dyndns2: Refine log messages
2024-07-18 05:42:49 -04:00
Richard Hansen
1e73f4a51a
dyndns2: Wrap long list of group by attributes
2024-07-18 05:42:49 -04:00
Richard Hansen
90de2f9606
dyndns2: Improve readability of status parsing
2024-07-18 05:42:49 -04:00
Richard Hansen
88f140d470
dyndns2: Invert condition to improve readability
2024-07-18 05:42:48 -04:00
Richard Hansen
8a667e3f57
dyndns2: Treat nochg
as good
to eliminate duplicate code
2024-07-18 05:42:30 -04:00
Richard Hansen
db3472a7ce
dyndns2: Simplify response parsing
2024-07-18 05:42:29 -04:00
Richard Hansen
0892655fd6
dyndns2: Add response handling TODO comments
2024-07-18 05:41:59 -04:00
Richard Hansen
d88e6438ef
Revert "Merge pull request #702 from rhansen/dyndns2"
...
I misread the original code and introduced a bug. This reverts the
entire PR so that I can redo it.
This reverts commit 9eff7404e3
, reversing
changes made to 60f931e7da
.
2024-07-18 03:30:34 -04:00
Richard Hansen
23dad564be
dyndns2: Expand rationale for not checking returned IP
2024-07-17 22:54:02 -04:00
woolflare
2f4b0859bd
Add DDNS.FM support
2024-07-15 03:50:07 -04:00
Richard Hansen
c6581b03f2
Bump version to v4.0.0~alpha
...
The list of breaking changes has become significant enough to warrant
bumping the major version number.
2024-07-14 19:07:55 -04:00
Richard Hansen
f0de73e8c4
Enable --ssl
by default
...
In this day and age there's no good reason to prefer plain HTTP over
HTTPS, and security is more important than potential compatibility
concerns.
2024-07-14 19:00:53 -04:00
Richard Hansen
13369804a0
Improve documentation for --ssl
option
...
Also move it to the top of the sample config file due to its
importance.
2024-07-14 19:00:24 -04:00
Richard Hansen
7754c65103
woima: Honor http:
or https:
scheme in server
variable
2024-07-13 18:38:53 -04:00
Richard Hansen
0ed2970852
keysystems: Honor http:
or https:
scheme in server
variable
...
or fall back to the value of the `ssl` variable if neither `http:` nor
`https:` is present.
2024-07-13 18:38:44 -04:00
Richard Hansen
469c5a072e
dnsmadeeasy: Honor http:
or https:
scheme in server
variable
2024-07-13 18:38:36 -04:00
Richard Hansen
6fbb7eb3dc
domeneshop: Honor http:
or https:
scheme in server
variable
2024-07-13 18:38:26 -04:00
Richard Hansen
c31668b413
dyndns2: Honor http:
or https:
scheme in server
variable
...
or fall back to the value of the `ssl` variable if no `http:` or
`https:` scheme is present.
2024-07-13 18:38:18 -04:00
Richard Hansen
4d5a416725
Omit deprecated services from --list-web-services
...
This also makes the handling of deprecated services a bit more
general.
2024-07-13 17:50:10 -04:00
Indrajit Raychaudhuri
0973e9d83c
Deprecate 'builtinweb' 'he' for 'he.net' for consistency with protocol
2024-07-13 17:31:52 -04:00
Indrajit Raychaudhuri
ecf935a4e2
he.net: Add support for Hurricane Electric provider
...
The implementation is based on the existing
dyndns2 protocol with a few differences:
- The IPv4 and IPv6 addresses must be updated in
separate calls. This is different from most of
the other providers where both IPv4 and IPv6
addresses can be updated in a single call. Thus
the existing dyndns2 protocol implementation
cannot be reused for dns.he.net.
- Multiple hosts are not supported by the provider.
See: https://dns.he.net/docs.html
2024-07-13 17:31:52 -04:00
Richard Hansen
d489cea344
dyndns2: Wrap long list of group by attributes
2024-07-13 04:52:05 -04:00
Richard Hansen
203bf12245
dyndns2: Improve readability of status parsing
2024-07-13 04:45:35 -04:00
Richard Hansen
ad4e3769eb
dyndns2: Invert condition to improve readability
2024-07-13 04:45:35 -04:00
Richard Hansen
0882712ec2
dyndns2: Treat nochg
as good
to eliminate duplicate code
2024-07-13 04:45:35 -04:00
Richard Hansen
45e3603918
dyndns2: Simplify response parsing
2024-07-13 04:45:35 -04:00
Richard Hansen
8a65264841
group_hosts_by: Return the common group configuration
...
This should make it easier to detect missing attribute names passed to
`group_hosts_by`.
2024-07-13 04:09:24 -04:00
Richard Hansen
b8df93febe
group_hosts_by: Return a list, not a hashref
...
The hash key value is an implementation detail that should not be
leaked to the caller.
2024-07-13 04:08:35 -04:00
Richard Hansen
08ccc41650
group_hosts_by: Use arg list instead of arrayref
...
This is more idiomatic.
2024-07-13 04:08:35 -04:00
Richard Hansen
64af205cfc
group_hosts_by: Readability improvements
2024-07-13 04:08:35 -04:00
Richard Hansen
5d2a1e864a
yandex: Remove unnecessary host groupings
...
Each host is already updated individually so there's no point in
grouping the hosts.
2024-07-13 04:08:35 -04:00
Richard Hansen
216c9c6010
hetzner: Remove unnecessary host groupings
...
Each host is already updated individually so there's no point in
grouping the hosts.
2024-07-13 04:08:35 -04:00
Richard Hansen
5ae0fd3024
hetzner: Delete unused login
variable
2024-07-13 04:08:35 -04:00
Richard Hansen
45677c0403
cloudflare: Remove unnecessary attributes from group_hosts_by
args
2024-07-13 04:08:35 -04:00
Richard Hansen
8e20185323
googledomains: Remove unnecessary host groupings
...
Each host is already updated individually so there's no point in
grouping the hosts.
2024-07-13 04:08:35 -04:00
Richard Hansen
40e4aee74f
nsupdate: Add missing tcp
to group_hosts_by
attributes
2024-07-13 04:08:35 -04:00
Richard Hansen
e8a6d1479f
godaddy: Remove unnecessary host groupings
...
Each host is already updated individually so there's no point in
grouping the hosts.
2024-07-13 04:08:35 -04:00
Richard Hansen
5db77f7c31
zoneedit1: Add TODO comments for problematic bits of code
2024-07-13 04:08:35 -04:00
Richard Hansen
217bc998fc
easydns: Remove unnecessary single host groupings
2024-07-13 04:08:35 -04:00
Richard Hansen
c8ee25ef82
noip: Remove unused attributes from group_hosts_by
arguments
2024-07-13 04:08:35 -04:00
Richard Hansen
1faa315794
noip: Delete unused variables
2024-07-13 04:08:35 -04:00
Richard Hansen
39e3322fc0
dyndns2: Add missing script
to group_hosts_by
attributes
2024-07-13 04:08:35 -04:00
Richard Hansen
161c623557
Whitespace fixes
2024-07-13 04:08:33 -04:00
Richard Hansen
b488cb2235
Unwrap error message
...
Normally I prefer lines to be less than 100 characters long, but error
messages are an exception because it makes it easier to search the
source code for the error message.
2024-07-12 18:00:38 -04:00
Richard Hansen
4d9d0646cf
Delete unnecessary comments
2024-07-12 18:00:38 -04:00
Richard Hansen
f5b369a7ef
Fix undef warning when encountering an unset but required var
...
This fixes a bug probably introduced in commit
b8a0a26441
2024-06-29 04:14:57 -04:00