ddclient
ddclient copied to clipboard
Uninitialized value $h in hash element at /usr/local/sbin/ddclient line 4030.
Hello,
I build it from source on FreeBSD 12.1, when I try to use the new usev6 options I get the following errors:
Use of uninitialized value $h in hash element at /usr/local/sbin/ddclient line 4030.
Use of uninitialized value $_[0] in sprintf at /usr/local/sbin/ddclient line 2089.
FAILED: updating : unexpected status (0)
Use of uninitialized value in string ne at /usr/local/sbin/ddclient line 1090.
Use of uninitialized value in string ne at /usr/local/sbin/ddclient line 1090.
Use of uninitialized value in string ne at /usr/local/sbin/ddclient line 1090.
Use of uninitialized value in string ne at /usr/local/sbin/ddclient line 1090.
Use of uninitialized value in string ne at /usr/local/sbin/ddclient line 1090.
Use of uninitialized value in string ne at /usr/local/sbin/ddclient line 1090.
Use of uninitialized value in string ne at /usr/local/sbin/ddclient line 1090.
Use of uninitialized value in string ne at /usr/local/sbin/ddclient line 1090.
Use of uninitialized value in string ne at /usr/local/sbin/ddclient line 1090.
Use of uninitialized value in string ne at /usr/local/sbin/ddclient line 1090.
Use of uninitialized value in string ne at /usr/local/sbin/ddclient line 1090.
Use of uninitialized value in string ne at /usr/local/sbin/ddclient line 1090.
Use of uninitialized value in string ne at /usr/local/sbin/ddclient line 1090.
Use of uninitialized value in string ne at /usr/local/sbin/ddclient line 1090.
FAILED: was not updated because protocol <undefined> is not supported.
Can someone help? Thanks
Can you post your config without credentials?
The following config block creates the issue:
protocol=dyndns2
server=carol.selfhost.de
usev6=ifv6, if=vtnet2
login=username
password=password
sub.domain.com
Edit: Same issue for:
usev6=ifv6, ifv6=vtnet2
use needs to come before all other fields. Please do not ask me why. Probably a bug in the config parser.
usev6=ifv6, ifv6=vtnet2
protocol=dyndns2
server=carol.selfhost.de
login=username
password=password
sub.domain.com
Thanks, but seems that this does not work.
WARNING: '' is not a valid IPv4 or IPv6 address
WARNING: found neither IPv4 nor IPv6 address
WARNING: sub.domain.com: unable to determine IP address with strategy use=ip
WARNING: 'if-skip' is deprecated and does nothing for IPv6
INFO: forcing update of sub.domain.com.
Use of uninitialized value $_[0] in sprintf at /usr/local/sbin/ddclient line 2089.
FAILED: updating sub.domain.com: unexpected status (12)
Use of uninitialized value $h in hash element at /usr/local/sbin/ddclient line 4030.
Use of uninitialized value $_[0] in sprintf at /usr/local/sbin/ddclient line 2089.
WARNING: updating : nochg: No update required; unnecessary attempts to change to the current address are considered abusive
Use of uninitialized value $h in hash element at /usr/local/sbin/ddclient line 4039.
Use of uninitialized value $h in hash element at /usr/local/sbin/ddclient line 4040.
Use of uninitialized value $h in hash element at /usr/local/sbin/ddclient line 4041.
Use of uninitialized value $h in hash element at /usr/local/sbin/ddclient line 4030.
Use of uninitialized value $_[0] in sprintf at /usr/local/sbin/ddclient line 2089.
FAILED: updating : unexpected status (0)
Use of uninitialized value in string ne at /usr/local/sbin/ddclient line 1090.
Use of uninitialized value in string ne at /usr/local/sbin/ddclient line 1090.
Use of uninitialized value in string ne at /usr/local/sbin/ddclient line 1090.
Use of uninitialized value in string ne at /usr/local/sbin/ddclient line 1090.
Use of uninitialized value in string ne at /usr/local/sbin/ddclient line 1090.
Use of uninitialized value in string ne at /usr/local/sbin/ddclient line 1090.
Use of uninitialized value in string ne at /usr/local/sbin/ddclient line 1090.
Use of uninitialized value in string ne at /usr/local/sbin/ddclient line 1090.
Use of uninitialized value in string ne at /usr/local/sbin/ddclient line 1090.
Use of uninitialized value in string ne at /usr/local/sbin/ddclient line 1090.
Use of uninitialized value in string ne at /usr/local/sbin/ddclient line 1090.
Use of uninitialized value in string ne at /usr/local/sbin/ddclient line 1090.
Use of uninitialized value in string ne at /usr/local/sbin/ddclient line 1090.
Use of uninitialized value in string ne at /usr/local/sbin/ddclient line 1090.
FAILED: was not updated because protocol <undefined> is not supported.
Edit: Same errors for usev4 but here it seems to get the right IP. Example: 2.2.2.2
INFO: setting IP address to 2.2.2.2 for sub.domain.com
With --debug I can see that the IPs can found. But it says: WARNING: '' is not a valid IPv4 or IPv6 address
WARNING: '' is not a valid IPv4 or IPv6 address
WARNING: found neither IPv4 nor IPv6 address
DEBUG: get_ip: using ip, ip reports <undefined>
WARNING: sub.domain.com: unable to determine IP address with strategy use=ip
WARNING: 'if-skip' is deprecated and does nothing for IPv4
DEBUG: Reply from 'ifconfig pppoe0' :
DEBUG: ------
DEBUG: pppoe0: flags=88d1<UP,POINTOPOINT,RUNNING,NOARP,SIMPLEX,MULTICAST> metric 0 mtu 1492
DEBUG: inet6 fe80::xx%pppoe0 prefixlen 64 scopeid 0xd
DEBUG: inet6 fe80::xx%pppoe0 prefixlen 64 scopeid 0xd
DEBUG: inet6 20xx:xxxxxx prefixlen 64 detached autoconf
DEBUG: inet 80.XXX.XXX.XXX --> XX.XXX.XXX.XX netmask 0xffffffff
DEBUG: nd6 options=23<PERFORMNUD,ACCEPT_RTADV,AUTO_LINKLOCAL>
DEBUG: ------
DEBUG: get_ipv4: using (ifv4, pppoe0) reports 80.XXX.XXX.XXX
WARNING: 'if-skip' is deprecated and does nothing for IPv6
DEBUG: Reply from 'ifconfig -L pppoe0' :
DEBUG: ------
DEBUG: pppoe0: flags=88d1<UP,POINTOPOINT,RUNNING,NOARP,SIMPLEX,MULTICAST> metric 0 mtu 1492
DEBUG: inet6 fe80::xx%pppoe0 prefixlen 64 scopeid 0xd
DEBUG: inet6 fe80::xx%pppoe0 prefixlen 64 scopeid 0xd
DEBUG: inet6 20xx:xxxxxx prefixlen 64 detached autoconf
DEBUG: inet 80.XXX.XXX.XXX --> XX.XXX.XXX.XX netmask 0xffffffff
DEBUG: nd6 options=23<PERFORMNUD,ACCEPT_RTADV,AUTO_LINKLOCAL>
DEBUG: ------
DEBUG: Raw IPv6 after filtering for GUA addresses pppoe0: (1)
DEBUG: inet6 20xx:xxxxxx prefixlen 64 detached autoconf pltime 1787 vltime 14387
DEBUG: get_ipv6: using (ifv6, pppoe0) reports 20xx:xxxxxx
@Marvo2011 were you able to get this up and running? if not, please confirm your ddclient version
@andrp92 No I didn't get it to work. I updated to FreeBSD 13.1 but here I get only one DynDns Update to work. but I reley need 4... 2x IPv4 2x IPv6 (MultiWan)
Using the curl option and the latest version here I was able to get it to work. However, I had to read some code to understand why it was not working. With the curl option the error you showed here, in my case (ubuntu), stopped appearing
@andrp92 Can you give a sample config for the curl option?
getting the same error with this config
use=web
protocol=noip, \
server=dynupdate.no-ip.com, \
login=myusername, \
password='mypassword' \
myhostname.ddns.net
thanks
ps: can someone clarify when are commas and / needed and when not inside ddclient.conf?
using ddclient 3.10.0
@kcris @Marvo2011 This is how my entire config looks like. I hope it helps:
ddclient version 3.10.0
daemon=300 # check every 300 seconds
syslog=yes # log update msgs to syslog
mail=root # mail all msgs to root
mail-failure=root # mail failed update msgs to root
pid=/var/run/ddclient.pid # record PID in file.
ssl=yes # use ssl-support. Works with
use=no
usev6=no
usev4=webv4
webv4=googledomains
# OpenDNS.com account-configuration
protocol=dyndns2 \
curl=yes \
ssl=yes \
server=updates.opendns.com \
login=<some_login_email> \
password='some_password' \
<some_place>
# CloudFlare (www.cloudflare.com)
protocol=cloudflare
curl=yes \
zone=<some_zone> \
ttl=300 \
server=api.cloudflare.com/client/v4 \
login=token \
password='some_password' \
<some.domain>
@kcris @Marvo2011 Were you guys able to test it?
seems to work when using curl=yes
, e.g.
use=web
protocol=noip, \
curl=yes, \
server=dynupdate.no-ip.com, \
login=username, \
password='password' \
hostname.ddns.net
thanks a lot: @andrp92 @Marvo2011 !!
ps: when using curl=yes
it works with one hostname, all good!
but seems to fail with the same error if I use multiple hostnames, e.g.
aaa.ddns.net,bbb.ddns.net,ccc.hopto.org
ps: works with one hostname, all good!
but seems to fail with the same error if I use multiple hostnames, e.g.
aaa.ddns.net,bbb.ddns.net,ccc.hopto.org
Hmmm that's weird. I haven't tried with multiple domains however, if you are not using a naked domain (root), you can definitely make use of CNAME to point to the updated host (if DDNS service allows you to).
I guessing that error has to do with the way that the domains are being parsed.🥲