From: <ca...@us...> - 2008-07-22 06:47:18
|
Revision: 1593 http://ganglia.svn.sourceforge.net/ganglia/?rev=1593&view=rev Author: carenas Date: 2008-07-22 06:47:26 +0000 (Tue, 22 Jul 2008) Log Message: ----------- gmond: add support for PEP353 for python >= 2.5 Since 2.5 and in order to support large Dictionary objects in 64 bit architectures the index for PyDict_Next was changed from int to Py_ssize_t. mod_python.c: In function 'fill_metric_info': mod_python.c:337: warning: passing argument 2 of 'PyDict_Next' from incompatible pointer type A backward compatible define will map it back to "int" for older versions Modified Paths: -------------- trunk/monitor-core/gmond/modules/python/mod_python.c Modified: trunk/monitor-core/gmond/modules/python/mod_python.c =================================================================== --- trunk/monitor-core/gmond/modules/python/mod_python.c 2008-07-22 05:43:18 UTC (rev 1592) +++ trunk/monitor-core/gmond/modules/python/mod_python.c 2008-07-22 06:47:26 UTC (rev 1593) @@ -49,6 +49,12 @@ #include <dirent.h> #include <sys/stat.h> +/* + * Backward compatibility for 2.3 and 2.4 + */ +#if PY_MINOR_VERSION < 5 +#define Py_ssize_t int +#endif /* * Declare ourselves so the configuration routines can find and know us. @@ -322,7 +328,8 @@ { char *metric_name = ""; PyObject *key, *value; - int pos = 0, ret; + Py_ssize_t pos = 0; + int ret; char strkey[1024], strvalue[1024]; memset(minfo, 0, sizeof(*minfo)); This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <ca...@us...> - 2008-07-26 07:05:58
|
Revision: 1596 http://ganglia.svn.sourceforge.net/ganglia/?rev=1596&view=rev Author: carenas Date: 2008-07-26 07:06:06 +0000 (Sat, 26 Jul 2008) Log Message: ----------- gmond: add support for python < 2.3 fallback to use plain PyInt_AsLong if older than 2.3 Modified Paths: -------------- trunk/monitor-core/gmond/modules/python/mod_python.c Modified: trunk/monitor-core/gmond/modules/python/mod_python.c =================================================================== --- trunk/monitor-core/gmond/modules/python/mod_python.c 2008-07-23 08:31:54 UTC (rev 1595) +++ trunk/monitor-core/gmond/modules/python/mod_python.c 2008-07-26 07:06:06 UTC (rev 1596) @@ -50,11 +50,14 @@ #include <sys/stat.h> /* - * Backward compatibility for 2.3 and 2.4 + * Backward compatibility for 2.1 to 2.4 */ #if PY_MINOR_VERSION < 5 #define Py_ssize_t int +#if PY_MINOR_VERSION < 3 +#define PyInt_AsUnsignedLongMask PyInt_AsLong #endif +#endif /* * Declare ourselves so the configuration routines can find and know us. This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <bni...@us...> - 2008-09-30 17:53:20
|
Revision: 1840 http://ganglia.svn.sourceforge.net/ganglia/?rev=1840&view=rev Author: bnicholes Date: 2008-09-30 17:53:02 +0000 (Tue, 30 Sep 2008) Log Message: ----------- Change the way that the python module path is being added to better support the Solaris platform. Submitted by: Gilad Raphaelli <graphaelli yahoo com> Modified Paths: -------------- trunk/monitor-core/gmond/modules/python/mod_python.c Modified: trunk/monitor-core/gmond/modules/python/mod_python.c =================================================================== --- trunk/monitor-core/gmond/modules/python/mod_python.c 2008-09-29 09:55:30 UTC (rev 1839) +++ trunk/monitor-core/gmond/modules/python/mod_python.c 2008-09-30 17:53:02 UTC (rev 1840) @@ -96,20 +96,6 @@ static apr_array_header_t *metric_mapping_info = NULL; static apr_status_t pyth_metric_cleanup ( void *data); -static void set_python_path(const char* path) -{ - const char* p; - char pathbuf[PATH_MAX]; - - strcpy(pathbuf, "PYTHONPATH="); - if ((p = getenv("PYTHONPATH"))) { - strcat(pathbuf, p); - strcat(pathbuf, ":"); - } - strcat(pathbuf, path); - putenv(pathbuf); -} - char modname_bfr[PATH_MAX]; static char* is_python_module(const char* fname) { @@ -585,8 +571,12 @@ /* Init Python environment */ /* Set up the python path to be able to load module from our module path */ - set_python_path(path); Py_Initialize(); + + PyObject *sys_path = PySys_GetObject("path"); + PyObject *addpath = PyString_FromString(path); + PyList_Append(sys_path, addpath); + PyEval_InitThreads(); gtstate = PyEval_SaveThread(); This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <ca...@us...> - 2009-04-07 09:00:38
|
Revision: 1992 http://ganglia.svn.sourceforge.net/ganglia/?rev=1992&view=rev Author: carenas Date: 2009-04-07 09:00:28 +0000 (Tue, 07 Apr 2009) Log Message: ----------- gmond: ensure Python.h gets included before any standard headers indicated as a requirement by Python/C API as shown in : http://docs.python.org/3.0/c-api/intro.html#include-files cleans up warnings in CentOS 4.7 and Solaris when building against python 2.3 and where was also reported to affect loading python modules by Sergei Volkov as per BUG228 Modified Paths: -------------- trunk/monitor-core/gmond/modules/python/mod_python.c Modified: trunk/monitor-core/gmond/modules/python/mod_python.c =================================================================== --- trunk/monitor-core/gmond/modules/python/mod_python.c 2009-04-06 09:27:24 UTC (rev 1991) +++ trunk/monitor-core/gmond/modules/python/mod_python.c 2009-04-07 09:00:28 UTC (rev 1992) @@ -31,6 +31,7 @@ * Jon Carey (jcarey novell.com) ******************************************************************************/ +#include <Python.h> #include <gm_metric.h> #include <stdio.h> #include <time.h> @@ -45,7 +46,6 @@ #include <apr_strings.h> #include <apr_lib.h> -#include <Python.h> #include <dirent.h> #include <sys/stat.h> This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <ha...@us...> - 2009-07-09 15:12:38
|
Revision: 2000 http://ganglia.svn.sourceforge.net/ganglia/?rev=2000&view=rev Author: hawson Date: 2009-07-09 15:12:35 +0000 (Thu, 09 Jul 2009) Log Message: ----------- Force null termination in string metrics. Thanks to Greg Bruno for the patch. Modified Paths: -------------- trunk/monitor-core/gmond/modules/python/mod_python.c Modified: trunk/monitor-core/gmond/modules/python/mod_python.c =================================================================== --- trunk/monitor-core/gmond/modules/python/mod_python.c 2009-06-14 16:39:45 UTC (rev 1999) +++ trunk/monitor-core/gmond/modules/python/mod_python.c 2009-07-09 15:12:35 UTC (rev 2000) @@ -128,6 +128,10 @@ else if (PyString_Check(dv)) { char* p = PyString_AsString(dv); strncpy(bfr, p, len); + /* + * ensure bfr is null terminated + */ + bfr[len-1] = '\0'; } else if (PyFloat_Check(dv)) { double v = PyFloat_AsDouble(dv); @@ -423,7 +427,7 @@ gmi->tmax = minfo->tmax; if (!strcasecmp(minfo->vtype, "string")) { gmi->type = GANGLIA_VALUE_STRING; - gmi->msg_size = UDP_HEADER_SIZE+32; + gmi->msg_size = UDP_HEADER_SIZE+MAX_G_STRING_SIZE; } else if (!strcasecmp(minfo->vtype, "uint")) { gmi->type = GANGLIA_VALUE_UNSIGNED_INT; This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <ca...@us...> - 2009-07-20 09:20:19
|
Revision: 2003 http://ganglia.svn.sourceforge.net/ganglia/?rev=2003&view=rev Author: carenas Date: 2009-07-20 09:20:17 +0000 (Mon, 20 Jul 2009) Log Message: ----------- gmond: ensure python string metrics won't overflow uses snprintf to truncate value if too long and as used for all other types instead of a forced null terminator as shown in r2000 Modified Paths: -------------- trunk/monitor-core/gmond/modules/python/mod_python.c Modified: trunk/monitor-core/gmond/modules/python/mod_python.c =================================================================== --- trunk/monitor-core/gmond/modules/python/mod_python.c 2009-07-09 15:27:29 UTC (rev 2002) +++ trunk/monitor-core/gmond/modules/python/mod_python.c 2009-07-20 09:20:17 UTC (rev 2003) @@ -126,12 +126,8 @@ snprintf(bfr, len, "%ld", v); } else if (PyString_Check(dv)) { - char* p = PyString_AsString(dv); - strncpy(bfr, p, len); - /* - * ensure bfr is null terminated - */ - bfr[len-1] = '\0'; + char* v = PyString_AsString(dv); + snprintf(bfr, len, "%s", v); } else if (PyFloat_Check(dv)) { double v = PyFloat_AsDouble(dv); This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |