From 2e79de15fc3852a67d2fa4ae557ecd091a3ad780 Mon Sep 17 00:00:00 2001
From: Indrajit Raychaudhuri <irc@indrajit.com>
Date: Fri, 9 Jun 2023 20:54:32 -0500
Subject: dns: T5144: Explicitly override ddclient global options for
 reliability

- For option 'web', ddclient defaults to 'dyndns' which doesn't support
  ssl. This results ddclient process lockup till connection to
  checkip.dyndns.org:443 times out.
- For option 'use', ddclient defaults 'ip'. This results in confusing
  message "WARNING:  '' is not a valid IPv4 or IPv6 address" in log.
---
 data/templates/dns-dynamic/ddclient.conf.j2 | 9 ++++++---
 1 file changed, 6 insertions(+), 3 deletions(-)

diff --git a/data/templates/dns-dynamic/ddclient.conf.j2 b/data/templates/dns-dynamic/ddclient.conf.j2
index a19b79c00..4da7153c7 100644
--- a/data/templates/dns-dynamic/ddclient.conf.j2
+++ b/data/templates/dns-dynamic/ddclient.conf.j2
@@ -28,6 +28,9 @@ syslog=yes
 ssl=yes
 pid={{ config_file | replace('.conf', '.pid') }}
 cache={{ config_file | replace('.conf', '.cache') }}
+{# Explicitly override global options for reliability #}
+web=googledomains {# ddclient default ('dyndns') doesn't support ssl and results in process lockup #}
+use=no            {# ddclient default ('ip') results in confusing warning message in log #}
 
 {% if address is vyos_defined %}
 {%     for address, service_cfg in address.items() %}
@@ -58,9 +61,9 @@ cache={{ config_file | replace('.conf', '.cache') }}
 {%                     set ip_suffixes = ['v4', 'v6'] if config.ip_version == 'both'
                                                       else (['v6'] if config.ip_version == 'ipv6' else ['']) %}
 # Web service dynamic DNS configuration for {{ name }}: [{{ config.protocol }}, {{ host }}]
-{# For ipv4 only setup, don't append 'new-style' compliant suffix ('usev4', 'ifv4', 'webv4' etc.)
-   to the properties and instead live through the deprecation warnings for better compatibility
-   with most ddclient protocols. #}
+{# For ipv4 only setup or legacy ipv6 setup, don't append 'new-style' compliant suffix
+   ('usev4', 'ifv4', 'webv4' etc.) to the properties and instead live through the
+   deprecation warnings for better compatibility with most ddclient protocols. #}
 {{ render_config(host, address, service_cfg.web_options, ip_suffixes,
                  protocol=config.protocol, server=config.server, zone=config.zone,
                  login=config.username, password=config.password) }}
-- 
cgit v1.2.3