Author: Richard Plangger <[email protected]>
Branch: py3.5
Changeset: r88966:c7429885c9fc
Date: 2016-12-08 12:46 +0100
http://bitbucket.org/pypy/pypy/changeset/c7429885c9fc/

Log:    remove unwrap_spec of previously modified method, new test to check
        that socket bind takes a byte like object

diff --git a/pypy/module/_socket/interp_socket.py 
b/pypy/module/_socket/interp_socket.py
--- a/pypy/module/_socket/interp_socket.py
+++ b/pypy/module/_socket/interp_socket.py
@@ -89,6 +89,8 @@
 def addr_from_object(family, fd, space, w_address):
     if family == rsocket.AF_INET:
         w_host, w_port = space.unpackiterable(w_address, 2)
+        if space.isinstance_w(w_host, space.w_unicode):
+            pass
         host = space.str_w(w_host)
         port = space.int_w(w_port)
         port = make_ushort_port(space, port)
@@ -110,9 +112,11 @@
         return rsocket.INET6Address(host, port, flowinfo, scope_id)
     if rsocket.HAS_AF_UNIX and family == rsocket.AF_UNIX:
         # Not using space.fsencode_w since Linux allows embedded NULs.
+        import pdb; pdb.set_trace()
         if space.isinstance_w(w_address, space.w_unicode):
             w_address = space.fsencode(w_address)
-        return rsocket.UNIXAddress(space.bytes_w(w_address))
+        bytelike = space.arg_w('y*', w_address)
+        return rsocket.UNIXAddress(bytelike)
     if rsocket.HAS_AF_NETLINK and family == rsocket.AF_NETLINK:
         w_pid, w_groups = space.unpackiterable(w_address, 2)
         return rsocket.NETLINKAddress(space.uint_w(w_pid), 
space.uint_w(w_groups))
@@ -449,7 +453,6 @@
         except SocketError as e:
             raise converted_error(space, e)
 
-    @unwrap_spec(data='buffer')
     def sendto_w(self, space, w_data, w_param2, w_param3=None):
         """sendto(data[, flags], address) -> count
 
diff --git a/pypy/module/_socket/test/test_sock_app.py 
b/pypy/module/_socket/test/test_sock_app.py
--- a/pypy/module/_socket/test/test_sock_app.py
+++ b/pypy/module/_socket/test/test_sock_app.py
@@ -884,6 +884,11 @@
         os.close(fileno)
         cli.close()
 
+    def test_bytearray_name(self):
+        import _socket as socket
+        s = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
+        s.bind(bytearray(b"\x00python\x00test\x00"))
+        assert s.getsockname() == b"\x00python\x00test\x00"
 
 class AppTestErrno:
     spaceconfig = {'usemodules': ['_socket', 'select']}
_______________________________________________
pypy-commit mailing list
[email protected]
https://mail.python.org/mailman/listinfo/pypy-commit

Reply via email to