add proc_env Python binding
This commit is contained in:
		
							parent
							
								
									de81b90497
								
							
						
					
					
						commit
						cb1e4f491d
					
				@ -524,6 +524,42 @@ static PyObject *pysigar_proc_args(PyObject *self, PyObject *args)
 | 
				
			|||||||
    return RETVAL;
 | 
					    return RETVAL;
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					static int pysigar_env_getall(void *data,
 | 
				
			||||||
 | 
					                              const char *key, int klen,
 | 
				
			||||||
 | 
					                              char *val, int vlen)
 | 
				
			||||||
 | 
					{
 | 
				
			||||||
 | 
					    PyDict_SetItem((PyObject *)data,
 | 
				
			||||||
 | 
					                   PyString_FromStringAndSize(key, klen),
 | 
				
			||||||
 | 
					                   PyString_FromStringAndSize(val, vlen));
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    return SIGAR_OK;
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					static PyObject *pysigar_proc_env(PyObject *self, PyObject *args)
 | 
				
			||||||
 | 
					{
 | 
				
			||||||
 | 
					    int status;
 | 
				
			||||||
 | 
					    sigar_t *sigar = PySIGAR;
 | 
				
			||||||
 | 
					    sigar_proc_env_t procenv;
 | 
				
			||||||
 | 
					    long pid;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    PyObject *RETVAL;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    PySigar_ParsePID;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    RETVAL = PyDict_New();
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    procenv.type = SIGAR_PROC_ENV_ALL;
 | 
				
			||||||
 | 
					    procenv.env_getter = pysigar_env_getall;
 | 
				
			||||||
 | 
					    procenv.data = RETVAL;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    status = sigar_proc_env_get(sigar, pid, &procenv);
 | 
				
			||||||
 | 
					    if (status != SIGAR_OK) {
 | 
				
			||||||
 | 
					        PySigar_Croak();
 | 
				
			||||||
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    return RETVAL;
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
static PyObject *pysigar_format_size(PyObject *self, PyObject *args)
 | 
					static PyObject *pysigar_format_size(PyObject *self, PyObject *args)
 | 
				
			||||||
{
 | 
					{
 | 
				
			||||||
    char buffer[56];
 | 
					    char buffer[56];
 | 
				
			||||||
@ -549,6 +585,7 @@ static PyMethodDef pysigar_methods[] = {
 | 
				
			|||||||
    { "who_list", pysigar_who_list, METH_NOARGS, NULL },
 | 
					    { "who_list", pysigar_who_list, METH_NOARGS, NULL },
 | 
				
			||||||
    { "proc_list", pysigar_proc_list, METH_VARARGS, NULL },
 | 
					    { "proc_list", pysigar_proc_list, METH_VARARGS, NULL },
 | 
				
			||||||
    { "proc_args", pysigar_proc_args, METH_VARARGS, NULL },
 | 
					    { "proc_args", pysigar_proc_args, METH_VARARGS, NULL },
 | 
				
			||||||
 | 
					    { "proc_env", pysigar_proc_env, METH_VARARGS, NULL },
 | 
				
			||||||
    PY_SIGAR_METHODS
 | 
					    PY_SIGAR_METHODS
 | 
				
			||||||
    {NULL}
 | 
					    {NULL}
 | 
				
			||||||
};
 | 
					};
 | 
				
			||||||
 | 
				
			|||||||
		Loading…
	
		Reference in New Issue
	
	Block a user