Running dns/ddclient on recent 12-CURRENT (FreeBSD 12.0-ALPHA5 #32 r338541: Sun Sep 9 09:27:47 CEST 2018 amd64) with ports recently update (ports tree is at Revision: 479281), the command ddclient -query results in use=if, if=igb0 address is fe80::20e:b7ee:fe42:1130 use=if, if=igb1 address is fe80::20e:b7ee:fe42:1131 use=if, if=igb2 address is fe80::20e:b7ee:fe42:1132 use=if, if=lo0 address is 127.0.0.1 WARNING: found neither ipv4 nor ipv6 address use=if, if=enc0 address is NOT FOUND use=if, if=igb1.1000 address is 192.178.0.1 use=if, if=igb1.2 address is 192.178.2.1 use=if, if=igb1.3 address is 192.178.3.1 use=if, if=igb1.10 address is 192.178.10.1 use=if, if=igb1.66 address is 192.178.66.1 use=if, if=igb1.100 address is 192.178.100.1 WARNING: found neither ipv4 nor ipv6 address use=if, if=ipfw0 address is NOT FOUND use=if, if=tun0 address is XXX.XXX.XXX.XXX WARNING: found neither ipv4 nor ipv6 address use=web, web=dnspark address is NOT FOUND use=web, web=dyndns address is XXX.XXX.XXX.XXX use=web, web=loopia address is XXX.XXX.XXX.XXX This is embarrassing! Each VLAN interface (igb1.1000 for instance) has also a link-local IPv6 address and my exterior (ppp configured) interface, tun0, even gets a IPv6 through my ISP. But those IPv6 addresses are not recognised as the query shows clearly, but some do.
Does the code in https://sourceforge.net/p/ddclient/discussion/399428/thread/d864753b/ fix this problem?
Reporter feedback please!
@Mintainer, if this this is a known issue with an upstream patch/commit already committed, or confirmed to address this issue, please create a patch against the port such that it can be evaluated directly by port users Thanks!
Still an issue?
It is still an issue, but I believe this PR should be closed, as the limitation is in the upstream code: https://github.com/ddclient/ddclient/blob/master/docs/ipv6-design-doc.md I spent some time looking at the code, as shipped in 3.9.1. ipv6_match() expects the IPv6 address to have uppercase A-F, but ifconfig returns a-f. I changed the regex to match a-f, but that doesn't get us any further. The function that calls ipv6_match -- get_ip -- only returns the first address from each interface, so ipv6_match won't get called if get_ip finds an IPv4 address first. Upstream is working on adding proper IPv6 support.
Closing this as requested by maintainer This is a limitation of upstream code