python: Moved the Python 3 files to their own directory and restored Python 2 files.
[ashd.git] / python / htp.c
index ec4ebab..33c0361 100644 (file)
@@ -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);
 }