Fixed copyright notice for python library wrapper: now it shows the correct License
[vde.git] / vde-2 / src / lib / python / vdeplug_python.c
blob8900b75470d31f7f9bfc856c5277da3299303858
1 /*
2 * LibVdePlug/python wrapper
3 * Copyright © 2010 Daniele Lacamera
5 * Released under the terms of GNU LGPL v. 2.1
6 * (see COPYING.libvdeplug in the main project directory)
8 */
9 #include "Python.h"
10 #include <stdio.h>
11 #include "libvdeplug.h"
14 static PyObject *vdeplug_open(PyObject *self, PyObject *args)
16 struct vde_open_args vde_args = {0,NULL,0};
17 char *vde_sock = NULL, *vde_descr = NULL;
18 VDECONN *ret;
19 int e;
21 if (!PyArg_ParseTuple(args, "ss|isi", &vde_sock, &vde_descr, &vde_args.port, &vde_args.group, &vde_args.mode))
22 goto failure;
24 ret = vde_open_real(vde_sock, vde_descr, 1, &vde_args);
25 e = errno;
26 if (!ret)
27 goto failure;
28 else
29 return PyLong_FromUnsignedLong((unsigned long) ret);
32 failure:
33 return PyErr_SetFromErrno(PyExc_RuntimeError);
36 static PyObject *vdeplug_ctlfd(PyObject *self, PyObject *args)
38 VDECONN *conn;
39 unsigned long vde_magic = 0;
41 if (!PyArg_ParseTuple(args, "k", &vde_magic))
42 goto failure;
43 conn = (VDECONN *) vde_magic;
45 if (!conn)
46 goto failure;
48 return Py_BuildValue("i", vde_ctlfd(conn));
50 failure:
51 return PyErr_SetFromErrno(PyExc_RuntimeError);
54 static PyObject *vdeplug_datafd(PyObject *self, PyObject *args)
56 VDECONN *conn;
57 unsigned long vde_magic = 0;
59 if (!PyArg_ParseTuple(args, "k", &vde_magic))
60 goto failure;
61 conn = (VDECONN *) vde_magic;
63 if (!conn)
64 goto failure;
66 return Py_BuildValue("i", vde_datafd(conn));
68 failure:
69 return PyErr_SetFromErrno(PyExc_RuntimeError);
72 static PyObject *vdeplug_close(PyObject *self, PyObject *args)
74 VDECONN *conn;
75 unsigned long vde_magic = 0;
77 if (!PyArg_ParseTuple(args, "k", &vde_magic))
78 goto failure;
79 conn = (VDECONN *) vde_magic;
81 if (!conn)
82 goto failure;
84 return Py_BuildValue("i", vde_close(conn));
86 failure:
87 return PyErr_SetFromErrno(PyExc_RuntimeError);
92 static PyMethodDef vdeplug_methods[] = {
93 {"open", vdeplug_open, METH_VARARGS},
94 {"ctlfd", vdeplug_ctlfd, METH_VARARGS},
95 {"datafd", vdeplug_datafd, METH_VARARGS},
96 {"close", vdeplug_close, METH_VARARGS},
97 {NULL, NULL} /* Sentinel */
100 void initvdeplug_python(void)
102 (void) Py_InitModule("vdeplug_python", vdeplug_methods);
103 // PyErr_SetString(PyExc_RuntimeError,"vdeplug error");