Dolda2000 GitWeb
/
ashd.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
python: Converted ashd.htlib to Python 3 API.
[ashd.git]
/
python
/
htp.c
diff --git
a/python/htp.c
b/python/htp.c
index
e31528e
..
ec4ebab
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)
{
@@
-41,7
+41,7
@@
static PyObject *p_recvfd(PyObject *self, PyObject *args)
PyErr_SetFromErrno(PyExc_OSError);
return(NULL);
}
PyErr_SetFromErrno(PyExc_OSError);
return(NULL);
}
- ro = Py_BuildValue("Ni", Py
String
_FromStringAndSize(data, dlen), ret);
+ ro = Py_BuildValue("Ni", Py
Bytes
_FromStringAndSize(data, dlen), ret);
free(data);
return(ro);
}
free(data);
return(ro);
}
@@
-49,17
+49,14
@@
static PyObject *p_recvfd(PyObject *self, PyObject *args)
static PyObject *p_sendfd(PyObject *self, PyObject *args)
{
int sock, fd, ret;
static PyObject *p_sendfd(PyObject *self, PyObject *args)
{
int sock, fd, ret;
- Py
Object *
data;
+ Py
_buffer
data;
- if(!PyArg_ParseTuple(args, "ii
O
", &sock, &fd, &data))
+ if(!PyArg_ParseTuple(args, "ii
y*
", &sock, &fd, &data))
return(NULL);
return(NULL);
- if(!PyString_Check(data)) {
- PyErr_SetString(PyExc_TypeError, "datagram must be a string");
- return(NULL);
- }
Py_BEGIN_ALLOW_THREADS;
Py_BEGIN_ALLOW_THREADS;
- ret = sendfd(sock, fd,
PyString_AsString(data), PyString_Size(data)
);
+ ret = sendfd(sock, fd,
data.buf, data.len
);
Py_END_ALLOW_THREADS;
Py_END_ALLOW_THREADS;
+ PyBuffer_Release(&data);
if(ret < 0) {
PyErr_SetFromErrno(PyExc_OSError);
return(NULL);
if(ret < 0) {
PyErr_SetFromErrno(PyExc_OSError);
return(NULL);
@@
-73,7
+70,14
@@
static PyMethodDef methods[] = {
{NULL, NULL, 0, NULL}
};
{NULL, NULL, 0, NULL}
};
-PyMODINIT_FUNC inithtlib(void)
+static struct PyModuleDef module = {
+ PyModuleDef_HEAD_INIT,
+ .m_name = "htlib",
+ .m_size = -1,
+ .m_methods = methods,
+};
+
+PyMODINIT_FUNC PyInit_htlib(void)
{
{
-
Py_InitModule("ashd.htlib", methods
);
+
return(PyModule_Create(&module)
);
}
}