[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