fdsend(SOCK, FILE, BUFFER) -> RC:
send FILE over Unix-domain socket SOCK, along with BUFFER
"""
- cdef void *p
+ cdef const void *p
cdef Py_ssize_t len
cdef int rc
- PyObject_AsReadBuffer(buffer, <cvp *>&p, &len)
+ PyObject_AsReadBuffer(buffer, &p, &len)
rc = fdpass_send(_getfd(sock), _getfd(file), p, len)
if rc < 0:
_oserror()
return rc
-def fdrecv(sock, unsigned size):
+def fdrecv(sock, size_t size):
"""
fdrecv(SOCK, SIZE) -> FD, BUFFER
receive file FD and BUFFER of length up to SIZE from Unix-domain SOCK
cdef Py_ssize_t len
cdef PyObject *obj
cdef int fd
- buf = PyString_FromStringAndSize(NULL, size)
- p = PyString_AS_STRING(buf)
- len = fdpass_recv(_getfd(sock), &fd, p, size)
+ buf = BIN_FROMSTRLEN(NULL, size)
+ len = fdpass_recv(_getfd(sock), &fd, BIN_PTR(buf), size)
if len < 0:
_oserror()
- obj = <PyObject *>buf
- _PyString_Resize(&obj, len)
- return fd, <object>obj
+ BIN_SETLEN(buf, len)
+ return fd, buf
###----- That's all, folks --------------------------------------------------