Dolda2000 GitWeb
/
ashd.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
Document and install psendfile.
[ashd.git]
/
python
/
htp.c
diff --git
a/python/htp.c
b/python/htp.c
index
0405809
..
33c0361
100644
(file)
--- a/
python/htp.c
+++ b/
python/htp.c
@@
-19,8
+19,8
@@
#include <Python.h>
#include <errno.h>
#include <Python.h>
#include <errno.h>
-#include <utils.h>
-#include <proc.h>
+#include <
ashd/
utils.h>
+#include <
ashd/
proc.h>
static PyObject *p_recvfd(PyObject *self, PyObject *args)
{
static PyObject *p_recvfd(PyObject *self, PyObject *args)
{
@@
-32,7
+32,10
@@
static PyObject *p_recvfd(PyObject *self, PyObject *args)
fd = 0;
if(!PyArg_ParseTuple(args, "|i", &fd))
return(NULL);
fd = 0;
if(!PyArg_ParseTuple(args, "|i", &fd))
return(NULL);
- if((ret = recvfd(fd, &data, &dlen)) < 0) {
+ Py_BEGIN_ALLOW_THREADS;
+ ret = recvfd(fd, &data, &dlen);
+ Py_END_ALLOW_THREADS;
+ if(ret < 0) {
if(errno == 0)
return(Py_BuildValue("OO", Py_None, Py_None));
PyErr_SetFromErrno(PyExc_OSError);
if(errno == 0)
return(Py_BuildValue("OO", Py_None, Py_None));
PyErr_SetFromErrno(PyExc_OSError);
@@
-45,7
+48,7
@@
static PyObject *p_recvfd(PyObject *self, PyObject *args)
static PyObject *p_sendfd(PyObject *self, PyObject *args)
{
static PyObject *p_sendfd(PyObject *self, PyObject *args)
{
- int sock, fd;
+ int sock, fd
, ret
;
PyObject *data;
if(!PyArg_ParseTuple(args, "iiO", &sock, &fd, &data))
PyObject *data;
if(!PyArg_ParseTuple(args, "iiO", &sock, &fd, &data))
@@
-54,7
+57,10
@@
static PyObject *p_sendfd(PyObject *self, PyObject *args)
PyErr_SetString(PyExc_TypeError, "datagram must be a string");
return(NULL);
}
PyErr_SetString(PyExc_TypeError, "datagram must be a string");
return(NULL);
}
- if(sendfd(sock, fd, PyString_AsString(data), PyString_Size(data)) < 0) {
+ Py_BEGIN_ALLOW_THREADS;
+ ret = sendfd(sock, fd, PyString_AsString(data), PyString_Size(data));
+ Py_END_ALLOW_THREADS;
+ if(ret < 0) {
PyErr_SetFromErrno(PyExc_OSError);
return(NULL);
}
PyErr_SetFromErrno(PyExc_OSError);
return(NULL);
}