X-Git-Url: http://www.dolda2000.com/gitweb/?p=ashd.git;a=blobdiff_plain;f=python%2Fhtp.c;h=33c03613f7b9f2919677ffb9671c16077a186880;hp=ec4ebabce26d0ebe36f008c7e87f27a0aea4bd82;hb=173e0e9efec5ae690cc157fe238113fcd814895e;hpb=188cd02daf85ef68a832deab4fcbf0daaf2d4573 diff --git a/python/htp.c b/python/htp.c index ec4ebab..33c0361 100644 --- a/python/htp.c +++ b/python/htp.c @@ -41,7 +41,7 @@ static PyObject *p_recvfd(PyObject *self, PyObject *args) PyErr_SetFromErrno(PyExc_OSError); return(NULL); } - ro = Py_BuildValue("Ni", PyBytes_FromStringAndSize(data, dlen), ret); + ro = Py_BuildValue("Ni", PyString_FromStringAndSize(data, dlen), ret); free(data); return(ro); } @@ -49,14 +49,17 @@ static PyObject *p_recvfd(PyObject *self, PyObject *args) static PyObject *p_sendfd(PyObject *self, PyObject *args) { int sock, fd, ret; - Py_buffer data; + PyObject *data; - if(!PyArg_ParseTuple(args, "iiy*", &sock, &fd, &data)) + if(!PyArg_ParseTuple(args, "iiO", &sock, &fd, &data)) return(NULL); + if(!PyString_Check(data)) { + PyErr_SetString(PyExc_TypeError, "datagram must be a string"); + return(NULL); + } Py_BEGIN_ALLOW_THREADS; - ret = sendfd(sock, fd, data.buf, data.len); + ret = sendfd(sock, fd, PyString_AsString(data), PyString_Size(data)); Py_END_ALLOW_THREADS; - PyBuffer_Release(&data); if(ret < 0) { PyErr_SetFromErrno(PyExc_OSError); return(NULL); @@ -70,14 +73,7 @@ static PyMethodDef methods[] = { {NULL, NULL, 0, NULL} }; -static struct PyModuleDef module = { - PyModuleDef_HEAD_INIT, - .m_name = "htlib", - .m_size = -1, - .m_methods = methods, -}; - -PyMODINIT_FUNC PyInit_htlib(void) +PyMODINIT_FUNC inithtlib(void) { - return(PyModule_Create(&module)); + Py_InitModule("ashd.htlib", methods); }