ddclient/ddclient

Unable to update IPV6: `Use of uninitialized value in sprintf at /usr/bin/ddclient line 2160`

Closed this issue · 2 comments

I tried 2 configurations:

ssl=yes
protocol=dyndns2
use=web
curl=yes
server=dynv6.com
login=none
password='xxxxxx'
yuruihong.dynv6.net

and

ssl=yes
protocol=dyndns2
use=no
usev6=ifv6, ifv6=wlp1s0
server=dynv6.com
login=none
password='xxxxxx'
yuruihong.dynv6.net

Neither worked for me. I think that get_ipv6 has successfully got my IP, but the GET request is wrong. Not sure what have caused that, so I put my full debug information here:

$ sudo ddclient -daemon=0 -debug -verbose -noquiet -file /etc/ddclient/ddclient6.conf
=== opt ====
opt{cache}                           : <undefined>
opt{cmd}                             : <undefined>
opt{cmd-skip}                        : <undefined>
opt{cmdv4}                           : <undefined>
opt{cmdv6}                           : <undefined>
opt{curl}                            : <undefined>
opt{daemon}                          : 0
opt{debug}                           : 1
opt{exec}                            : <undefined>
opt{facility}                        : <undefined>
opt{file}                            : /etc/ddclient/ddclient6.conf
opt{force}                           : <undefined>
opt{foreground}                      : <undefined>
opt{fw}                              : <undefined>
opt{fw-banlocal}                     : CODE(0x558a56fbc410)
opt{fw-login}                        : <undefined>
opt{fw-password}                     : <undefined>
opt{fw-skip}                         : <undefined>
opt{fw-ssl-validate}                 : <undefined>
opt{fwv4}                            : <undefined>
opt{fwv4-skip}                       : <undefined>
opt{fwv6}                            : <undefined>
opt{fwv6-skip}                       : <undefined>
opt{geturl}                          : <undefined>
opt{help}                            : <undefined>
opt{host}                            : <undefined>
opt{if}                              : <undefined>
opt{if-skip}                         : CODE(0x558a56fbc410)
opt{ifv4}                            : <undefined>
opt{ifv6}                            : <undefined>
opt{ip}                              : <undefined>
opt{ipv4}                            : <undefined>
opt{ipv6}                            : <undefined>
opt{list-devices}                    : CODE(0x558a57180a80)
opt{list-protocols}                  : CODE(0x558a571b25c8)
opt{list-web-services}               : CODE(0x558a571d8858)
opt{login}                           : <redacted>
opt{mail}                            : <undefined>
opt{mail-failure}                    : <undefined>
opt{max-interval}                    : 2592000
opt{max-warn}                        : <undefined>
opt{min-error-interval}              : 300
opt{min-interval}                    : 30
opt{options}                         : <undefined>
opt{password}                        : <redacted>
opt{pid}                             : <undefined>
opt{postscript}                      : <undefined>
opt{priority}                        : <undefined>
opt{protocol}                        : <undefined>
opt{proxy}                           : <undefined>
opt{query}                           : <undefined>
opt{quiet}                           : 0
opt{retry}                           : <undefined>
opt{server}                          : <undefined>
opt{ssl}                             : <undefined>
opt{ssl_ca_dir}                      : <undefined>
opt{ssl_ca_file}                     : <undefined>
opt{syslog}                          : <undefined>
opt{test}                            : <undefined>
opt{timeout}                         : <undefined>
opt{use}                             : <undefined>
opt{usev4}                           : <undefined>
opt{usev6}                           : <undefined>
opt{verbose}                         : 1
opt{web}                             : <undefined>
opt{web-skip}                        : <undefined>
opt{web-ssl-validate}                : <undefined>
opt{webv4}                           : <undefined>
opt{webv4-skip}                      : <undefined>
opt{webv6}                           : <undefined>
opt{webv6-skip}                      : <undefined>
=== globals ====
globals{daemon}                      : 60
globals{debug}                       : 1
globals{file}                        : /etc/ddclient/ddclient6.conf
globals{ifv6}                        : wlp1s0
globals{login}                       : <redacted>
globals{password}                    : <redacted>
globals{protocol}                    : dyndns2
globals{quiet}                       : 0
globals{server}                      : dynv6.com
globals{ssl}                         : 1
globals{use}                         : no
globals{usev6}                       : ifv6
globals{verbose}                     : 1
=== config ====
config{yuruihong.dynv6.net}{atime}   : 0
config{yuruihong.dynv6.net}{backupmx} : 0
config{yuruihong.dynv6.net}{cacheable} : ARRAY(0x558a57355810)
config{yuruihong.dynv6.net}{cmd}     : <undefined>
config{yuruihong.dynv6.net}{cmd-skip} : 
config{yuruihong.dynv6.net}{custom}  : 0
config{yuruihong.dynv6.net}{fw}      : 
config{yuruihong.dynv6.net}{fw-login} : <undefined>
config{yuruihong.dynv6.net}{fw-password} : 
config{yuruihong.dynv6.net}{fw-skip} : 
config{yuruihong.dynv6.net}{fw-ssl-validate} : 1
config{yuruihong.dynv6.net}{host}    : yuruihong.dynv6.net
config{yuruihong.dynv6.net}{if}      : ppp0
config{yuruihong.dynv6.net}{ip}      : <undefined>
config{yuruihong.dynv6.net}{ipv4}    : <undefined>
config{yuruihong.dynv6.net}{ipv6}    : <undefined>
config{yuruihong.dynv6.net}{login}   : <redacted>
config{yuruihong.dynv6.net}{max-interval} : 2592000
config{yuruihong.dynv6.net}{min-error-interval} : 300
config{yuruihong.dynv6.net}{min-interval} : 30
config{yuruihong.dynv6.net}{mtime}   : 0
config{yuruihong.dynv6.net}{mx}      : 
config{yuruihong.dynv6.net}{password} : <redacted>
config{yuruihong.dynv6.net}{protocol} : dyndns2
config{yuruihong.dynv6.net}{script}  : /nic/update
config{yuruihong.dynv6.net}{server}  : dynv6.com
config{yuruihong.dynv6.net}{static}  : 0
config{yuruihong.dynv6.net}{status}  : 
config{yuruihong.dynv6.net}{status-ipv4} : 
config{yuruihong.dynv6.net}{status-ipv6} : 
config{yuruihong.dynv6.net}{use}     : no
config{yuruihong.dynv6.net}{warned-min-error-interval} : 0
config{yuruihong.dynv6.net}{warned-min-interval} : 0
config{yuruihong.dynv6.net}{web}     : dyndns
config{yuruihong.dynv6.net}{web-skip} : 
config{yuruihong.dynv6.net}{web-ssl-validate} : 1
config{yuruihong.dynv6.net}{wildcard} : 0
config{yuruihong.dynv6.net}{wtime}   : 30
=== cache ====
cache{yuruihong.dynv6.net}{atime}    : 0
cache{yuruihong.dynv6.net}{backupmx} : 0
cache{yuruihong.dynv6.net}{custom}   : 0
cache{yuruihong.dynv6.net}{host}     : yuruihong.dynv6.net
cache{yuruihong.dynv6.net}{ip}       : 183.172.29.47
cache{yuruihong.dynv6.net}{mtime}    : 1703102769
cache{yuruihong.dynv6.net}{mx}       : 
cache{yuruihong.dynv6.net}{script}   : /nic/update
cache{yuruihong.dynv6.net}{static}   : 0
cache{yuruihong.dynv6.net}{status}   : good
cache{yuruihong.dynv6.net}{status-ipv4} : noconnect
cache{yuruihong.dynv6.net}{status-ipv6} : noconnect
cache{yuruihong.dynv6.net}{warned-min-error-interval} : 1703102867
cache{yuruihong.dynv6.net}{warned-min-interval} : 0
cache{yuruihong.dynv6.net}{wildcard} : 0
cache{yuruihong.dynv6.net}{wtime}    : 30
WARNING:  'if-skip' is deprecated and does nothing for IPv6
DEBUG:    Reply from 'ip -6 -o addr show dev wlp1s0 scope global' :
DEBUG:    ------
DEBUG:    2: wlp1s0    inet6 2402:f000:2:1801:9a6e:10af:471d:8ba3/64 scope global dynamic noprefixroute \       valid_lft 3599sec preferred_lft 3599sec
DEBUG:    ------
DEBUG:    Raw IPv6 after filtering for GUA addresses wlp1s0: (1)
DEBUG:    2: wlp1s0    inet6 2402:f000:2:1801:9a6e:10af:471d:8ba3/64 scope global dynamic noprefixroute \       valid_lft 3599sec preferred_lft 3599sec
DEBUG:    get_ipv6: using (ifv6, wlp1s0) reports 2402:f000:2:1801:9a6e:10af:471d:8ba3
DEBUG:    
DEBUG:    nic_dyndns2_update -------------------
Use of uninitialized value $_[0] in sprintf at /usr/bin/ddclient line 2160.
INFO:     setting IP address to  for yuruihong.dynv6.net
UPDATE:   updating yuruihong.dynv6.net
DEBUG:    proxy    = <undefined>
DEBUG:    protocol = https
DEBUG:    server   = dynv6.com
DEBUG:    url      = nic/update?<redacted>
DEBUG:    ip ver   = 
CONNECT:  dynv6.com
CONNECTED:  using SSL
SENDING:  GET /nic/update?system=dyndns&hostname=yuruihong.dynv6.net&myip= HTTP/1.1
SENDING:  Host: dynv6.com
SENDING:  Authorization: Basic bm9uZTpkRExuc002MmVKXzIzUkhkeXRiVkNIam9TSG1NTGc=
SENDING:  User-Agent: ddclient/3.10.0
SENDING:  Connection: close
SENDING:  
RECEIVE:  HTTP/1.1 200 OK
RECEIVE:  Access-Control-Allow-Origin: 
RECEIVE:  Alt-Svc: h3=":443"; ma=2592000
RECEIVE:  Content-Length: 5
RECEIVE:  Content-Type: text/plain; charset=UTF-8
RECEIVE:  Date: Wed, 20 Dec 2023 20:07:54 GMT
RECEIVE:  Server: Caddy
RECEIVE:  Strict-Transport-Security: max-age=31536000;
RECEIVE:  Vary: Origin
RECEIVE:  X-Xss-Protection: 1; mode=block
RECEIVE:  Connection: close
RECEIVE:  
RECEIVE:  good
Use of uninitialized value $_[2] in sprintf at /usr/bin/ddclient line 2160.
SUCCESS:  updating yuruihong.dynv6.net: good: IP address set to 

Your first configuration is missing the web URL to use for IP address retrieval, i.e. web=https://ipv6.icanhazip.com/

Your second configuration encountered the same issue as #615. A fix (ad854ab) is pushed onto master - can you confirm this fixes your issue with the second configuration?

Your first configuration is missing the web URL to use for IP address retrieval, i.e. web=https://ipv6.icanhazip.com/

Your second configuration encountered the same issue as #615. A fix (ad854ab) is pushed onto master - can you confirm this fixes your issue with the second configuration?

It is now working. Thanks!