[pypy-svn] r26575 - in pypy/dist/pypy: module/_socket rpython/rctypes/socketmodule

arigo at codespeak.net arigo at codespeak.net
Sat Apr 29 14:07:48 CEST 2006


Author: arigo
Date: Sat Apr 29 14:07:47 2006
New Revision: 26575

Modified:
   pypy/dist/pypy/module/_socket/interp_socket.py
   pypy/dist/pypy/rpython/rctypes/socketmodule/_socket.py
   pypy/dist/pypy/rpython/rctypes/socketmodule/ctypes_socket.py
Log:
Some small progress to make _socket compile.


Modified: pypy/dist/pypy/module/_socket/interp_socket.py
==============================================================================
--- pypy/dist/pypy/module/_socket/interp_socket.py	(original)
+++ pypy/dist/pypy/module/_socket/interp_socket.py	Sat Apr 29 14:07:47 2006
@@ -102,12 +102,12 @@
 def w_get_socketherror(space, message, errno=-1):
     w_module = space.getbuiltinmodule('_socket')
     w_errortype = space.getattr(w_module, space.wrap('herror'))
-    if errno > -1:
-        if message is None:
-            message = _c.hstrerror(errno)
-        return OperationError(w_errortype, space.newtuple([space.wrap(errno), space.wrap(message)]))
-    else:
-        return OperationError(w_errortype, space.wrap(message))
+    #if errno > -1:
+    #    if message is None:
+    #        message = _c.hstrerror(errno)
+    #    return OperationError(w_errortype, space.newtuple([space.wrap(errno), space.wrap(message)]))
+    #else:
+    return OperationError(w_errortype, space.wrap(message))
 
 def wrap_timeouterror(space):
 
@@ -151,7 +151,7 @@
     namebuff = ctypes.create_string_buffer(BUFFLEN)
     res = _c.gethostname(namebuff, BUFFLEN - 1)
     if res < 0:
-        raise w_get_socketerror(space, None, _c.errno.value)
+        raise w_get_socketerror(space, None, _c.geterrno())
     return space.wrap(namebuff.value)
 gethostname.unwrap_spec = [ObjSpace]
 
@@ -162,7 +162,7 @@
     """
     hostent = _c.gethostbyname(name)
     if not hostent:
-        raise  w_get_socketherror(space, None, _c.h_errno.value)
+        raise  w_get_socketherror(space, None) #, _c.h_errno.value)
     return space.wrap(hostent.contents.h_addr)
 gethostbyname.unwrap_spec = [ObjSpace, str]
 
@@ -180,7 +180,7 @@
 def common_gethost(space, hostent):
 
     if not hostent:
-        raise  w_get_socketherror(space, None, _c.h_errno.value)
+        raise  w_get_socketherror(space, None) #, _c.h_errno.value)
     aliases = []
     i = 0
     h_aliases = hostent.contents.h_aliases
@@ -209,7 +209,7 @@
     """
     hostent = _c.gethostbyname(name)
     if not hostent:
-        raise  w_get_socketherror(space, None, _c.h_errno.value)
+        raise  w_get_socketherror(space, None) #, _c.h_errno.value)
     p_addr = hostent.contents.h_addr_list[0]
 
     hostent = _c.gethostbyaddr(p_addr, _c.in_addr_size, _c.AF_INET)
@@ -269,7 +269,7 @@
 
     newfd = _c.dup(fd)
     if newfd < 0:
-        raise w_get_socketerror(space, None, _c.errno.value)
+        raise w_get_socketerror(space, None, _c.geterrno())
     if w_proto is None:
         return space.wrap(Socket(space, newfd, family, type))
     else:
@@ -298,7 +298,7 @@
     result = _c.socketpair_t()
     error = _c.socketpair(family, sock_type, proto, result)
     if error < 0:
-        raise w_get_socketerror(space, None, _c.errno.value)
+        raise w_get_socketerror(space, None, _c.geterrno())
     s0 = Socket(space, result[0], family, sock_type, proto)
     s1 = Socket(space, result[1], family, sock_type, proto)
     return space.newtuple([s0, s1])
@@ -728,7 +728,7 @@
               type=_c.SOCK_STREAM, proto=0):
     fd = _c.socket(family, type, proto)
     if fd < 0:
-        raise w_get_socketerror(space, None, _c.errno.value)
+        raise w_get_socketerror(space, None, _c.geterrno())
     # XXX If we want to support subclassing the socket type we will need
     # something along these lines. But allocate_instance is only defined
     # on the standard object space, so this is not really correct.
@@ -802,7 +802,7 @@
         newfd = _c.socketaccept(self.fd, peeraddr,
                                 _c.pointer(peeraddrlen))
         if newfd < 0:
-            raise w_get_socketerror(space, None, _c.errno.value)
+            raise w_get_socketerror(space, None, _c.geterrno())
         newsocket = Socket(space, newfd, self.family, self.type, self.proto)
         return space.newtuple([newsocket, w_makesockaddr(space, peeraddr, peeraddrlen.value, self.proto)])
     accept.unwrap_spec = ['self', ObjSpace]
@@ -817,7 +817,7 @@
         caddr_ptr, caddr_len = self._getsockaddr(space, w_addr)
         res = _c.socketbind(self.fd, caddr_ptr, caddr_len)
         if res < 0:
-            raise w_get_socketerror(space, None, _c.errno.value)
+            raise w_get_socketerror(space, None, _c.geterrno())
     bind.unwrap_spec = ['self', ObjSpace, W_Root]
 
     def close(self, space):
@@ -828,7 +828,7 @@
         if not self.closed:
             res = _c.close(self.fd)
             if res < 0:
-                errno = _c.errno.value
+                errno = _c.geterrno()
                 raise w_get_socketerror(space, None, errno)
             self.closed = True
     close.unwrap_spec = ['self', ObjSpace]
@@ -853,7 +853,7 @@
         sockaddr_ptr, sockaddr_len = self._getsockaddr(space, w_addr)
         err = _c.socketconnect(self.fd, sockaddr_ptr, sockaddr_len)
         if err:
-            errno = _c.errno.value
+            errno = _c.geterrno()
             if self.timeout > 0.0:
                 # XXX timeout doesn't really work at the moment
                 pass
@@ -871,7 +871,7 @@
         """
         newfd = _c.dup(self.fd)
         if newfd < 0:
-            raise w_get_socketerror(space, None, _c.errno.value)
+            raise w_get_socketerror(space, None, _c.geterrno())
         return Socket(space, newfd, self.family, self.type, self.proto)
 
     dup.unwrap_spec = ['self', ObjSpace]
@@ -899,7 +899,7 @@
         res = _c.socketgetpeername(self.fd, peeraddr,
                                    ctypes.pointer(peeraddrlen))
         if res < 0:
-            raise w_get_socketerror(space, None, _c.errno.value)
+            raise w_get_socketerror(space, None, _c.geterrno())
         return w_makesockaddr(space, peeraddr, peeraddrlen.value, self.proto)
     getpeername.unwrap_spec = ['self', ObjSpace]
 
@@ -914,7 +914,7 @@
         res = _c.socketgetsockname(self.fd, peeraddr,
                                    ctypes.pointer(peeraddrlen))
         if res < 0:
-            raise w_get_socketerror(space, None, _c.errno.value)
+            raise w_get_socketerror(space, None, _c.geterrno())
         return w_makesockaddr(space, peeraddr, peeraddrlen.value, self.proto)
     getsockname.unwrap_spec = ['self', ObjSpace]
 
@@ -926,19 +926,21 @@
         string of that length; otherwise it is an integer.
         """
         if w_buffersize is not None:
-            c_buffersize = _c.c_int(space.int_w(w_buffersize))
-            buffer = ctypes.create_string_buffer(c_buffersize.value)
+            buffersize = space.int_w(w_buffersize)
+            c_buffersize = _c.socklen_t(buffersize)
+            buffer = ctypes.create_string_buffer(buffersize)
             err = _c.socketgetsockopt(self.fd, level, option, buffer,
                                 ctypes.pointer(c_buffersize))
             if err:
-                raise w_get_socketerror(space, None, _c.errno.value)
+                raise w_get_socketerror(space, None, _c.geterrno())
             return space.wrap(buffer[:c_buffersize.value])
         # Assume integer option
         optval = _c.c_int()
+        optlen = _c.socklen_t(_c.c_int_size)
         err = _c.socketgetsockopt(self.fd, level, option, _c.pointer(optval),
-                            _c.c_int_size)
+                                  ctypes.pointer(optlen))
         if err:
-            raise w_get_socketerror(space, None, _c.errno.value)
+            raise w_get_socketerror(space, None, _c.geterrno())
         return space.wrap(optval.value)
     getsockopt.unwrap_spec = ['self', ObjSpace, int, int, W_Root]
 
@@ -953,7 +955,7 @@
             backlog = 1
         res = _c.socketlisten(self.fd, backlog)
         if res == -1:
-            raise w_get_socketerror(space, None, _c.errno.value)
+            raise w_get_socketerror(space, None, _c.geterrno())
     listen.unwrap_spec = ['self', ObjSpace, int]
 
     def makefile(self, space, w_mode='r', w_buffsize=-1):
@@ -971,7 +973,7 @@
         buf = _c.create_string_buffer(buffersize)
         read_bytes = _c.socketrecv(self.fd, buf, buffersize, flags)
         if read_bytes < 0:
-            raise w_get_socketerror(space, None, _c.errno.value)
+            raise w_get_socketerror(space, None, _c.geterrno())
         return space.wrap(buf[:read_bytes])
         
     recv.unwrap_spec = ['self', ObjSpace, int, int]
@@ -987,7 +989,7 @@
                                  _c.pointer(sockaddr), _c.sockaddr_size)
         w_addr = w_makesockaddr(space, _c.pointer(sockaddr), _c.sockaddr_size, self.proto)
         if read_bytes < 0:
-            raise w_get_socketerror(space, None, _c.errno.value)
+            raise w_get_socketerror(space, None, _c.geterrno())
         return space.newtuple([space.wrap(buf[:read_bytes]), w_addr])
     recvfrom.unwrap_spec = ['self', ObjSpace, int, int]
 
@@ -1000,7 +1002,7 @@
         """
         res = _c.send(self.fd, data, len(data), flags)
         if res < 0:
-            raise w_get_socketerror(space, None, _c.errno.value)
+            raise w_get_socketerror(space, None, _c.geterrno())
         return space.wrap(res)
     send.unwrap_spec = ['self', ObjSpace, str, int]
 
@@ -1015,7 +1017,7 @@
         while data:
             res = _c.send(self.fd, data, len(data), flags)
             if res < 0:
-                raise w_get_socketerror(space, None, _c.errno.value)
+                raise w_get_socketerror(space, None, _c.geterrno())
             data = data[res:]
     sendall.unwrap_spec = ['self', ObjSpace, str, int]
 
@@ -1035,7 +1037,7 @@
             addr, addr_len = self._getsockaddr(space, w_param3)
         res = _c.sendto(self.fd, data, len(data), flags, addr, addr_len)
         if res < 0:
-            raise w_get_socketerror(space, None, _c.errno.value)
+            raise w_get_socketerror(space, None, _c.geterrno())
         return space.wrap(res)
     sendto.unwrap_spec = ['self', ObjSpace, str, W_Root, W_Root]
 
@@ -1106,7 +1108,7 @@
         """
         err = _c.shutdown(self.fd, how)
         if err:
-            raise w_get_socketerror(space, None, _c.errno.value)
+            raise w_get_socketerror(space, None, _c.geterrno())
         
     shutdown.unwrap_spec = ['self', ObjSpace, int]
 

Modified: pypy/dist/pypy/rpython/rctypes/socketmodule/_socket.py
==============================================================================
--- pypy/dist/pypy/rpython/rctypes/socketmodule/_socket.py	(original)
+++ pypy/dist/pypy/rpython/rctypes/socketmodule/_socket.py	Sat Apr 29 14:07:47 2006
@@ -19,7 +19,7 @@
         if _fd is None:
             self._fd = _c.socket(family, type, proto)
             if self._fd == -1:
-                raise error(_c.errno.value)
+                raise error(_c.geterrno())
         else:
             self._fd = _fd
             
@@ -38,7 +38,7 @@
         paddr = cast(pointer(caddr), _c.sockaddr_ptr)
         res = _c.socketbind(self._fd, paddr, sizeof(caddr))
         if res < 0:
-            raise error(_c.errno.value)
+            raise error(_c.geterrno())
 
     def _getsockaddr(self, addr):
         if self.family == AF_INET:
@@ -58,7 +58,7 @@
             backlog = 1
         res = _c.socketlisten(fd, backlog)
         if res == -1:
-            raise error(_c.errno.value)
+            raise error(_c.geterrno())
                     
     def accept(self):
         peeraddr = pointer(_c.sockaddr())
@@ -66,7 +66,7 @@
         newfd = _c.socketaccept(self._fd, peeraddr,
                                 pointer(peeraddrlen))
         if newfd < 0:
-            raise error(_c.errno.value)
+            raise error(_c.geterrno())
         newsocket = socket(self.family, self.type, self.proto, newfd)
         return (newsocket, makesockaddr(peeraddr, peeraddrlen, self.proto))
     
@@ -76,7 +76,7 @@
         result = _c.socketconnect(self._fd, paddr,
                                   _c.socklen_t(sizeof(caddr)))
         if result == -1:
-            return _c.errno.value
+            return _c.geterrno()
         return 0
     
     def dup(self):
@@ -91,7 +91,7 @@
         res = _c.socketgetpeername(self._fd, peeraddr,
                                    pointer(peeraddrlen))
         if res < 0:
-            raise error(_c.errno.value)
+            raise error(_c.geterrno())
         return makesockaddr(peeraddr, peeraddrlen, self.proto)
     
     def getsockname(self):
@@ -100,7 +100,7 @@
         res = _c.socketgetsockname(self._fd, peeraddr,
                                    pointer(peeraddrlen))
         if res < 0:
-            raise error(_c.errno.value)
+            raise error(_c.geterrno())
         return makesockaddr(peeraddr, peeraddrlen, self.proto)
     
     def getsockopt(self, level, optname, buflen=-1):

Modified: pypy/dist/pypy/rpython/rctypes/socketmodule/ctypes_socket.py
==============================================================================
--- pypy/dist/pypy/rpython/rctypes/socketmodule/ctypes_socket.py	(original)
+++ pypy/dist/pypy/rpython/rctypes/socketmodule/ctypes_socket.py	Sat Apr 29 14:07:47 2006
@@ -2,6 +2,7 @@
 import distutils
 from pypy.rpython.rctypes.tool import ctypes_platform
 from pypy.rpython.rctypes.tool import util      # ctypes.util from 0.9.9.6
+from pypy.rpython.rctypes.aerrno import geterrno
 from ctypes import *
 
 includes = ('sys/types.h',
@@ -188,7 +189,7 @@
 dup.argtypes = [c_int]
 dup.restype = c_int
 
-errno = c_int.in_dll(socketdll, 'errno')
+#errno = c_int.in_dll(socketdll, 'errno')
 
 strerror = socketdll.strerror
 strerror.argtypes = [c_int]
@@ -198,11 +199,11 @@
 gai_strerror.argtypes = [c_int]
 gai_strerror.restype = c_char_p
 
-h_errno = c_int.in_dll(socketdll, 'h_errno')
-
-hstrerror = socketdll.hstrerror
-hstrerror.argtypes = [c_int]
-hstrerror.restype = c_char_p
+#h_errno = c_int.in_dll(socketdll, 'h_errno')
+#
+#hstrerror = socketdll.hstrerror
+#hstrerror.argtypes = [c_int]
+#hstrerror.restype = c_char_p
 
 socket = socketdll.socket
 socket.argtypes = [c_int, c_int, c_int]



More information about the Pypy-commit mailing list