From: Charles-François Natali Date: Tue, 20 Sep 2011 17:27:39 +0000 (+0200) Subject: Issue #12996: multiprocessing.connection: transmit the header in network byte X-Git-Tag: v3.3.0a1~1519 X-Git-Url: http://git.ipfire.org/gitweb.cgi?a=commitdiff_plain;h=225aa4f8ec1d98a244f863ee5257a750926a494e;p=thirdparty%2FPython%2Fcpython.git 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 ae2d135e034b..13d3d777f2ec 100644 --- a/Lib/multiprocessing/connection.py +++ b/Lib/multiprocessing/connection.py @@ -422,7 +422,7 @@ class Connection(_ConnectionBase): 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 @@ class Connection(_ConnectionBase): 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)