X-Git-Url: https://git.octo.it/?p=rrdtool.git;a=blobdiff_plain;f=bindings%2Fpython%2Frrdtoolmodule.c;h=a2647b50f788f908e44571625581e617ce3a6ef3;hp=6cc22ad632eabaf17dbaad6f8040f3ac3960db3c;hb=c3d19fcc2618e9ab67067b4145eef9ba00bd6e72;hpb=ae63d5e69f892d180ee0ce5f3e424b4b4f79cbd8 diff --git a/bindings/python/rrdtoolmodule.c b/bindings/python/rrdtoolmodule.c index 6cc22ad..a2647b5 100644 --- a/bindings/python/rrdtoolmodule.c +++ b/bindings/python/rrdtoolmodule.c @@ -37,7 +37,9 @@ # define UNUSED(x) x #endif -static const char *__version__ = "$Revision: 1.14 $"; + +#include "../../rrd_config.h" +static const char *__version__ = PACKAGE_VERSION; #include "Python.h" #include "../../src/rrd_tool.h" @@ -466,6 +468,7 @@ static PyObject *PyDict_FromInfo( } if (val) { PyDict_SetItemString(r, data->key, val); + Py_DECREF(val); } data = data->next; } @@ -490,10 +493,13 @@ static PyObject *PyRRD_info( if ((data = rrd_info(argc, argv)) == NULL) { PyErr_SetString(ErrorObject, rrd_get_error()); rrd_clear_error(); - return NULL; + r = NULL; + } else { + r = PyDict_FromInfo(data); + rrd_info_free(data); } - r = PyDict_FromInfo(data); - rrd_info_free(data); + + destroy_args(&argv); return r; } @@ -515,10 +521,13 @@ static PyObject *PyRRD_graphv( if ((data = rrd_graph_v(argc, argv)) == NULL) { PyErr_SetString(ErrorObject, rrd_get_error()); rrd_clear_error(); - return NULL; + r = NULL; + } else { + r = PyDict_FromInfo(data); + rrd_info_free(data); } - r = PyDict_FromInfo(data); - rrd_info_free(data); + + destroy_args(&argv); return r; } @@ -540,18 +549,21 @@ static PyObject *PyRRD_updatev( if ((data = rrd_update_v(argc, argv)) == NULL) { PyErr_SetString(ErrorObject, rrd_get_error()); rrd_clear_error(); - return NULL; + r = NULL; + } else { + r = PyDict_FromInfo(data); + rrd_info_free(data); } - r = PyDict_FromInfo(data); - rrd_info_free(data); + + destroy_args(&argv); return r; } -static char PyRRD_flush__doc__[] = +static char PyRRD_flushcached__doc__[] = "flush(args..): flush RRD files from memory\n" " flush [--daemon address] file [file ...]"; -static PyObject *PyRRD_flush( +static PyObject *PyRRD_flushcached( PyObject UNUSED(*self), PyObject * args) { @@ -559,10 +571,10 @@ static PyObject *PyRRD_flush( int argc; char **argv; - if (create_args("flush", args, &argc, &argv) < 0) + if (create_args("flushcached", args, &argc, &argv) < 0) return NULL; - if (rrd_cmd_flush(argc, argv) != 0) { + if (rrd_flushcached(argc, argv) != 0) { PyErr_SetString(ErrorObject, rrd_get_error()); rrd_clear_error(); r = NULL; @@ -590,7 +602,7 @@ static PyMethodDef _rrdtool_methods[] = { meth("info", PyRRD_info, PyRRD_info__doc__), meth("graphv", PyRRD_graphv, PyRRD_graphv__doc__), meth("updatev", PyRRD_updatev, PyRRD_updatev__doc__), - meth("flush", PyRRD_flush, PyRRD_flush__doc__), + meth("flushcached", PyRRD_flushcached, PyRRD_flushcached__doc__), {NULL, NULL, 0, NULL} };