summaryrefslogtreecommitdiffstats
path: root/contrib/tools/python3/Lib/socket.py
diff options
context:
space:
mode:
Diffstat (limited to 'contrib/tools/python3/Lib/socket.py')
-rw-r--r--contrib/tools/python3/Lib/socket.py28
1 files changed, 16 insertions, 12 deletions
diff --git a/contrib/tools/python3/Lib/socket.py b/contrib/tools/python3/Lib/socket.py
index 35d87eff34d..55644bd4c17 100644
--- a/contrib/tools/python3/Lib/socket.py
+++ b/contrib/tools/python3/Lib/socket.py
@@ -634,18 +634,22 @@ def _fallback_socketpair(family=AF_INET, type=SOCK_STREAM, proto=0):
# Authenticating avoids using a connection from something else
# able to connect to {host}:{port} instead of us.
# We expect only AF_INET and AF_INET6 families.
- try:
- if (
- ssock.getsockname() != csock.getpeername()
- or csock.getsockname() != ssock.getpeername()
- ):
- raise ConnectionError("Unexpected peer connection")
- except:
- # getsockname() and getpeername() can fail
- # if either socket isn't connected.
- ssock.close()
- csock.close()
- raise
+ #
+ # Note that we skip this on WASI because on that platorm the client socket
+ # may not have finished connecting by the time we've reached this point (gh-146139).
+ if sys.platform != "wasi":
+ try:
+ if (
+ ssock.getsockname() != csock.getpeername()
+ or csock.getsockname() != ssock.getpeername()
+ ):
+ raise ConnectionError("Unexpected peer connection")
+ except:
+ # getsockname() and getpeername() can fail
+ # if either socket isn't connected.
+ ssock.close()
+ csock.close()
+ raise
return (ssock, csock)