socket_mode Connection: Add support for IPv6 #1036
Merged
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Summary
The current implementation uses hardcoded AF_INET (IPv4) family and a first DNS record for connection. This doesn't work in IPv6-only environments (via NAT64):
This is fixed here by switching to the
socket.create_connection
function, which correctly handles IPv4+IPv6 families and additionally iterates through all DNS records until the connection is made.Category (place an
x
in each of the[ ]
)/docs-src
(Documents, have you run./docs.sh
?)/docs-src-v2
(Documents, have you run./docs-v2.sh
?)/tutorial
(PythOnBoardingBot tutorial)tests
/integration_tests
(Automated tests for this library)Requirements (place an
x
in each[ ]
)python setup.py validate
after making the changes. [Some e2e tests don't pass with aConnectionResetError: [Errno 54] Connection reset by peer
error]