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
Richard Hansen
89c84f9f07
Ignore (with warning) unknown vars in --options
2024-06-29 04:14:35 -04:00
Richard Hansen
1f31b0e570
Prevent autovivification of empty definitions for unknown variables
2024-06-29 04:14:35 -04:00
Richard Hansen
d8317a730d
Fix die
that should be return undef
...
I got ahead of myself -- I intend to replace `return undef` with `die`
in a future commit, and somehow this one jumped the gun.
This fixes a bug introduced in commit
eab72ef6d7
2024-06-29 04:14:31 -04:00
Richard Hansen
04bdd68415
Always set the host
variable
...
The `host` variable is required, so always set it to avoid error
messages when validating the host configuration.
2024-06-29 04:14:02 -04:00
Richard Hansen
be3c2060eb
Fix undefined hash reference warning
...
This fixes a bug introduced in commit
5e3e10d32e
For some reason Perl is OK with:
my $x = undef;
my @k = keys(%$x); # empty list, no warnings
but not:
my $x = undef;
my %h = %$x;
my @k = keys(%h);
2024-06-29 04:13:57 -04:00
Richard Hansen
de39ac7bcc
Fix undef warning when daemon
is unset
...
This fixes a bug introduced in commit
88eb2ed4fe
2024-06-29 03:10:51 -04:00
Richard Hansen
ae7a9dce2a
Fix variable name typo
...
This fixes a bug introduced in commit
b154d8ef98
2024-06-29 03:10:51 -04:00
Richard Hansen
49f5551764
Add variable default value tests
2024-06-28 15:53:40 -04:00
Richard Hansen
eab72ef6d7
Require a defined value if the variable is required
2024-06-28 15:53:40 -04:00
Richard Hansen
399f8a8b32
Adjust variable defaults to pass validity checks
...
Change the default of every variable whose default (non-`undef`)
doesn't pass through `check_value` unmodified.
2024-06-28 15:53:40 -04:00
Richard Hansen
88eb2ed4fe
Use undef
as the default of truly optional variables
2024-06-28 15:53:39 -04:00
Richard Hansen
ba6a279186
Convert unnecessarily required variables to optional
...
Users are not required to provide values for these variables; either
the default is reasonable or the variable can be left unset.
2024-06-28 15:53:06 -04:00
Richard Hansen
b8a0a26441
Remove defaults from required variables without sensible defaults
...
Required variables with defaults don't make sense; remove the default
values on variables that don't have sensible defaults, such as login
and password.
2024-06-28 15:50:35 -04:00
Richard Hansen
be9e305e73
Fix definition of wtime
variable
2024-06-28 15:28:44 -04:00
Richard Hansen
e32b9436fb
nfsn: Fix type of min-interval
variable
2024-06-28 15:28:44 -04:00
Richard Hansen
66bb07450f
nfsn: Fix spelling of min-interval
variable name
2024-06-28 15:28:44 -04:00
Richard Hansen
5757f7e07d
Restore accidentally deleted --fw
command-line argument
...
This was mistakenly deleted in commit
908b728503
.
2024-06-27 00:10:35 -04:00
Richard Hansen
948567c456
infomaniak: Unrequire server
setting
...
The `infomaniak` protocol doesn't use `server`.
2024-06-25 22:53:23 -04:00
Richard Hansen
9ba583175a
infomaniak: Fail if the HTTP status code is not 2xx
2024-06-25 22:53:23 -04:00
Richard Hansen
7d99da77cc
header_ok: Fail if the reply is falsy
2024-06-25 22:53:23 -04:00
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
Richard Hansen
03ad24829c
Fix "Scalar value better written as" warning
...
Also some readability improvements.
2024-05-18 17:21:20 -04:00
Richard Hansen
6b7bf29e56
Move --use=cisco
and --use=cisco-asa
to %builtinfw
...
This simplifies the code and will make it easier to remove support for
these devices in the future.
2024-05-14 22:18:59 -04:00
Richard Hansen
d02a9cf6db
Add infrastructure for custom logic in a %builtinfw
entry
2024-05-14 22:18:59 -04:00
Richard Hansen
ee5bb2de90
Check, don't assume, that --use*
names a firewall
2024-05-14 22:18:59 -04:00
Richard Hansen
474cc76587
Enable --usev4=cisco
and --usev4=cisco-asa
...
These were implemented, but accidentally(?) left out of
`%ipv4_strategies` which prevented their use.
2024-05-14 22:18:59 -04:00
Richard Hansen
5cad38a047
Don't attempt to read file if open fails
2024-05-14 22:00:12 -04:00
Richard Hansen
2eacc71acc
Logging improvements
...
* Consistently use logging functions instead of `print`
* Wording/formatting fixes
* Use `info(...)` instead of `verbose('VERBOSE:', ...)`
2024-05-14 22:00:12 -04:00
Richard Hansen
066b19af8f
Error out if --daemon
and --retry
are both specified
2024-05-14 21:55:12 -04:00
Richard Hansen
2764cd8a10
Clarify what --retry
does
2024-05-14 21:55:12 -04:00
Richard Hansen
498df75790
Fix "no hosts to update" warning condition
2024-05-14 21:55:03 -04:00
Richard Hansen
542bb28a13
Consistently use --arg
instead of -arg
2024-05-14 18:00:14 -04:00
Richard Hansen
12222ff912
Clarify interaction between --use
, --usev4
, and --usev6
2024-05-13 18:53:19 -04:00
Richard Hansen
e35be25010
Reorder --help
for --usev4
and --usev6
for readability
...
and for consistency with `--use`.
2024-05-13 18:53:19 -04:00
Richard Hansen
05304622ea
Add context to --use
deprecation notices in --help
2024-05-13 18:52:22 -04:00
Richard Hansen
a911f2bc0e
Include --use=disabled
and --use=no
in --help
usage
2024-05-13 18:40:05 -04:00
Richard Hansen
16fd4d948d
Enable --use=disabled
...
It's unclear why this entry did not exist before now.
2024-05-13 18:37:33 -04:00
Richard Hansen
dfb2196499
Translate Perl version string to user-friendly version string
...
Perl version strings are flawed in a few ways. Convert them to
user-friendly strings when printed so that Git tags and tarball names
are easier for downstream distributions to work with.
2024-05-12 16:43:43 -04:00
Richard Hansen
c9cec591f0
Add short
option to --version
argument
...
Passing `--version=short` simply prints the version and exits. This
will make it possible for a future commit to change `configure.ac` to
extract the version string from `ddclient.in` to avoid maintaining the
same version string in two places.
2024-05-12 16:43:43 -04:00
Richard Hansen
58d7be4e83
Distinguish unset --*-skip
settings from set to the empty string
...
This prevents the `%builtinweb` or `%builtinfw` skip defaults from
overriding a user's explicitly empty `--web-skip=` or `--fw-skip=`
setting.
This is technically a backwards-incompatible change: Any config that
explicitly sets `--web-skip` or `--fw-skip` to the empty string but
depends on the built-in skip behavior will fail. This is unlikely to
affect many (if any) users; compatibility concerns are believed to be
far less significant than the potential need to turn off the built-in
skip.
2024-05-12 15:55:28 -04:00
Richard Hansen
281b7307a8
Fix misspelled *-ssl-validate
option names
...
There is no `ssl-validate` option, and there never has been.
2024-05-10 16:54:40 -04:00
Richard Hansen
d525e28c20
Show original user input in debug message
...
Also add comments explaining the purpose of the lines, because it's
not immediately clear.
2024-05-07 23:04:20 -04:00
Richard Hansen
b7dd590300
Fix misleading, unclear, redundant, and unnecessary warnings
2024-05-07 23:04:20 -04:00
Richard Hansen
57f15bcb97
Don't modify $usev6
to avoid misleading log messages
2024-05-07 23:04:20 -04:00
Richard Hansen
908b728503
Refine --help
usage for --use*
strategies
2024-05-06 00:21:13 -04:00
Richard Hansen
09b42a78bd
Use --arg
instead of -arg
or arg
in --help
usage
...
`--arg` is preferred over `-arg` because the broader convention is to
use double hyphens for long option names. Perl accepts either.
`--arg` is preferred over `arg` to avoid confusion between `--use=ip`
and `--ip` and similar option pairs.
2024-05-06 00:21:13 -04:00
Richard Hansen
6ac1ee45b0
Consistently use -arg=val
in --help
usage
2024-05-06 00:21:13 -04:00
Richard Hansen
fc4daae0cd
Consistently use |
in placeholders for --help
usage
2024-05-06 00:21:12 -04:00
Richard Hansen
77c9cb5512
Consistently use <
and >
for placeholders in --help
usage
2024-05-06 00:21:12 -04:00
Richard Hansen
dac72a344c
Remove unimplemented --usev*
strategies from --help
usage
...
The `ciscov4`, `ciscov6`, `cisco-asav4`, and `cisco-asav6` strategies
were never implemented, and it doesn't make sense to implement them
because the `v4` and `v6` variants don't follow the pattern
established by the `%builtinfw` strategies.
The `%builtinfw` strategies were never implemented for `--usev6`.
2024-05-06 00:21:12 -04:00
Richard Hansen
640a6f08d7
Fix indentation in --help
output
2024-05-06 00:21:12 -04:00
Toni Wiki
e6e0072e8d
dondominio: Fix service response treatment
2024-03-28 12:56:09 +01:00
Lenard Hess
981dd5f333
Fixed _env suffixed config variables causing errors in check_value()
2024-03-19 22:03:20 +01:00
Lenard Hess
12e9a7c47b
gandi: Added support for personal access tokens
2024-03-19 21:48:30 +01:00
Lenard Hess
9b7714c39c
Revert "gandi: Changed authorization to personal access token"
...
This reverts commit a57cb3b9ff
.
See https://github.com/ddclient/ddclient/issues/602 for more info.
2024-03-19 21:48:30 +01:00
Lenard Hess
0be0cc6953
Merge pull request #627 from etkal/Fix-porkbun-root-domain-update
...
porkbun code not handling root domain
2024-02-25 16:19:06 +01:00
Lenard Hess
28bb7d076a
Merge pull request #628 from ikruglov/fix-googledomains-warning
...
fix warning "Argument "googledomains" isnt numeric in numeric eq (==)
2024-02-25 16:10:15 +01:00
Rüdiger Hahn
8246c65ba8
Fix for getting url for keysystems
2024-02-14 22:36:48 +01:00
Ivan Kruglov
e47e63d91e
fix warning "Argument "googledomains" isnt numeric in numeric eq (==) at /usr/sbin/ddclient line 2736.
2024-02-13 18:16:38 +01:00
Lenard Hess
a57cb3b9ff
gandi: Changed authorization to personal access token
...
The previous API key mechanism has been deprecated.
See https://github.com/ddclient/ddclient/issues/602 for more.
2024-02-10 12:30:46 +01:00
Erik Tkal
4e33dd754f
porkbun code not handling root domain
2024-02-05 18:21:58 -05:00
Lenard Hess
5b104ad116
Switch the defaults for webv4 and webv6 to dyndns
...
The googledomains option (https://domains.google.com/checkip ) is soon to be
deprecated by Google (see https://github.com/ddclient/ddclient/issues/622 ).
2024-02-04 11:26:51 +01:00
Lenard Hess
330ddc6bd2
porkbun: Moved subdomain processing out of IPv4/6 loop
...
The domain/subdomain processing is the same for IPv4 and IPv6, no need to repeat it
2024-02-03 16:18:55 +01:00
Lenard Hess
ae7f92772b
porkbun: Updated documentation and config example
2024-02-03 16:13:13 +01:00
Lenard Hess
5e7609ea2a
porkbun: Added 'root-domain' config option
...
Porkbun API requires separation of the root domain and subdomains.
Previously ddclient only supported one layer of subdomain or the root domain
by selecting between the two with the boolean 'on-root-domain'.
This change now allows to specify the root domain via the 'root-domain' parameter
ddclient will then split the host domain into root and subdomain
2024-02-03 13:57:09 +01:00
Lenard Hess
f1c77a06fb
Added missing exit to -version argument
2024-02-03 13:50:34 +01:00
Lenard Hess
bab66330ca
Added -version argument
2024-02-03 13:31:26 +01:00
Awalon
f5a1a906d1
Pull request #560 : Updated GoDaddy to new IPv4/IPv6 logic
...
Changes by Lenard Hess based on Awalon's pull request:
- Rebased to master
- Removed use=disabled addition from this commit
2024-01-28 16:40:18 +01:00
Lenard Hess
fc4f87b33e
Merge pull request #616 from retep/retep-patch-1-1
...
Update Mythic Beasts mythicdyn module in ddclient.in
2024-01-14 14:09:47 +01:00
Lenard Hess
95ac201b4b
Merge pull request #603 from indrajitr/noip-v4-v6
...
noip: Adjust script to support simultaneous IPv4 and IPv6 updates
2024-01-14 13:59:10 +01:00
Marco Emilio "sphakka" Poleggi
dc84a74c7e
fix(curl, doc): enable HTTP 30x redirections in curl requests. Fixes Issue #589
...
- curl: enable a configurable number of redirections (-redirects=<max>) to
follow when making HTTP(S) requests.
- docs: update Infomaniak example to prefer 'dyndns2' instead of obsolete
protocol.
Signed-off-by: Marco Emilio "sphakka" Poleggi <7766137+sphakka@users.noreply.github.com>
2024-01-13 15:53:56 +01:00
Lenard Hess
203fe47aa1
Merge pull request #604 from indrajitr/nsupdate-v4-v6
...
nsupdate: Adjust script to support simultaneous IPv4 and IPv6 updates
2024-01-13 15:04:47 +01:00
PeterF
6994b05ab6
Update ddclient.in
...
The mythicdyn module is modified so that it will update either or both V4 and/or V6 addresses depending upon which specific address parameters have been defined in the config file. The module examines the wantipv4 and wantipv6 parameters.
If required, both addresses will be updated in a single invocation.
2024-01-11 16:01:11 +00:00
Lenard Hess
ad854ab716
Fixed legacy providers not supporting usev6
2024-01-06 18:03:26 +01:00
Lenard Hess
3c522a7aa2
Config parsing: Allow trailing comments after a backslash in the config
...
The cloudflare documentation example had lines with a comment after a
backslash. This actually did not work in the parser until now.
The lines in question:
#protocol=cloudflare, \
#zone=domain.tld, \
#ttl=1, \
#login=your-login-email, \ # Only needed if you are using your global API key. If you are using an API token, set it to "token" (without double quotes).
#password=APIKey \ # This is either your global API key, or an API token. If you are using an API token, it must have the permissions "Zone - DNS - Edit" and "Zone - Zone - Read". The Zone resources must be "Include - All zones".
#domain.tld,my.domain.tld
2024-01-04 18:21:48 +01:00
Matthew Ogilvie
d195bcc4b8
If present, give URL protocol precedence over other SSL settings
2024-01-04 16:25:27 +01:00
Indrajit Raychaudhuri
bfe20e75f8
nsupdate: Adjust script to support simultaneous IPv4 and IPv6 updates
...
Adjust `nic_nsupdate_update` to use `wantipv4` and `wantipv6` and
support simultaneous IPv4 and IPv6 updates.
Also, set proper `status-ipv4` and `status-ipv6` values after successful
update.
2023-12-02 15:38:33 -06:00
Indrajit Raychaudhuri
8c8a193a70
noip: Adjust script to support simultaneous IPv4 and IPv6 updates
...
Adjust `nic_noip_update` to use `wantipv4` and `wantipv6` and support
simultaneous IPv4 and IPv6 updates.
Note: Unlike `nic_dyndns2_update`, `$returnedips` actually contains
valid IPv4 and IPv6 addresses, so we can use the response to update the
status.
2023-12-02 15:35:14 -06:00
Lenard Hess
e0611ab192
Merge pull request #558 from TinfoilSubmarine/fix/gandi
2023-11-25 13:55:09 +01:00
Stewart Whitman
2ceb4a9526
Resolves #585 - inheritance for noip service
2023-11-25 13:24:44 +01:00
Joel Beckmeyer
c382af56a5
don't print erroneous IP version
2023-11-25 13:07:08 +01:00
Joel Beckmeyer
846ab59e68
gandi: improve documentation
2023-11-24 15:56:37 -05:00
Joel Beckmeyer
5ec8bfe141
gandi: update logic
...
- allow updating IPv6/AAAA
- allow updating A and AAAA records simultaneously
- skip updating if record already has same IP
2023-11-24 15:56:37 -05:00
Lenard Hess
baa7e440ed
Updated version number for v3.11.3_0 development
2023-11-23 13:08:07 +01:00
Lenard Hess
4a1b06630b
Updated version number for v3.11.2 release
2023-11-23 13:06:21 +01:00
Lenard Hess
5d022b0520
Fixed caching for new providers with legacy 'use' parameter
...
When the configuration used the legacy 'use' parameter, we already
populated the new internal 'wantipv*' field alongside the legacy
'wantip' field. This allows both old and new providers to work.
The legacy providers set 'status'/'ip'.
The new providers then set 'status-ipv*'/'ipv*'.
The caching logic would look for 'status' and 'ip' when encountering a
'use' parameter in the config. We previously already changed ddclient to
set 'status' when 'status-ipv*' was set. Now we also set 'ip' from
'ipv*'. This ensures caching correctly works.
2023-11-23 13:00:06 +01:00
Indrajit Raychaudhuri
3a224b66a4
duckdns: Adjust script to support simultaneous IPv4 and IPv6 updates
2023-11-02 19:34:45 -05:00
Lenard Hess
23bfa31ea5
Updated version number for v3.11.2_0 development
2023-10-25 21:25:43 +02:00
Lenard Hess
66af014aad
Updated version number for v3.11.1 release
2023-10-25 21:22:47 +02:00
Lenard Hess
456fe79c2d
Removed @PACKAGE_VERSION@ placeholder from ddclient for now.
...
This reverts the changes from 36744e5
. This will be reimplemented once
the build process is better documented and properly implemented
by any downstream not yet using it (as of now linuxserver.io).
See https://github.com/linuxserver/docker-ddclient/issues/77
2023-10-25 21:19:18 +02:00
Joel Beckmeyer
2d7610b7de
porkbun: rework logic to allow for simultaneous update of IPv4 and IPv6
2023-10-21 17:52:35 -04:00
jortkoopmans
9913e0ec29
DNSExit update for ipv6.
...
- Support wantipv4 and wantipv6 configs automatically
- Remove manual record type setting
- Add support for hosts on your zone (subdomain)
- Update config examples
- Code/logic improvements
2023-10-21 20:36:48 +01:00
Reuben Thomas
ef496d108f
Revert URLs to canonical repo
2023-07-19 22:27:44 +03:00
Lenard Hess
1715bd3a17
Fixed hosts trying to update if IP acquisition failed
2023-07-19 17:11:45 +03:00
Lenard Hess
7869acb266
easydns, porkbun: Set status-ipv4 and status-ipv6 instead of status
...
This fixes caching issues when using the 'usev4' or 'usev6' parameters.
Without this, the "min-interval" and "warned-min-interval" limits will
not work.
For the legacy 'use' parameter, the wrapping code takes care of
translating 'status-ipv*' to 'status'.
2023-07-19 17:11:45 +03:00
Lenard Hess
17fd6ec083
Added preliminary explanation for provider functions
2023-07-19 17:11:45 +03:00
Lenard Hess
6c1f9632fa
Fixed caching behaviour for new providers with legacy 'use' logic
2023-07-19 17:11:45 +03:00
Reuben Thomas
541e7f350c
Update error message to reflect that curl is always used
2023-07-19 17:11:45 +03:00
Lenard Hess
379b1832de
ddclient.in: Update Maintainers
2023-07-19 17:11:45 +03:00
Reuben Thomas
b8bed7112f
Remove defunct dnsexit protocol
2023-07-19 17:11:45 +03:00
Reuben Thomas
a9c1e545fb
Require curl
...
Use command-line curl, and remove alternative Perl and Curl-via-Perl
implementations of network code.
2023-07-19 17:11:45 +03:00
Reuben Thomas
211404b5d1
ddclient.in: update maintainer details
2023-07-19 17:11:45 +03:00
Lenard Hess
52b5eea6f4
Implemented _env suffix for configuration
...
With this change, any config value may be set through an environment
variable by appending '_env' to the keyword (i.e. 'password_env' instead
of 'password') and setting the value to the name of the environment
variable that contains the actual configuration value.
This allows keeping sensitive info (i.e. login and password)
out of the configuration file.
Example configuration snippet:
protocol=namecheap, \
server=dynamicdns.park-your-domain.com, \
login_env=DD_LOGIN, \
password_env=DD_PASSWORD \
@
With this configuration snippet, ddclient will use the contents of
DD_LOGIN as the login value and the contents of DD_PASSWORD as the
password value.
These can in turn be supplied via the command line, .env files or any
other mechanism to safeguard sensitive information.
2023-07-19 17:11:45 +03:00
Lenard Hess
2af841acdb
Changed password config regex
...
The password regex searches for password assignments, extracts the
password and replaces it with a dummy value to prevent it being logged.
This change adjusts the password regex to no longer accept trailing
characters behind the password string
2023-07-19 17:11:45 +03:00
jortkoopmans
ec4d83bc3f
Add support for new DNSExit API (adding protocol dnsexit2).
2023-07-19 17:11:45 +03:00
Sandro
2536a5e37a
Merge pull request #480 from michal-josef-spacek/fix_inet6
...
Rewrite deprecated use of IO::Socket::INET6 to new solution with IO::Socket::IP
2023-06-28 22:54:26 +02:00
Ziemowit Łąski
d3d7bda8ca
Extend ZoneEdit polling interval to 10min
2023-06-03 00:42:28 -07:00
Ziemowit Łąski
218e1a9974
Squelch 'postscript' warning
2023-06-03 00:42:28 -07:00
Ziemowit Łąski
bbed067864
Fix script failures on ZoneEdit
2023-06-03 00:35:51 -07:00
Timothée Andres
82af20f8d4
Add infomaniak protocol ( #537 )
2023-06-01 13:47:53 +02:00
Franco Fichtner
1c91a5aa84
dyndns2: fix multiline parsing and multiple host handling ( #542 )
2023-06-01 10:46:04 +02:00
rolltack
aedf6f866b
Fix bug #501 : (Keysystems) removed wrong parameter
...
Looks like there is a bug in line 542 in ddclient.in. The syntax of how the server URL is being set is different to all the other dynamic DNS services. To be precise there is one additional parameter. Instead of handing over the URL, the server variable receives the second "1" in the code below.
2023-04-15 23:53:06 +01:00
{16/7}
e92c54f6f9
Allow postscript to take args
...
$globals{postscript} can now contain a full command string including
arguments. In order to facilitate this, the file executability check
(-x) has been modified such that the first substring up to the first
space (if it exists) is what is checked, rather than the whole string.
2023-04-04 14:58:39 -07:00
Thomas Hebb
c436a34ede
Add support for Digital Ocean
2023-03-14 11:49:10 -04:00
Sandro
b49bd9eda9
Merge pull request #519 from tchebb/fix-whitespace
...
Fix a few whitespace issues and a typo
2023-03-14 14:35:23 +01:00
Thomas Hebb
07fbbeb5bb
Fix a few whitespace issues and a typo
2023-02-25 23:28:45 -05:00
Thomas du Boÿs
611b41e7a6
Merge configs for the same hosts instead of using the last one
2023-02-21 21:00:23 +01:00
Jontron123
c5a956e386
Add support for Enom ( #508 )
...
* Add support for Enom
* Add support for Enom
* Add support for Enom
2023-02-08 13:59:52 +01:00
Naoya Niwa
65a1bcc7d9
Add support for Porkbun ( #490 )
...
* Add support for Porkbun
* Add IPv6 support for porkbun
2023-02-08 13:56:08 +01:00
Sandro
9fccfde9e5
Merge pull request #505 from tduboys/usev4_local_config
2023-01-31 20:43:44 +01:00
Sandro
76e441c542
Merge pull request #504 from tduboys/usev4_disable_use
2023-01-29 17:43:35 +01:00
Sandro
8bbafa5988
Merge pull request #506 from drinn/devel
2023-01-29 17:41:53 +01:00
Thomas du Boÿs
5596ee83d1
set use to disabled if usev4 or usev6 is set
2023-01-28 18:49:59 +01:00
drinn
dbc40557d2
removed empty space
2023-01-28 09:59:58 -06:00
drinn
d35d62f3e7
updated nic_duckdns_update to account for extra lines in duckdns reply
2023-01-28 09:48:51 -06:00
Thomas du Boÿs
11a5bd5e7e
define usev4, usev6 and dependancies as per-host config
2023-01-28 11:34:41 +01:00
Thomas du Boÿs
cca4291360
fix ipv4 address on message log when address already set
2023-01-28 10:46:43 +01:00
Thomas du Boÿs
fa6c95f511
Update dyndns2 client to use new IPv4/IPv6 logic
...
Signed-off-by: Thomas du Boÿs <thomas@duboys.info>
2023-01-27 18:24:39 +01:00
Reuben Thomas
e910204b3d
Add support for Mythic Beasts Dynamic DNS ( #312 )
...
Co-authored-by: Sandro <sandro.jaeckel@gmail.com>
2023-01-14 02:24:03 +01:00
Luca Schöneberg
8d3a383587
Revert "fix hetzner zone problem", add zone_id to filter (Hetzner) ( #491 )
2023-01-13 22:30:06 +01:00
Sandro
5fcf4b37f2
Merge pull request #494 from mjbrowns/master
2023-01-13 18:51:27 +01:00
Sandro
63a78a7f46
Merge pull request #488 from ThinkChaos/fix/ovh-multiline-response
2023-01-13 18:51:16 +01:00
Sandro
086093839d
Merge pull request #487 from pekkanikander/master
2023-01-13 18:51:05 +01:00
Mitch Brown
ff48a0ccb9
add IPV6 support to duckdns protocol
2023-01-04 22:27:21 -05:00
bernhardfrenking
3149171aa7
Add DDNS API domeneshop.no ( #478 )
...
Co-authored-by: Sandro <sandro.jaeckel@gmail.com>
2022-12-30 03:23:30 +01:00
ThinkChaos
fcd3ef8b5a
fix: nic_ovh_update not ignoring extra data
...
Example bodies I've seen:
```
0013
good 127.0.0.1
0
```
```
0013
nochg 127.0.0.1
0
```
```
007
nohost
0
```
Seems like the trailing zero was not there before as the code relied
on `pop`. Instead, we find the first line that matches `good`/`nochg`.
2022-12-28 17:32:14 -05:00
Pekka Nikander
10041d225c
Add IPv6 support for EasyDNS
2022-12-28 20:29:01 +02:00
Michal Josef Špaček
c4ff6c12bd
Remove setting of MultiHomed, which is default in IO::Socket::IP
...
From doc in IO::Socket::IP in "IO::Socket::INET" INCOMPATIBILITES
section:
-----
The behaviour enabled by "MultiHomed" is in fact implemented by
"IO::Socket::IP" as it is required to correctly support searching for a
useable address from the results of the getaddrinfo(3) call. The
constructor will ignore the value of this argument, except if it is
defined but false. An exception is thrown in this case, because that
would request it disable the getaddrinfo(3) search behaviour in the
first place.
-----
2022-12-08 14:04:33 +01:00
Michal Josef Špaček
c747f2737a
Rewrite deprecated use of IO::Socket::INET6 to new solution
...
Module IO::Socket::INET6 is deprecated.
There is common IO::Socket::IP module, which is working with ipv4 and
ipv6 in same way. There is backward compatibility with IO::Socket::INET6
2022-12-08 13:58:21 +01:00
Luca Schöneberg
89e30d0aa8
fix hetzner zone problem
2022-11-21 16:17:08 +01:00
gertfriend
f01110aedb
Add regfish ( #471 )
2022-11-18 08:43:47 +01:00
Sandro Jäckel
3dffe5372a
Format
2022-10-31 00:07:05 +01:00
Sandro Jäckel
e8cc636474
Use https in more places
2022-10-31 00:06:56 +01:00
Sandro Jäckel
36744e5b20
set version number via autoconf
2022-10-25 15:46:33 +02:00
Sandro Jäckel
3e2cb0a0dc
Cut 3.10.0 release
2022-10-20 20:06:35 +02:00
satrapes
c9754a125c
Add support for njal.la ( #459 )
...
Co-authored-by: Dimitris Paraskevopoulos <dpparaskevopoulos@gmail.com>
2022-09-30 14:49:57 +02:00
Thomas Hebb
8a6b9d0862
cloudflare: Remove unused $hostname variable
...
This is no longer used since commit 6c951a0395
("Add files via
upload"), which updated to the Cloudflare API v4. The new API does not
require any preprocessing of the domain name.
2022-09-25 10:22:38 -07:00
pesenise
36b8db950f
Add support for domaindiscount24.com ( #436 )
...
* Update ddclient.in
add Row 526 - 529
add Row 869 - 877
add Row 6992 - 7066
* Update ChangeLog.md
* Update ChangeLog.md
* Update ddclient.in
Co-authored-by: Sandro <sandro.jaeckel@gmail.com>
* Update ChangeLog.md
Co-authored-by: Sandro <sandro.jaeckel@gmail.com>
* Update ChangeLog.md
Co-authored-by: Sandro <sandro.jaeckel@gmail.com>
* Update ddclient.in
Co-authored-by: Sandro <sandro.jaeckel@gmail.com>
* Update ddclient.in
Co-authored-by: Sandro <sandro.jaeckel@gmail.com>
* Update ddclient.in
Co-authored-by: Sandro <sandro.jaeckel@gmail.com>
* Update ddclient.in
Co-authored-by: Sandro <sandro.jaeckel@gmail.com>
* Update ddclient.in
Co-authored-by: Sandro <sandro.jaeckel@gmail.com>
Co-authored-by: Sandro <sandro.jaeckel@gmail.com>
2022-07-30 17:07:10 +02:00
Sandro Jäckel
4201bf3b03
Fix version parsing for real, cut 3.10.0_2
2022-05-16 02:07:49 +02:00
Sandro Jäckel
ca4ce91497
Use numeric only version to fix tests
2022-05-15 23:08:03 +02:00
Sandro Jäckel
6be775dc10
Bump version to 3.10.0rc1
2022-05-15 22:44:51 +02:00
Richard Hansen
251b167d41
New -list-devices
option
...
This will make it possible for the Debian package to fetch the list of
supported firewall/router devices and prompt the user to choose one
upon installation.
2022-05-15 22:28:38 +02:00
Richard Hansen
0ea681645b
New -list-protocols
option
...
This will make it possible for the Debian package to fetch the list of
supported protocols and prompt the user to choose one upon
installation.
2022-05-15 22:28:33 +02:00
Richard Hansen
f5932d8be3
New -list-web-services
option
...
This will make it possible for the Debian package to fetch the list of
supported built-in web-based IP discovery services and prompt the user
to choose one upon installation.
2022-05-15 22:28:26 +02:00
Sandro
833828334e
Merge pull request #413 from oddlama/develop
...
Improve warnings about ddclient.conf permissions. (fixes #348 )
2022-05-15 22:10:17 +02:00
oddlama
327d999ca2
Improve warnings about ddclient.conf permissions. ( fixes #348 )
...
The new code will always warn if ddclient.conf is accessible by others,
warn if it is owned by ddclient and accessible by the group,
and otherwise warn if it is writable but not owned by ddclient.
This primarily allows two permission modes for ddclient.conf:
First, the classic `ddclient:ddclient mode 0600` as well as the
more restrictive `root:ddclient mode 0640` which previously
warned unnecessarily.
2022-05-12 20:34:06 +02:00
Joerg Werner
4a01678030
Add support for hetzner dns console
2022-04-23 17:46:10 +02:00
Awalon
beb7147a39
Added support for GoDaddy DNS zone updates. ( #398 )
2022-04-17 02:35:07 +02:00
Sandro
215d4679e4
Merge pull request #374 from so-lar-is/add-support-for-1984-is
2022-01-24 00:02:33 +01:00
Sandro Jäckel
4f5f0e0efc
Update all http endpoints which support https to that
2022-01-23 23:59:16 +01:00
me@so.lar.is
30778c5451
Add support for 1984.is
2022-01-19 01:48:54 +01:00
Sandro
17160fb016
Merge pull request #343 from zraexy/patch-1
2022-01-13 17:11:34 +01:00
Austin H
3e952e6892
Cloudflare Fix
...
Cloudflare was returning values not being matched properly by the regex expression.
Numbers that were not Headers.
This fix or patch should resolve that issue, by only collecting one match to JSON relevant data.
2021-08-17 11:44:37 -04:00
David Mell
9631575ab4
Update easyDNS endpoint URL
...
Fixes #340
2021-06-29 12:49:12 -08:00
David Mell
ed128a0b99
Fix CloudFlare zone ID endpoint URL
...
Fixes #339
2021-06-29 12:44:59 -08:00
Reuben Thomas
f0270e4940
Add dnsexit support (based on #52 ) ( #311 )
...
* Patch in dnsexit support
Based on patch from here https://sourceforge.net/p/ddclient/discussion/399428/thread/04e23ee6/ hacked back in.
* dnsexit: check for valid responses that mean 'failure' (from @truesalo)
Co-authored-by: sreknob <sreknob@hotmail.com>
2021-05-12 14:45:28 -05:00
David Kerr
b84f2334e4
Redact login and password when printing out internal hash values ( #274 )
...
* Redact login and password when printing out internal hash values
* Remove from debug message in geturl() parameters sent as part of a URL
* Update comment with password redaction
Making it clearer that all parameters are redacted, not just password related ones.
Co-authored-by: DaveSophoServices <dave@sophoservices.com>
2021-05-11 20:26:02 -05:00
David Kerr
24ba945949
IPv6 framework + Cloudflare + FreeDNS ( #291 )
...
* Add basic framework to support IPv6
* Update cloudflare to use new IPv6 framework
* Update FreeDNS to use new IPv6 framework
2021-05-11 20:16:19 -05:00
Mike Chester
9fb2aee4d0
Fix geturl function call for Gandi ( #314 )
...
* Fix geturl function call
The function should be called without the brackets
* Update ci.yml
Removed Cento6 & 8
Co-authored-by: DaveSophoServices <dave@sophoservices.com>
2021-05-11 10:48:44 -05:00
DaveSophoServices
29cfc55581
Merge pull request #324 from krerkkiat/doc-cloudflare-token
...
modify Cloudflare documentation
2021-05-11 10:01:36 -05:00
Sandro Jäckel
9a44eeb826
Use HTTP/1.0, fix #332
2021-05-11 11:47:10 +02:00
Krerkkiat Chusap
db8b6baca9
modify Cloudflare documentation
...
It seems that ddclient check if the login field is equal to "token" to
use the correct header for the API token.
2021-04-05 12:36:45 -04:00
David Kerr
4c76274ba6
Add missing comment block
2020-09-21 15:16:48 -04:00
David Kerr
1b2f45cc59
Add get_default_interface
2020-09-21 15:16:48 -04:00
David Kerr
213cf6ad09
Add get_ip_from_interface function
2020-09-21 15:16:11 -04:00
David Kerr
d1d7548e09
So the bug was actually in the escape_curl_param function, not that the data should not be escaped
2020-08-22 21:32:27 -04:00
David Kerr
6ae64e6cfb
bug fix... segfault when using WWW::Curl::Easy->pushopt() replace with setopt()
2020-08-21 17:28:57 -04:00
David Kerr
4c79c6b607
must not escape the 'data' field sent to servers.
2020-08-21 17:01:13 -04:00
David Kerr
3a73e5e6b4
header_ok() function must accept HTTP versions other than just '1'
2020-08-21 16:59:07 -04:00
David Kerr
cde60432dd
Remove from debug message in geturl() parameters sent as part of a URL
2020-08-12 12:53:59 -04:00
David Kerr
8106b3025f
Add support to use WWW::Curl::Easy if it exists
2020-08-07 11:17:44 -04:00
David Kerr
d24b75960d
Add support for curl and option to not validate SSL certificates for getip from web or firewall
...
Check exists not just length
2020-08-07 11:17:44 -04:00
Richard Hansen
2de6a02f14
New %builtinweb
entries for nsupdate.info
2020-08-04 13:58:51 -04:00
Richard Hansen
c9b6c8b3bf
New %builtinweb
entries for whatismyv6.com
2020-08-04 13:57:07 -04:00
Richard Hansen
ae89dbdfa3
New %builtinweb
entry for Hurricane Electric
2020-08-04 13:54:49 -04:00
Richard Hansen
fb42a50318
New %builtinweb
entry for ZoneEdit
2020-08-04 13:51:26 -04:00
Richard Hansen
460cf2f465
New %builtinweb
entry for FreeDNS
2020-08-04 13:51:26 -04:00
Richard Hansen
1a8bfafb3d
New %builtinweb
entry for Google Domains
2020-08-04 13:51:26 -04:00
Richard Hansen
ad81aa43d2
New %builtinweb
entries for noip.com
2020-08-04 13:51:26 -04:00
Richard Hansen
295ba387aa
Rename ipifyipv{4,6}
to ipify-ipv{4,6}
...
The added dash makes it easier to read.
2020-08-04 13:51:26 -04:00
Richard Hansen
f3a92fbe63
Delete trailing commas
2020-08-04 13:46:21 -04:00
Richard Hansen
deab8970a1
Whitespace fixes
2020-08-04 13:46:21 -04:00
Richard Hansen
601460c0b3
Turn if-skip
into a no-op and mark it as deprecated
...
There is no way the user can meaningfully set `if-skip` because the
user doesn't have control over how ddclient reads an interface's
settings (ddclient could theoretically run `ip addr show`, run
`ifconfig`, read a file in `/dev`, make a system call, use a Perl
library, etc.).
2020-08-03 12:55:38 -04:00
Richard Hansen
686bf5a8c8
Improve -help
text
2020-08-02 23:38:46 -04:00
Richard Hansen
4bf9d59722
Whitespace fixes
2020-08-02 21:52:11 -04:00
David Kerr
1ad4d6737a
Add is_ipv6_global and extract_ipv6_global functions
2020-08-01 19:11:28 -04:00
Richard Hansen
25a636879f
Change the default server for dslreports1
to www.dslreports.com
...
Before, it defaulted to `members.dyndns.org` which didn't make much
sense.
2020-08-01 16:22:38 -04:00
Richard Hansen
f8185182e9
Add new device built-ins (fw=<device>
)
...
Thanks goes to Geoff Simmons, who provided the definitions in
https://bugs.debian.org/589980 .
2020-07-27 12:23:35 -04:00
Sandro
2e1bb5165a
Merge pull request #254 from rhansen/geturl
...
Eliminate unnecessary hashref
2020-07-22 10:56:17 +02:00
Richard Hansen
ae7919fcc4
Mark gandi
protocol's ttl
var as optional
...
Gandi doesn't require a TTL in the update request. The protocol
implementation already does the right thing if the `ttl` var is
`undef`.
2020-07-18 15:05:53 -04:00
Jimmy Thrasibule
7f719dc305
Add support for Gandi LiveDNS
...
Allow update of a DNS record hosted by the Gandi LiveDNS service.
Signed-off-by: Jimmy Thrasibule <jimmy.thrasibule@orange.com>
Reviewed-by: Richard Hansen <rhansen@rhansen.org>
2020-07-18 15:01:52 -04:00
Jimmy Thrasibule
b6a7c44d39
Ensure header_ok accept any 2xx return code
...
Adapt `header_ok` to return success for any HTTP 2xx code.
Signed-off-by: Jimmy Thrasibule <jimmy.thrasibule@orange.com>
Reviewed-by: Richard Hansen <rhansen@rhansen.org>
2020-07-18 15:01:52 -04:00
Richard Hansen
286fe02478
Fix -daemon
command-line argument parsing
...
It turns out the logic removed in
d10601de11
had a purpose after all.
2020-07-14 23:17:19 -04:00
Richard Hansen
7d58f2d749
Import IO::Socket::INET
...
We've always required IO::Socket::INET but never explicitly included
it. For some reason that hasn't been a problem until now.
Fixes #255
2020-07-12 18:58:31 -04:00
Richard Hansen
5f1dacc3bd
Eliminate unnecessary hashref
...
Pass the key-value pairs directly instead of via a hashref.
2020-07-11 21:39:48 -04:00
David Kerr
29202f5bc1
New is_ipv6 and extract_ipv6 algorithms
...
Also add unit tests.
2020-07-11 11:04:47 -04:00
David Kerr
92c1294af9
Accept leading zeros in IPv4 addresses
...
Also add unit tests.
2020-07-11 11:04:33 -04:00
Richard Hansen
dd8e376784
Add geturl
SSL tests
...
These don't test validation, only that IO::Socket::SSL is used.
2020-07-08 13:40:31 -04:00
Richard Hansen
6ff0362450
Get the AF_INET and friends constants from Socket
...
Apparently it is enough to simply import Socket or IO::Socket to use
AF_INET and friends, but all examples in official documentation show
them in the import list. Because I do not fully understand the
intricacies of Perl import logic, I do the same thing here, fully
aware that I might have joined a cargo cult. Regardless of its
correctness or necessity, listing the constants in the import list has
the advantage of making it clear why the `use` statement exists.
I chose to import the constants from Socket instead of IO::Socket
because that module's documentation explicitly documents the
constants.
2020-07-07 20:55:32 -04:00
Sandro
ee4191f865
Merge pull request #225 from reetp/master
...
Add DinaHosting
2020-07-07 10:15:32 +02:00
Sandro
f0c583890a
Merge pull request #246 from rhansen/unwrap
...
Unwrap unnecessarily wrapped lines
2020-07-07 10:11:37 +02:00
Sandro
b0b04aa278
Merge pull request #247 from rhansen/parse_assignments
...
Simplify `parse_assignments`
2020-07-07 10:11:21 +02:00
Sandro
eac5d25e47
Merge pull request #245 from rhansen/continue-on-failure
...
Don't skip updates to remaining hosts if one host fails
2020-07-07 10:10:42 +02:00
Sandro
9d7af91bf4
Merge pull request #242 from rhansen/mkdir-var-cache
2020-07-07 10:09:47 +02:00
Sandro
666fc293fb
Merge pull request #243 from rhansen/delete-fw-debug
...
Delete out-of-place debug messages
2020-07-07 10:08:49 +02:00
Richard Hansen
71acd749a1
Simplify parse_assignments
2020-07-07 00:10:33 -04:00
Richard Hansen
c3de24bb49
Unwrap unnecessarily wrapped lines
2020-07-07 00:09:44 -04:00
Richard Hansen
bdf8835904
Don't skip updates to remaining hosts if one host fails
2020-07-07 00:08:56 -04:00
Richard Hansen
ee8e1e8844
Don't abort if unable to write the cache file
2020-07-07 00:04:33 -04:00
Richard Hansen
6ae5fe62d7
Create /var/cache/ddclient
if it doesn't exist
...
Fixes #76
2020-07-07 00:04:33 -04:00
Richard Hansen
df3c777e11
Delete out-of-place debug messages
...
Neither `opt('fw')` nor `$globals{'fw'}` are used in `geturl` so
delete the debug messages showing their values.
2020-07-07 00:03:56 -04:00
John Crisp
e2c3f9dd04
Add support for dinahosting
...
Fixes #203
2020-07-07 00:00:45 -04:00