Commit graph

672 commits

Author SHA1 Message Date
steven
ae01ba26c1 Do not use quotemeta on cmdv4 and cmdv6 arguments
`quotemeta` prevents executing commands with arguments.  With this
change, it is now possible to get an IP address with:

    usev4=cmdv4
    cmdv4="dig +short myip.opendns.com @resolver1.opendns.com"
2025-01-09 19:29:00 -05:00
Indrajit Raychaudhuri
8dcea0d779 Make 'cmd-skip' warning message consistent for IPv4 and IPv6 2025-01-08 19:09:29 -05:00
Bodo Eggert
8883641d97 fix ddclient --verbose calling 'p' instead of using $p{foo} 2025-01-08 19:08:19 -05:00
Richard Hansen
8decfc4b77 Post-release version bump
We'll probably just release `v4.0.0` without an `-rc.3`, but I'm
setting it to `-rc.3` just in case (decreasing the version number can
break automatically built daily Git snapshots).
2025-01-07 14:37:32 -05:00
Richard Hansen
7248341ad6 Change default location of ddclient.conf to ${sysconfdir}/ddclient 2025-01-07 04:33:54 -05:00
Richard Hansen
d2b1a4dfa6 fixup! add mail-from option
move variable declaration closer to usage
2025-01-06 20:20:26 -06:00
Richard Hansen
d1f81dc9e4 fixup! add mail-from option
factor out duplicate code
2025-01-06 20:20:26 -06:00
Richard Hansen
2de77f17f7 fixup! add mail-from option
default to undef
2025-01-06 20:20:26 -06:00
Richard Hansen
a2e818d6d3 fixup! add mail-from option
refine usage wording
2025-01-06 20:20:26 -06:00
Joel Beckmeyer
8030a46ca3 add mail-from option 2025-01-06 20:20:26 -06:00
Richard Hansen
59f6c2959a Prepare for v4.0.0-rc.2 2025-01-06 21:03:47 -05:00
Indrajit Raychaudhuri
3da4259a41 Fix small typo in 'nochg' message grammar 2024-12-26 18:26:26 -06:00
Richard Hansen
87a919a715 Release v4.0.0-rc.1 2024-12-25 02:22:24 -05:00
Richard Hansen
54b6d0cb0d Use semver 2.0.0 as the human-readable version string format
This avoids the need to escape tilde in tag names.
2024-12-23 21:40:07 -05:00
Joel Beckmeyer
eb48bb55ae make porkbun endpoint configurable 2024-12-19 03:50:03 -05:00
Cristian Aldea
d9365359bd update porkbun api endpoint domain 2024-12-19 03:50:03 -05:00
Richard Hansen
ad3cd11446 Improve deduplication of redundant use* queries 2024-09-06 18:53:14 -04:00
Richard Hansen
c71f6f6eae Prefetch the data relevant to the use* strategies
This is a preparatory step to improving the deduplication of queries.
It also makes possible future improvements to config validation and
help usage output.
2024-09-06 18:53:14 -04:00
Richard Hansen
f3678ce119 Don't get host-specific values of global options 2024-09-06 18:53:14 -04:00
Richard Hansen
5d545aae5c Simplify arg assignment for readability 2024-09-06 18:53:14 -04:00
Richard Hansen
5ed43a2e4c tests: Factor out duplicate HTTP server code 2024-09-06 18:44:19 -04:00
Richard Hansen
695c3c4be8 Separate recap variables from configuration variables 2024-09-02 03:55:09 -04:00
Richard Hansen
76afbb6673 _read_config: Add infrastructure for host-dependent validation
This is a preparatory step for separating recap variables from config
variables.
2024-09-02 03:55:09 -04:00
Richard Hansen
0f1ea65fd7 _read_config: Minor refactor for readability and maintainability 2024-09-02 03:55:09 -04:00
Richard Hansen
ac67c04f13 _read_config: Check host definedness, not existence 2024-09-02 03:55:09 -04:00
Richard Hansen
a18efcbe32 Force an update if a host's protocol changes 2024-09-02 03:55:09 -04:00
Richard Hansen
1e3bebc60d Object-oriented protocol definitions
This improves readability and will make it easier to refactor to fix
issues or add features.
2024-09-02 03:55:09 -04:00
Richard Hansen
2da08cceb9 Convert static list of config change detection vars to per-protocol 2024-09-02 03:55:09 -04:00
Richard Hansen
273af1c821 nic_updateable: Ignore non-recap vars when detecting config change 2024-09-02 03:55:09 -04:00
Richard Hansen
803621a9ee Switch "magic constant" list of change detection vars to a var 2024-09-02 03:55:09 -04:00
Richard Hansen
268369a05e Write update status to %recap, not %config
Status is not configuration so it doesn't belong in `%config`.

`wantip`, `wantipv4`, and `wantipv6` are still passed along in
`%config` because `group_hosts_by` needs access to them like other
settings.
2024-09-02 03:55:09 -04:00
Richard Hansen
0348ded46b write_recap: Move update-specific %recap sync to update_nics
This is a step toward separating `%recap` from `%config`.
2024-09-01 20:10:42 -04:00
Richard Hansen
e478117d4e write_recap: Move warned-min-* recap sync to where they are set
This is a step toward separating `%recap` from `%config`.
2024-09-01 20:10:26 -04:00
Richard Hansen
1a748e7a86 write_recap: Only update variables that could have changed
This is a step toward improving readability of `%config`/`%recap`
synchronization.
2024-09-01 20:10:09 -04:00
Richard Hansen
7660ca52bf write_recap: Remove unnecessary recap existence check 2024-09-01 20:09:52 -04:00
Richard Hansen
2927f205ea update_nics: Move non-config recap var reset to update call
for readability
2024-09-01 20:09:35 -04:00
Richard Hansen
974bba4d93 update_nics: Don't set wantip* if they're all undef
This helps keep `%config` "clean", which helps with testing and
debugging.
2024-09-01 20:09:18 -04:00
Richard Hansen
75552f80f7 nic_updateable: Don't mutate status-ipv* vars if not updating
This simplifies the logic a bit and improves readability.
2024-09-01 20:09:01 -04:00
Richard Hansen
25fac765a0 nic_updateable: Move clearing of update to write_recap
for readability (the logic that uses the `update` boolean should be
responsible for clearing it).
2024-09-01 20:08:44 -04:00
Richard Hansen
5256a1d02c update_nics: Move legacy protocol support to an adapter function 2024-09-01 20:08:27 -04:00
Richard Hansen
a178d40633 update_nics: Combine post-update host loops 2024-09-01 20:08:10 -04:00
Richard Hansen
bf83ba032c update_nics: Move legacy wantip assignment to update call
This consolidates the legacy support with other legacy support logic,
which will make it easier to refactor in a future commit.
2024-09-01 20:07:53 -04:00
Richard Hansen
c5df774b7e update_nics: Change || next to or next (for readability) 2024-09-01 20:07:36 -04:00
Richard Hansen
20439bc130 update_nics: Refine comment 2024-09-01 20:07:19 -04:00
Richard Hansen
cb66870019 update_nics: Refine debug message for consistency/readability 2024-09-01 20:07:02 -04:00
Richard Hansen
78be40fe2c update_nics: Remove unnecessary assertions
These just add cold code paths and impair readability and
maintainability.
2024-09-01 20:06:45 -04:00
Richard Hansen
499318fbe0 update_nics: Always overwrite status-ipv* with value from status 2024-09-01 20:06:28 -04:00
Richard Hansen
94ce6367ec write_recap: Also clear out non-recap and stale values
Before, if a non-`undef` value was in `%recap` and the corresponding
value in `%config` became `undef`, the `%recap` value would remain
untouched.  Now it is deleted to match `%config`.

Also, any `%recap` values without a corresponding recap variable
declaration are deleted.
2024-09-01 20:06:11 -04:00
Richard Hansen
c64e432bf1 write_recap: Update all status recap vars when writing recap 2024-09-01 20:05:54 -04:00
Richard Hansen
f2c9ef6641 read_recap: Scrub recap values without var declarations 2024-09-01 20:05:40 -04:00