os-ddclient generates empty ddclient.conf although account exists in config.xml/json
Nobody has claimed this yet.
- Dominant language
- PHP
- Stars
- 1.2k
- Forks
- 863
- Avg merge
- 2d 6h
- Merged PRs (30d)
- 10
Description
Important notices
Before you add a new report, we ask you kindly to acknowledge the following:
- I have read the contributing guide lines at https://github.com/opnsense/plugins/blob/master/CONTRIBUTING.md
- I have searched the existing issues, open and closed, and I'm convinced that mine is new.
- The title contains the plugin to which this issue belongs
Title
os-ddclient: account is stored in config.xml/json but ddclient.conf stays empty
Describe the bug
When configuring Dynamic DNS with the os-ddclient plugin, the account is correctly saved in /conf/config.xml and rendered into /usr/local/etc/ddclient.json, but /usr/local/etc/ddclient.conf only contains the header lines:
syslog=yes
pid=/var/run/ddclient.pid
No actual account configuration is written into ddclient.conf.
As a result, ddclient_opn may appear to start or run, but it has no usable account configuration.
I was able to verify that the DynDNS provider itself is working: a manual ddclient test with the same Infomaniak credentials works successfully from the shell.
I do not know the last known working version.
To Reproduce
Steps to reproduce the behavior:
- Go to
Services -> Dynamic DNS -> Settings - Create a Dynamic DNS account using os-ddclient
- I tested both:
- service
dyndns2 - service
customwith protocoldyndns2
- service
- Save and apply the configuration
- Check the generated files:
/conf/config.xml/usr/local/etc/ddclient.json/usr/local/etc/ddclient.conf
- Observe that:
- the account exists in
config.xml - the account exists in
ddclient.json ddclient.confonly contains the header lines and no account entries
- the account exists in
Expected behavior
I expect os-ddclient to render a complete and usable /usr/local/etc/ddclient.conf containing the configured account, for example protocol/server/login/password/hostname related entries, so that ddclient_opn can actually perform updates.
Screenshots
If needed, I can provide screenshots showing:
- the configured DynDNS account in the GUI
/usr/local/etc/ddclient.jsoncontaining the account/usr/local/etc/ddclient.confonly containing the header lines
Relevant log files
/var/log/system/latest.log showed:
WARNING: failed to start ddclient_opn
/var/log/configd/latest.log showed template generation succeeds:
- generate template OPNsense/ddclient
- generated //usr/local/etc/ddclient.conf
- generated //usr/local/etc/ddclient.json
But the generated ddclient.conf still only contains:
syslog=yes
pid=/var/run/ddclient.pid
Relevant observations:
/conf/config.xmlcontains the DynDNS account/usr/local/etc/ddclient.jsoncontains the DynDNS account/usr/local/etc/ddclient.confdoes not contain the DynDNS account
A manual ddclient test worked successfully with the same provider credentials, which suggests the issue is not the provider itself but the plugin/template/runtime generation.
Additional context
Provider used: Infomaniak DynDNS
Manual shell test with ddclient works when using:
- protocol:
dyndns2 - server:
infomaniak.com - valid credentials
- valid hostname
- explicit IP or otherwise correct IP detection
This strongly suggests that:
- provider credentials are valid
- provider endpoint is working
- the issue is specific to os-ddclient generating or using
ddclient.conf
I also tested a custom entry with:
- service:
custom - protocol:
dyndns2 - server:
infomaniak.com
The account was again present in config.xml and ddclient.json, but ddclient.conf still remained empty except for the header lines.
Environment
Opnsense 26.1.9
Hardware:
Intel(R) N150
4x Intel I226-V 2.5G interfaces
1U rack firewall appliance (PcZinophyte / Topton-style system, N150, no SFP)
Contributor guide
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- Open a pull request that references the issue number.
Research direction
Start by comparing the account data in /conf/config.xml and /usr/local/etc/ddclient.json with the generated /usr/local/etc/ddclient.conf, then trace the OPNsense/ddclient template generation entry point and ddclient_opn startup. Done means a configured account is rendered into a usable ddclient.conf and ddclient_opn can start with that configuration.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- php
- Domain
- networking
- Issue type
- Bug
- Difficulty
- 3/5
- Estimated time
- 1-2 days
- Activity status
- Quiet
- Clarity
- Mostly clear
- Newbie friendliness
- 45/100