investigating this more, twisted's handling of ipv6 is fundamentally broken in some bad ways:
1) it allows "2001:db8::1:80" as an IP/Port combination, deciding that what you meant is [2001:db8::1]:80, rather than the default port on 2001:db8::1:80. 2001:db8::1:7f, on the other hand, means "default port on 2001:db8::1:7f.
2) if I have a hostname, it requires me to guess whether that will resolve to A or AAAA records, since I have to tell it which socket to create before I even know the answer (unless I look it up myself.)
2.1) Having said that, TCPClient doesn't even believe in ipv6 at all, as noted above.
investigating this more, twisted's handling of ipv6 is fundamentally broken in some bad ways:
1) it allows "2001:db8::1:80" as an IP/Port combination, deciding that what you meant is [2001:db8::1]:80, rather than the default port on 2001:db8::1:80. 2001:db8::1:7f, on the other hand, means "default port on 2001:db8::1:7f.
2) if I have a hostname, it requires me to guess whether that will resolve to A or AAAA records, since I have to tell it which socket to create before I even know the answer (unless I look it up myself.)
2.1) Having said that, TCPClient doesn't even believe in ipv6 at all, as noted above.