Commit 954900a3 authored by bggardner's avatar bggardner Committed by Benjamin Peterson

closes bpo-37405: Make socket.getsockname() always return a tuple for AF_CAN. (GH-14392)

This fixes a regression from 3.5. In recent releases, `getsockname()` in the AF_CAN case has returned a string.
parent 64535fc6
...@@ -1948,7 +1948,9 @@ class BasicCANTest(unittest.TestCase): ...@@ -1948,7 +1948,9 @@ class BasicCANTest(unittest.TestCase):
def testBindAny(self): def testBindAny(self):
with socket.socket(socket.PF_CAN, socket.SOCK_RAW, socket.CAN_RAW) as s: with socket.socket(socket.PF_CAN, socket.SOCK_RAW, socket.CAN_RAW) as s:
s.bind(('', )) address = ('', )
s.bind(address)
self.assertEqual(s.getsockname(), address)
def testTooLongInterfaceName(self): def testTooLongInterfaceName(self):
# most systems limit IFNAMSIZ to 16, take 1024 to be sure # most systems limit IFNAMSIZ to 16, take 1024 to be sure
......
Fixed regression bug for socket.getsockname() for non-CAN_ISOTP AF_CAN
address family sockets by returning a 1-tuple instead of string.
...@@ -1563,7 +1563,7 @@ makesockaddr(SOCKET_T sockfd, struct sockaddr *addr, size_t addrlen, int proto) ...@@ -1563,7 +1563,7 @@ makesockaddr(SOCKET_T sockfd, struct sockaddr *addr, size_t addrlen, int proto)
#endif /* CAN_ISOTP */ #endif /* CAN_ISOTP */
default: default:
{ {
return Py_BuildValue("O&", PyUnicode_DecodeFSDefault, return Py_BuildValue("(O&)", PyUnicode_DecodeFSDefault,
ifname); ifname);
} }
} }
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment