The following causes a ValueError in the create_connection convenience function import socket sock1 = socket.create_connection(('::1', '80')) sock2 = socket.create_connection(sock1.getpeername())
Also note that a regular socket.connect() call supports the full form address: >>> sock = socket.socket(socket.AF_INET6, socket.SOCK_STREAM) >>> sock.connect(('::1', 12345, 0, 0)) Matthew, are you interested in submitting a Github PR for this issue?
The naive change is to have the host, port tuple assignment use only the first two values from address. I can open a PR with that change (and update the docstring for the function) if that's the right change. For reference, the python socketpair implementation (if _socket is missing it) ignores flow_info and scope_id, but I'm not sure that's the right thing to do.
I think we still want the full tuple passed to connect(). We may want to truncate the tuple when used for other purposes. Le 07/12/2017 à 00:41, Matthew Stoltenberg a écrit : > > Matthew Stoltenberg <d3matt@gmail.com> added the comment: > > The naive change is to have the host, port tuple assignment use only the first two values from address. I can open a PR with that change (and update the docstring for the function) if that's the right change. For reference, the python socketpair implementation (if _socket is missing it) ignores flow_info and scope_id, but I'm not sure that's the right thing to do. > > ---------- > > _______________________________________ > Python tracker <report@bugs.python.org> > <https://bugs.python.org/issue32224> > _______________________________________ >