|Version 2 (modified by 6 years ago) (diff),|
IReactorTCP.connectTCP will be extended with these (backwards compatible) changes:
- An IPv6 address literal, optionally(?) with a percent-embedded scopeid will be allowed as the value of the
bindAddressparameter will accept 4-tuples. The first element is an address like the above, the other three are port number, flow info, and scope id.
bindAddressvalues shouldn't be tuples but should be nice structured objects instead)
hostis IPv6, bindAddress must be as well, and vice versa.
IReactorTCP.listenTCP will be extended with these (backwards compatible) changes:
interfacewill accept an ipv6 address literal value like the one described above
- The default listen address will still be INADDR_ANY (this is a non-change; pass "::" if you want IPv6 servers, or see the high level APIs)
IReactorUDP.listenUDP will be extended in an analogous way to
- For UDP ports listening on ipv6 addresses only, will be extended to accept a value for
addrwhich is a 4-tuple like the one described above.
leaveGroup are similarly extended.
setOutgoingInterface, who knows?
For the APIs mentioned above which can accept hostnames instead of IP address literals, no IPv6 name resolution (hosts file, dns, etc) will be attempted when a hostname is supplied.
HostnameClientEndpoint. This endpoint takes a hostname and a port
number. The hostname is resolved using
getaddrinfo (#4362) and a connection
attempted to each address (perhaps serially, perhaps concurrently, perhaps
concurrently with a staggered start) and stops after a connection attempt
succeeds. Internally this will find an IPv4 or IPv6 address to try and then
pass it to
AllLocalInterfacesServerEndpoint. This endpoint binds to all local
interfaces on some port and returns an aggregate
that can deal with the multiple underlying ports.