Issue #12996: multiprocessing.connection: transmit the header in network byte
order (endpoints machines can have different endianness).
diff --git a/Lib/multiprocessing/connection.py b/Lib/multiprocessing/connection.py
index ae2d135..13d3d77 100644
--- a/Lib/multiprocessing/connection.py
+++ b/Lib/multiprocessing/connection.py
@@ -422,7 +422,7 @@
def _send_bytes(self, buf):
# For wire compatibility with 3.2 and lower
n = len(buf)
- self._send(struct.pack("=i", len(buf)))
+ self._send(struct.pack("!i", n))
# The condition is necessary to avoid "broken pipe" errors
# when sending a 0-length buffer if the other end closed the pipe.
if n > 0:
@@ -430,7 +430,7 @@
def _recv_bytes(self, maxsize=None, sentinels=()):
buf = self._recv(4, sentinels)
- size, = struct.unpack("=i", buf.getvalue())
+ size, = struct.unpack("!i", buf.getvalue())
if maxsize is not None and size > maxsize:
return None
return self._recv(size, sentinels)