From 9057c453ad1e373d9ab92a855ec701738eb2a517 Mon Sep 17 00:00:00 2001 From: patrick Date: Wed, 24 Jun 2026 21:42:25 -0400 Subject: [PATCH] fix: wire up exec, fw auth vars, and prune dead detection keys MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - Template now emits `exec=` so ddclient_exec actually toggles dry-run (was documented and defaulted but never written to the config). - Rename fw_login/fw_password defaults to ddclient_fw_login/ddclient_fw_password to match what the template reads; previous names were silently dead. - Drop unused address/interface/command/skip keys from the ddclient_ipv{4,6}_detection defaults — the template only reads method/source/skip_pattern. Fix the `# Method:` comments to list the v4/v6-suffixed names actually in use. --- defaults/main.yaml | 23 +++++++++-------------- templates/ddclient.conf.j2 | 1 + 2 files changed, 10 insertions(+), 14 deletions(-) diff --git a/defaults/main.yaml b/defaults/main.yaml index 77cdbfe..741ac21 100755 --- a/defaults/main.yaml +++ b/defaults/main.yaml @@ -28,21 +28,16 @@ ddclient_postscript: "" # Script to run after update # IP Detection configuration ddclient_ipv4_detection: - method: webv4 # Method: ip, if, web, fw, cmd - source: dyndns # Source for web/fw methods - address: "" # IP address for method=ip - interface: "" # Network interface (for method=if) - command: "" # Command to run (for method=cmd) - skip: "" # Pattern to skip in output + method: webv4 # Method: ipv4, ifv4, webv4, fwv4, cmdv4 + source: dyndns # URL / interface / command / IP, depending on method ddclient_ipv6_detection: - method: webv6 # Method: ip, if, web, fw, cmd - source: dyndns # Source for web/fw methods - address: "" # IP address for method=ip - interface: "" # Network interface (for method=if) - command: "" # Command to run (for method=cmd) - skip: "" # Pattern to skip in output + method: webv6 # Method: ipv6, ifv6, webv6, fwv6, cmdv6 + source: dyndns # URL / interface / command / IP, depending on method -fw_login: "" # Firewall login (for method=fw) -fw_password: "" # Firewall password (for method=fw) +ddclient_fw_login: "" # Firewall login (for method=fw) +ddclient_fw_password: "" # Firewall password (for method=fw) + +# DDNS providers to update +ddclient_protocols: [] diff --git a/templates/ddclient.conf.j2 b/templates/ddclient.conf.j2 index 5f540dc..2525c5a 100755 --- a/templates/ddclient.conf.j2 +++ b/templates/ddclient.conf.j2 @@ -48,6 +48,7 @@ debug={{ ddclient_debug | ternary('yes', 'no') }} # ============================================================ # Update Behavior # ============================================================ +exec={{ ddclient_exec | ternary('yes', 'no') }} retry={{ ddclient_retry | ternary('yes', 'no') }} force={{ ddclient_force | ternary('yes', 'no') }} {% if ddclient_postscript %}