paramiko does not try all available address families
Affects | Status | Importance | Assigned to | Milestone | |
---|---|---|---|---|---|
Bazaar |
Invalid
|
Medium
|
Unassigned | ||
paramiko |
New
|
Undecided
|
Unassigned |
Bug Description
See failure at <http://
The situation is a server that is listening on an IPv4 address only, but that host/interface has both IPv4 and IPv6 connectivity, and getaddinfo returns the IPv6 result before the IPv4. bzr asks paramiko to connect to the right (host,port) pair by calling paramiko.Transport.
What should happen is that paramiko should successfully connect to the server.
What does happen is that paramiko attempts to connect via IPv6, that fails with connection refused, and paramiko stops there with a connection refused error.
We can workaround this in bzr by connecting the socket ourselves and passing that object instead of an address to paramiko.
Related branches
- Steve Kowalik: Approve
-
Diff: 857 lines (+828/-0)5 files modifieddebian/changelog (+15/-0)
debian/patches/01_no-randompool.patch (+780/-0)
debian/patches/02_addressfamilies.patch (+30/-0)
debian/patches/series (+2/-0)
debian/source/format (+1/-0)
Btw, see the socket. create_ connection function from the Python 2.6 standard library for the right way to handle this situation.