1
# Copyright (c) 2008 Twisted Matrix Laboratories.
2
# See LICENSE for details.
5
def accept(long listening, long accepting, object buff, object obj):
6
cdef unsigned long bytes
11
PyObject_AsWriteBuffer(buff, &mem_buffer, &size)
15
ov.obj = <PyObject *>obj
17
rc = lpAcceptEx(listening, accepting, mem_buffer, 0, size / 2, size / 2,
18
&bytes, <OVERLAPPED *>ov)
20
rc = WSAGetLastError()
21
if rc != ERROR_IO_PENDING:
24
# operation is in progress
28
def get_accept_addrs(long s, object buff):
29
cdef WSAPROTOCOL_INFO wsa_pi
30
cdef int size, locallen, remotelen
32
cdef sockaddr *localaddr, *remoteaddr
34
PyObject_AsReadBuffer(buff, &mem_buffer, &size)
36
lpGetAcceptExSockaddrs(mem_buffer, 0, size / 2, size / 2, &localaddr, &locallen, &remoteaddr, &remotelen)
37
return remoteaddr.sa_family, _makesockaddr(localaddr, locallen), _makesockaddr(remoteaddr, remotelen)