Richard Hansen
8e24c92b1e
infomaniak: Fix response parsing
2024-06-25 22:53:23 -04:00
Richard Hansen
d2f0e042f4
infomaniak: Invert condition to improve readability
2024-06-25 22:47:26 -04:00
Richard Hansen
29e86d9a91
infomaniak: Rename variable for readability
2024-06-25 22:47:25 -04:00
Richard Hansen
a5dedeed3c
infomaniak: Fix geturl call
...
* Pass login and password via `login` and `password` options to
avoid issues with escaping special characters.
* Don't attempt twice -- if the first attempt fails, the second will
almost certainly fail as well. (The two attempted URLs were
equivalent, differing only in how the login and password were
passed.)
2024-06-25 22:47:25 -04:00
Richard Hansen
ac9f937c88
infomaniak: Delete unnecessary defined checks
...
`undef` is falsy so there's no need to check whether the value is
defined.
2024-06-25 22:46:00 -04:00
Richard Hansen
bab9d9483e
infomaniak: Move variable declaration to definition
2024-06-25 21:55:46 -04:00
Richard Hansen
134e47b61d
infomaniak: Delete unnecessary newlines
2024-06-25 21:50:51 -04:00
Richard Hansen
9d49a33ac6
regfishde: Fix IPv6 support
2024-06-25 02:58:09 -04:00
Richard Hansen
0cde2e3f96
infomaniak: Fix mtime
update
...
`mtime` should always be updated whenever the IP address is updated,
otherwise ddclient will keep force updating over and over.
2024-06-25 02:57:42 -04:00
Richard Hansen
61577d29ae
njalla: Fix configuration change during update
...
If the user enabled `quietreply`, it should not become false after the
first update.
Users might not notice a problem because I think ddclient re-reads the
config file before every check.
2024-06-25 02:52:22 -04:00
Richard Hansen
32bf975bfa
Fix call to wrong function name with bad --usev6
2024-06-25 02:52:22 -04:00
Richard Hansen
99dfd7f84d
Don't assume that --use
is defined
2024-06-25 02:51:58 -04:00
Richard Hansen
b154d8ef98
Fix missing v4, v6 variants in recap update
...
Fixes an oversight when IPv6 support was added.
2024-06-25 02:48:51 -04:00
Richard Hansen
dafde8becb
Fix erroneous backupmx
recap check for dyndns1
, dyndns2
2024-06-25 01:38:43 -04:00
Richard Hansen
7ac6eda7cc
Fix missing local use*
override in --query
2024-06-25 01:37:47 -04:00
Richard Hansen
c7c8c5f097
Fix usev4
, usev6
output for --query
2024-06-25 01:32:27 -04:00
Richard Hansen
27b50a3b93
Fix --usev4=cisco
, --usev4=cisco-asa
warning messages
2024-06-25 01:29:29 -04:00
Richard Hansen
e1e8d5711a
Fix get_ip
argument in --query
when testing --fw
2024-06-25 01:20:30 -04:00
Richard Hansen
b363fb48a5
Fix string equality check
...
The `$proto` interpolation wasn't quoted with `\Q` and `\E`, so
metacharacters in `$proto` could break the matching. Switch from a
regex to an expression to fix the equality check and improve
readability.
2024-06-25 00:50:22 -04:00
Richard Hansen
1be8438c70
Rename updateable
to force_update
for readability
2024-06-22 03:07:49 -04:00
Richard Hansen
b426b370fd
Rename %cache
to %recap
for readability
2024-06-22 02:48:03 -04:00
Richard Hansen
49bd1b7347
Rename %services
to %protocols
for consistency
2024-06-22 02:42:51 -04:00
Richard Hansen
1718ceab70
Add comments documenting the cached variables
2024-06-22 02:35:01 -04:00
Richard Hansen
3d73e7c231
Add TODO comments for confusing bits of code
2024-06-22 02:30:01 -04:00
Richard Hansen
9a5500a667
Improve readability via minor logic tweaks
...
Change some code that is unnecessarily complicated or otherwise not
the right tool for the job to improve readability.
2024-06-22 02:30:01 -04:00
Richard Hansen
ab60675660
Improve readability of cache var update logic
2024-06-22 02:30:01 -04:00
Richard Hansen
0d712f7bbc
Improve readability of wantip
, wantipv4
, wantipv6
fallback
2024-06-22 02:30:01 -04:00
Richard Hansen
5c38af2ed5
Improve readability by moving code out of unnecessary blocks
...
Invert conditions and move out unnecessary blocks to reduce
indentation and make it easier to see control flow.
2024-06-22 02:28:12 -04:00
Richard Hansen
160344514f
Improve readability by simplifying if
conditions
2024-06-22 02:27:44 -04:00
Richard Hansen
288a30ab1e
Whitespace fixes
2024-06-22 01:38:28 -04:00
Richard Hansen
2d4a93d5e7
header_ok: Fix typo(?) in HTTP response regular expression
2024-06-06 19:34:06 -04:00
Richard Hansen
211d59fccc
header_ok: Log all non-2xx HTTP status codes
2024-06-06 19:34:06 -04:00
Richard Hansen
7fe7fd0e18
header_ok: Refactor for readability
2024-06-06 19:34:06 -04:00
Richard Hansen
adbac91be7
header_ok: Only keep first line of argument
...
This allows callers to pass the entire response without generating
overly long error messages.
2024-06-06 19:34:06 -04:00
Richard Hansen
bb658d763a
Simplify loading of JSON::PP
2024-06-06 19:08:15 -04:00
Richard Hansen
1401ff4aea
Only attempt to load Digest::SHA
...
`Digest::SHA` has been a core module for a long time, and
`Digest::SHA1` has not been updated in a long time.
2024-06-06 19:07:25 -04:00
Richard Hansen
1e1e100d7f
Prefer Digest::SHA
over Digest::SHA1
...
`Digest::SHA` is a core module; `Digest::SHA1` is not.
2024-06-04 18:44:25 -04:00
Richard Hansen
a0240345bf
Use Module->import(...)
instead of import(Module, ...)
...
This matches the documentation of the `use` statement.
2024-06-04 18:44:25 -04:00
Richard Hansen
31dbd8e4ed
geturl: Set raw (binary) mode when reading from curl
2024-06-03 03:13:05 -04:00
Richard Hansen
8e901c3db6
geturl: Avoid the shell when invoking curl
2024-06-02 17:00:05 -04:00
Richard Hansen
09d8d0426e
geturl: Don't suppress curl's STDERR
...
This makes it easier for users to troubleshoot problems.
2024-06-02 17:00:05 -04:00
jortkoopmans
73a67b728d
dnsexit2: Move body of for
loop to a separate function
...
For improved readability.
2024-06-02 16:58:00 -04:00
Richard Hansen
11d0c84639
dnsexit2: Don't skip remaining hosts on connect error or non-2xx
...
A non-2xx status code might be host-specific, so ddclient should
continue with the next host. We could skip the remaining hosts if
there is a connection failure, but it doesn't hurt to retry.
2024-06-02 16:58:00 -04:00
jortkoopmans
216741c9ce
dnsexit2: Fix when provided with a zone and a non-identical hostname
...
Trim the zone from the hostname in the request to fix issue.
2024-06-02 16:58:00 -04:00
Richard Hansen
282bb01e17
Bump version to v3.12.0~alpha
...
Enough has changed to warrant a minor revision bump.
2024-06-01 03:49:16 -04:00
Richard Hansen
e60e6e804b
group_hosts_by: Use Data::Dumper
to make the group signature
...
This is a bit more robust than manually making the group signature
because it gracefully handles corner cases such as `undef`.
2024-06-01 03:06:06 -04:00
Richard Hansen
f4802fc534
Fix group_hosts_by
call for IPv6-enabled services
2024-06-01 03:05:36 -04:00
Richard Hansen
343fcff625
group_hosts_by: Add support for wantipv4
, wantipv6
2024-06-01 03:05:36 -04:00
Richard Hansen
f976b771d4
dnsexit2: Fix logging of erroneous response body
2024-05-30 18:29:38 -04:00
Richard Hansen
f7f4856b93
dnsexit2: Combine related log messages
2024-05-30 18:28:57 -04:00
Richard Hansen
24a22092ca
dnsexit2: Don't croak if JSON decoding fails
2024-05-30 18:22:59 -04:00
Richard Hansen
d28c8ea7ad
dnsexit2: Delete unnecessary debug messages
2024-05-30 17:56:51 -04:00
Richard Hansen
7b95b379aa
dnsexit2: Fix extraction and processing of JSON response body
2024-05-30 17:52:12 -04:00
Richard Hansen
2a47b17541
dnsexit2: Include the unexpected status in the error message
2024-05-30 16:26:44 -04:00
Richard Hansen
d8a1449a19
dnsexit2: Fix error message format string
...
This fixes a bug introduced in commit
2bf6d348b0
.
2024-05-30 16:25:25 -04:00
Richard Hansen
6e5e2ab63f
dnsexit2: Remove https://
from update service URL
...
This allows the `ssl` setting to control TLS vs. plain HTTP, and makes
it possible to create a compatible service that doesn't use TLS (e.g.,
for testing).
2024-05-30 16:21:25 -04:00
Richard Hansen
eebb1b8a47
dnsexit2: Delete redundant status-ipv*
assignments
2024-05-30 16:19:41 -04:00
Richard Hansen
3c84f7a1b5
dnsexit2: Delete unnecessary debug messages
2024-05-30 04:49:46 -04:00
Richard Hansen
5b7400ae7d
dnsexit2: Normalize the zone up front
2024-05-30 04:48:44 -04:00
Richard Hansen
46bca54393
dnsexit2: Fix string interpolation
2024-05-30 04:04:19 -04:00
Richard Hansen
da9f39917f
dnsexit2: Inline some unnecessary variables
2024-05-29 18:29:09 -04:00
Richard Hansen
6c89eaf4ac
dnsexit2: Build updates array directly, not hash to array
...
to improve readability, and to make it easier to use
`group_hosts_by()` in the future to update multiple hosts at the same
time.
2024-05-29 18:25:24 -04:00
Richard Hansen
2bf6d348b0
dnsexit2: Reuse the $url
variable
2024-05-29 18:25:24 -04:00
Richard Hansen
4804e15c12
dnsexit2: Add final comma after last list item
...
for consistency, and to avoid bugs if additional items are added or
the items are reordered.
2024-05-29 18:25:24 -04:00
Richard Hansen
7c4fe28bab
dnsexit2: Simplify IP version loop
2024-05-29 17:57:20 -04:00
Richard Hansen
40d1bc8e51
dnsexit2: Clarify comments
2024-05-29 17:51:54 -04:00
Richard Hansen
18007dda8a
dnsexit2: Delete unnecessary comments
...
Comments should only be used if the code is doing something
subtle/tricky/non-obvious/unusual, otherwise they're distracting and
might get out of sync with the code (in which case it becomes
difficult to tell if it's the comment or the code that's wrong). If
the code is difficult to understand without comments but is doing
something ordinary, then the code needs to be modified to improve
readability.
2024-05-29 17:51:54 -04:00
Richard Hansen
61d34a9157
dnsexit2: Move code meanings closer to where it is used
2024-05-29 17:42:35 -04:00
Richard Hansen
df81075e49
dnsexit2: Rename variable to avoid confusion
2024-05-29 17:41:34 -04:00
Richard Hansen
ed7f4a68a4
dnsexit2: Rewrite circuitous variable assignments
2024-05-29 17:34:51 -04:00
Richard Hansen
3e91fd02bf
dnsexit2: Invert conditions to improve readability
...
Instead of:
if ($success1) {
if ($success2) {
if ($success3) {
# yay
} else {
# fail
}
} else {
# fail
}
} else {
# fail
}
do:
if (!$success1) {
# fail
}
if (!$success2) {
# fail
}
if (!$success3) {
# fail
}
# yay
2024-05-29 17:21:39 -04:00
Richard Hansen
9b1a785c6d
dnsexit2: Don't repeat the same success message
2024-05-29 17:15:24 -04:00
Richard Hansen
3a5e86b4d2
dnsexit2: Convert string interpolation to sprintf
format specifier
...
Rationale:
* For consistency.
* It's generally not a good idea to mix interpolation with `sprintf`
because the interpolated string itself might coincidentally (or
maliciously) contain format specifiers.
2024-05-29 17:10:06 -04:00
Richard Hansen
6cdf5da9f4
dnsexit2: Rename variable for brevity
2024-05-29 17:05:54 -04:00
Richard Hansen
63989d96fb
dnsexit2: Move variable declaration to loop scope
2024-05-29 17:02:46 -04:00
Richard Hansen
0040fc9608
dnsexit2: Whitespace fixes
2024-05-29 17:02:46 -04:00
Richard Hansen
a91ca7a199
s/foreach/for/g for consistency
2024-05-29 16:48:00 -04:00
Joel Croteau
61b979c49e
New 'emailonly' protocol that simply sends an email on IP change
...
This adds a protocol to email IP address changes without needing a
dynamic DNS service. This is useful if you don't use a DDNS service
but want to be notified when the IP of a machine changes.
2024-05-25 00:38:10 -04:00
Richard Hansen
d8a9d9d089
Add support for infinite duration
2024-05-25 00:38:10 -04:00
Richard Hansen
9c6e5fdda4
Output a |
character in log message continuation lines
...
This makes it easier to tell where multi-line log messages begin and
end.
2024-05-23 02:04:29 -04:00
Richard Hansen
ff39ce3874
Don't use sprintf
if there is only one argument
...
This avoids problems when logging a string that might have
metacharacters.
2024-05-23 02:04:19 -04:00
Richard Hansen
bcd57b486b
Always log to STDERR, even for debug, info, etc.
...
Rationale:
* Logging to STDERR enables separation of processable output (e.g.,
`--version` or `--help`) and ephemeral status/error messages.
* A single file descriptor for all log messages makes it easier for
users to capture all log messages.
* Consistency: it's what most utilities do.
2024-05-23 02:04:19 -04:00
Richard Hansen
d6693e0175
Use the de facto standard signature separator instead of "regards"
2024-05-23 01:57:12 -04:00
Richard Hansen
065b227711
logmsg: New low-level logging interface
2024-05-23 01:57:12 -04:00
Richard Hansen
f9dafa35a1
Rename $msgs
to $emailbody
to improve readability
2024-05-23 01:54:09 -04:00
Richard Hansen
8ef7b13cb0
Don't set legacy status
in protocols if IPv6-aware
...
ddclient infrastructure will update the legacy `status` variable if
necessary.
2024-05-20 01:35:21 -04:00
Richard Hansen
ba18535c51
Fix broken legacy status
handling
...
`$config{$h}{'status'}` was always initialized to a non-`undef` value,
so the `//` fallbacks never did anything. Instead, any protocol that
does not explicitly update the legacy `status` variable (such as
`godaddy`) would always appear to have failed even if it had
succeeded.
Change the `status*` variables to `undef` by default, and only set
them when an attempt is made so that the legacy `//` fallback works as
expected.
2024-05-20 01:33:15 -04:00
Richard Hansen
f212613526
godaddy: Fix status field name
...
This shouldn't matter in practice because the `status-ipv$ipversion`
field is initialized to a non-`good` value so failing to set it to
`bad` doesn't turn it `good`, but it improves readability.
2024-05-20 01:30:33 -04:00
Richard Hansen
c60aa225a1
godaddy: Rename $status
to $code
2024-05-20 01:30:33 -04:00
Richard Hansen
dc92f16eb2
dnsexit2: Update new status-ipv*
vars, not legacy status
...
The `dnsexit2` protocol reads the IP addresses from the new `ipv4` and
`ipv6` variables, so it should update the `status-ipv4` and
`status-ipv6` variables.
2024-05-20 01:30:33 -04:00
Richard Hansen
baec50d134
1984: Update cached status and IP on success
2024-05-20 01:30:33 -04:00
Richard Hansen
8b0c038d63
1984: Fix missing next
on failure
2024-05-20 01:30:33 -04:00
Richard Hansen
9573051e3e
njalla: Update cached status and IP on success
2024-05-20 01:30:33 -04:00
Richard Hansen
6320e6c395
Don't require login
and password
to be set
...
Not all services use them.
This change should have been included with commit
27b5c535bc
.
2024-05-20 00:13:37 -04:00
Richard Hansen
23b368f5ff
Add missing final comma
2024-05-19 02:18:55 -04:00
Richard Hansen
27b5c535bc
Use undef
to disable required variables
2024-05-19 02:18:55 -04:00
Richard Hansen
4d1b3439ea
Use service-common-defaults
variables
...
This avoids a lot of duplication and improves readability by making it
easier to see service-specific variables.
2024-05-19 01:51:06 -04:00
Richard Hansen
6da30367d0
Inline unnecessary *-common-defaults
variable definitions
2024-05-19 01:49:48 -04:00
Richard Hansen
5e3e10d32e
Replace unnecessary merge
function with hash initializers
2024-05-19 01:49:48 -04:00
Richard Hansen
52864f2bb1
Delete redundant variable definitions
2024-05-19 01:49:45 -04:00