Commit graph

103 commits

Author SHA1 Message Date
Richard Hansen
2239b57101 dyndns2: Fix handling of multi-host response 2024-08-03 03:25:11 -04:00
Richard Hansen
e036fd0cf6 logging: Use Logger contexts to improve log message readability
This also makes it easier to write useful log messages.
2024-07-31 01:01:00 -04:00
Richard Hansen
d380e17aba infomaniak: Fix response status processing
Previously, `nochg` responses were treated as failures and the logged
message for all responses was incorrect (either `undef` or "Unknown
reply from Infomaniak").

Background: Hash values are always scalars, so lists of values can
only be stored in hashes in arrayref form.

The following is legal but does not do what one might expect:

    my %h = (
        a => (1, 2),
        b => (3, 4),
    );

The `=>` operator is just a variant of the comma operator, and lists
in list context are flattened, so the above is equivalent to:

    my %h = ('a', 1, 2, 'b', 3, 4);

which is equivalent to:

    my %h = (
        a => 1,
        2 => 'b',
        3 => 4,
    );

which is obviously not what was intended.
2024-07-29 04:07:15 -04:00
Richard Hansen
0b30df4b69 gandi: Fix processing of PUT error responses
Before, the returned JSON wasn't even parsed -- the error handling
code was reusing the parsed response from the earlier `GET`.  Also, it
was reading object properties that were not documented in the Gandi
API documentation.
2024-07-28 19:04:30 -04:00
Richard Hansen
7bdb554e36 duckdns: Update multiple hosts simultaneously 2024-07-27 04:40:34 -04:00
Richard Hansen
f807ba58ac yandex: Don't treat an error as success 2024-07-27 04:40:34 -04:00
Richard Hansen
ef8bf634fe domeneshop: Add IPv6 support 2024-07-27 04:40:34 -04:00
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
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
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
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
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
94c304601e easydns: Increase default min-interval to 10m 2024-07-20 03:35:56 -04:00
Richard Hansen
c57f4b0d56 ChangeLog.md: Fix PR URL 2024-07-20 03:35:45 -04:00
Richard Hansen
2792689c35 ChangeLog.md: Fix PR URLs 2024-07-20 03:06:52 -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
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
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
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
Richard Hansen
efa487bfb3 Note that --web=googledomains is deprecated in changelog 2024-07-13 17:31:52 -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
8e24c92b1e infomaniak: Fix response parsing 2024-06-25 22:53:23 -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
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
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
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
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
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
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
0d85dfd044 Update changelog 2024-05-20 01:21:21 -04: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
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