Comments (9)
Ditto. Upgraded from Devuan 4.0 Chimaera (The systemd free release of Debian 11.1 Bullseye) to Devuan 5.0 Daedalus (Debian 12.1 Bookworm) and hit the same obstacles.
A few things to note:
-
Although it appears to refuse an update, my experience is that it is updating when required.
-
It is getting the current IP from 'checkip.dyndns.org' TWICE. Why?
-
I tried to set https (ssl=yes) on the update phase. But then it tried to use https when getting the current IP from ''checkip.dyndns.org' but https is NOT supported on that server.
-
I don't know the significance of the RECEIVE: status codes (13 and 0 in this case) but the existance of the 'RECEIVE: nochg 24.250.1.1' would seem to indicate that an update was attempted for the dynamic IP but dyndns reported it was not necessary: 'nochg'.
FAILED: updating clarke39.homeip.net: unexpected status (13) WARNING: updating : nochg: No update required; unnecessary attempts to change to the current address are considered abusive FAILED: updating : unexpected status (0) FAILED: was not updated because protocol <undefined> is not supported.
-
Since a continual attempt to force an update at the default daemon interval would would probably get me banned, I have intentionally changed the interval to 2 hours pending a resolution.
Since it seems to be working somewhat OK, I have not reverted back to the older version. With my fingers crossed..
===========================================================
# /etc/ddclient.conf
#old use=web, web=dyndns \
syslog=yes
facility=local1
## The config daemon timer DOES NOT apply. Timer comes from /etc/default/ddclient [It's a Debian thing.]
daemon=900 # 7200=2hours ## 3600 =every hour
use=web
usev6=no
usev4=webv4, webv4=dyndns
webv4-skip='Current IP Address:'
server=members.dyndns.org
protocol=dyndns2
login=MYLOGIN, password='MYPASS'
[MYHOST].homeip.net
## The_End
Log:
DEBUG: proxy = <undefined>
DEBUG: protocol = http
DEBUG: server = checkip.dyndns.org
DEBUG: url =
DEBUG: ip ver =
CONNECT: checkip.dyndns.org
CONNECTED: using HTTP
SENDING: GET / HTTP/1.1
SENDING: Host: checkip.dyndns.org
SENDING: User-Agent: ddclient/3.10.0
SENDING: Connection: close
SENDING:
RECEIVE: HTTP/1.1 200 OK
RECEIVE: Date: Sun, 19 Nov 2023 22:49:01 GMT
RECEIVE: Content-Type: text/html
RECEIVE: Content-Length: 105
RECEIVE: Connection: close
RECEIVE: Cache-Control: no-cache
RECEIVE: Pragma: no-cache
RECEIVE:
RECEIVE: <html><head><title>Current IP Check</title></head><body>Current IP Address: 24.250.1.1</body></html>
DEBUG: get_ip: using web, http://checkip.dyndns.org/ reports 24.250.1.1
DEBUG: proxy = <undefined>
DEBUG: protocol = http
DEBUG: server = checkip.dyndns.org
DEBUG: url =
DEBUG: ip ver = 4
CONNECT: checkip.dyndns.org (IPv4)
CONNECTED: using HTTP
SENDING: GET / HTTP/1.1
SENDING: Host: checkip.dyndns.org
SENDING: User-Agent: ddclient/3.10.0
SENDING: Connection: close
SENDING:
RECEIVE: HTTP/1.1 200 OK
RECEIVE: Date: Sun, 19 Nov 2023 22:49:02 GMT
RECEIVE: Content-Type: text/html
RECEIVE: Content-Length: 105
RECEIVE: Connection: close
RECEIVE: Cache-Control: no-cache
RECEIVE: Pragma: no-cache
RECEIVE:
RECEIVE: <html><head><title>Current IP Check</title></head><body>Current IP Address: 24.250.1.1</body></html>
DEBUG: get_ipv4: using (webv4, http://checkip.dyndns.org/) reports 24.250.1.1
DEBUG:
DEBUG: nic_dyndns2_update -------------------
INFO: setting IP address to 24.250.1.1 for [MYHOST].homeip.net
UPDATE: updating [MYHOST].homeip.net
DEBUG: proxy = <undefined>
DEBUG: protocol = http
DEBUG: server = members.dyndns.org
DEBUG: url = nic/update?<redacted>
DEBUG: ip ver =
CONNECT: members.dyndns.org
CONNECTED: using HTTP
SENDING: GET /nic/update?system=dyndns&hostname=[MYHOST].homeip.net&myip=24.250.1.1 HTTP/1.1
SENDING: Host: members.dyndns.org
SENDING: Authorization: Basic ZGFiZHluOTozRlR0UnFQVFFobWU5WlFn
SENDING: User-Agent: ddclient/3.10.0
SENDING: Connection: close
SENDING:
RECEIVE: HTTP/1.1 200 OK
RECEIVE: Date: Sun, 19 Nov 2023 22:49:04 GMT
RECEIVE: Server: Apache/2.4.37 (Oracle Linux) mod_apreq2-20090110/2.8.0 mod_perl/2.0.12 Perl/v5.26.3
RECEIVE: X-UpdateCode: n
RECEIVE: Content-Type: text/plain
RECEIVE: Accept-Ranges: none
RECEIVE: X-User-Status: vip
RECEIVE: Connection: close
RECEIVE: Transfer-Encoding: chunked
RECEIVE:
RECEIVE: 13
RECEIVE: nochg 24.250.1.1
RECEIVE: 0
RECEIVE:
FAILED: updating [MYHOST].homeip.net: unexpected status (13)
Use of uninitialized value $h in hash element at /usr/bin/ddclient line 4103.
Use of uninitialized value $_[0] in sprintf at /usr/bin/ddclient line 2160.
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/bin/ddclient line 4112.
Use of uninitialized value $h in hash element at /usr/bin/ddclient line 4113.
Use of uninitialized value $h in hash element at /usr/bin/ddclient line 4114.
Use of uninitialized value $h in hash element at /usr/bin/ddclient line 4103.
Use of uninitialized value $_[0] in sprintf at /usr/bin/ddclient line 2160.
FAILED: updating : unexpected status (0)
Use of uninitialized value in string ne at /usr/bin/ddclient line 1154.
Use of uninitialized value in string ne at /usr/bin/ddclient line 1154.
Use of uninitialized value in string ne at /usr/bin/ddclient line 1154.
Use of uninitialized value in string ne at /usr/bin/ddclient line 1154.
Use of uninitialized value in string ne at /usr/bin/ddclient line 1154.
Use of uninitialized value in string ne at /usr/bin/ddclient line 1154.
Use of uninitialized value in string ne at /usr/bin/ddclient line 1154.
Use of uninitialized value in string ne at /usr/bin/ddclient line 1154.
Use of uninitialized value in string ne at /usr/bin/ddclient line 1154.
Use of uninitialized value in string ne at /usr/bin/ddclient line 1154.
Use of uninitialized value in string ne at /usr/bin/ddclient line 1154.
Use of uninitialized value in string ne at /usr/bin/ddclient line 1154.
Use of uninitialized value in string ne at /usr/bin/ddclient line 1154.
Use of uninitialized value in string ne at /usr/bin/ddclient line 1154.
Use of uninitialized value in string ne at /usr/bin/ddclient line 1154.
Use of uninitialized value in string ne at /usr/bin/ddclient line 1154.
Use of uninitialized value in string ne at /usr/bin/ddclient line 1154.
Use of uninitialized value in string ne at /usr/bin/ddclient line 1154.
FAILED: was not updated because protocol <undefined> is not supported.
===========================================================
( Dynamic IP and host name are obfuscated. )
Additional debug output is available if needed.
regards,
/dave
from ddclient.
Hey everyone - just as a heads up, I'm first focussing on getting v3.11.2 out of the door due to an update spam/cache issue ( #595 ).
After that I'll be taking a look at why the older 3.10.0 is misbehaving - That version is from before I took over maintainership
from ddclient.
Hey everyone - I just pushed an initial list of known issues, some of which apply here.
- The IO::Socket HTTP code is broken wrt. chunked encoding in v3.10.0 -> Set the
curl
parameter. - The
ssl
parameter breaks HTTP-only IP query sites -> Deactivate it
from ddclient.
I also tried the currently latest commit (9145dc1 - v3.11.1 + 4 commits) and that doesn't have all the errors, but it does try to update when it's not required once every 300 seconds.
from ddclient.
And I 'simplified' my 3.10.0 configuration by removing all the ipv4 and ipv6 specific commands, setting both usev4 and usev6 to '=no'. And now no errors and everything seems to work perfectly using only the deprecated commands.
My working config: ( I have no need for IPv6 )
## /etc/ddclient.conf
use=web
usev6=no
usev4=no
server=members.dyndns.org
login=MYLOGIN password='MYSECRET'
[MYSYSTEM1].homeip.net
[MYSYSTEM2].broke-it.net
## The_End
from ddclient.
After that I'll be taking a look at why the older 3.10.0 is misbehaving - That version is from before I took over maintainership
Lovely! That'd be great since at least one major Linux distribution includes 3.10 in the latest release.
from ddclient.
Same problem here with 3.10.0 on Fedora 39. As with OP, downgrading to 3.9.1 fixes the issue.
I use use=cmd, cmd='cat /some/state/file'
, which simply reads the IP address from /some/state/file
.
I believe the problem is because 3.10.0 sends an HTTP/1.1
request, which causes some servers to respond with Transfer-Encoding: chunked
-- but ddclient incorrectly interprets the chunk length as body content:
SENDING: GET /nic/update?system=dyndns&hostname=Home&myip=184.145.2.112 HTTP/1.1
SENDING: Host: updates.opendns.com
SENDING: Authorization: Basic <elided>
SENDING: User-Agent: ddclient/3.10.0
SENDING: Connection: close
SENDING:
RECEIVE: HTTP/1.1 200 OK
RECEIVE: vary: Accept-Encoding
RECEIVE: content-type: text/html; charset=UTF-8
RECEIVE: date: Sat, 06 Jan 2024 00:09:16 GMT
RECEIVE: server: opendns
RECEIVE: x-envoy-upstream-service-time: 98
RECEIVE: x-ingress-point: yyz
RECEIVE: x-xss-protection: 1; mode=block
RECEIVE: strict-transport-security: max-age=31536000; includeSubDomains
RECEIVE: connection: close
RECEIVE: transfer-encoding: chunked
RECEIVE:
RECEIVE: 12
RECEIVE: good 184.145.2.112
RECEIVE: 0
FAILED: updating Home: unexpected status (12)
Note the request HTTP/1.1, and transfer-encoding: chunked in the response, and the unexpected status (12)
which is the length of the response chunk.
By contrast, 3.9.1 uses HTTP/1.0 and there are no problems:
SENDING: GET /nic/update?system=dyndns&hostname=Home&myip=184.145.2.112 HTTP/1.0
SENDING: Host: updates.opendns.com
SENDING: Authorization: Basic <elided>
SENDING: User-Agent: ddclient/3.9.1
SENDING: Connection: close
SENDING:
SENDING:
RECEIVE: HTTP/1.0 200 OK
RECEIVE: vary: Accept-Encoding
RECEIVE: content-type: text/html; charset=UTF-8
RECEIVE: date: Sat, 06 Jan 2024 00:12:48 GMT
RECEIVE: server: opendns
RECEIVE: x-envoy-upstream-service-time: 96
RECEIVE: x-ingress-point: yyz
RECEIVE: x-xss-protection: 1; mode=block
RECEIVE: strict-transport-security: max-age=31536000; includeSubDomains
RECEIVE: connection: close
RECEIVE:
RECEIVE: good 184.145.2.112
SUCCESS: updating Home: good: IP address set to 184.145.2.112
from ddclient.
Ok, upon further research I see issues #548 and #483 so the issue appears to be exactly as I described above, and should be fixed in 3.11.0_1 and above which use libcurl instead of custom request/response code.
The workaround for 3.10.0 is to include curl=yes
in the provider configuration.
from ddclient.
Upgrading to the new 3.11.2-1.fc39
resolved the issue without having to change any configuration.
from ddclient.
Related Issues (20)
- only ipv6 is not working for ddclient 3.10.0 (debian) HOT 2
- Add convenient support for Termux HOT 1
- Unable to update IPV6: `Use of uninitialized value in sprintf at /usr/bin/ddclient line 2160` HOT 2
- ddclient.conf permission issue HOT 26
- curl cannot connect to https://myip.dnsomatic.com using IPv0 HOT 5
- Rework the Mythic Beasts implementation HOT 3
- usev6=ifv6 wouldn't work with protocol=nsupdate @ v3.11.2 HOT 10
- Deprecate the Infomaniak protocol - it now uses DynDns2
- Enhancement: Add '--version' option HOT 1
- Porkbun sub domain identification seems flawed for multiple subdomain levels HOT 4
- possible feature request: multiple web=somebody providers either as confirmation or as fallback? HOT 1
- https://domains.google.com/checkip will stop working HOT 6
- Review and improve ddclient help output HOT 1
- Support NS1
- ddclient v3.11.2/opnsense plugin os-ddclient v1.21 - ddclient updates GoDaddy DNS entry every 300s even if dynamic IP has not changed HOT 5
- Add help to write a config to update both IPV4 and IPV6 adresses. HOT 4
- ipv6 unsupported for no-ip HOT 1
- icanhazip.com broken on ipv4 IP updates HOT 6
- Add support for name.com provider please
- Help: celeros.de as ddns service
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from ddclient.