Formatting changes, plus memory management in initsyslog()
This commit is contained in:
parent
73a75eb79b
commit
43a476ac00
|
@ -44,52 +44,56 @@ Revision history:
|
|||
|
||||
static PyObject *
|
||||
syslog_openlog(self, args)
|
||||
PyObject * self;
|
||||
PyObject * args;
|
||||
PyObject * self;
|
||||
PyObject * args;
|
||||
{
|
||||
long logopt = 0;
|
||||
long facility = LOG_USER;
|
||||
long logopt = 0;
|
||||
long facility = LOG_USER;
|
||||
|
||||
static PyObject *ident_o = NULL;
|
||||
static PyObject *ident_o = NULL;
|
||||
|
||||
Py_XDECREF(ident_o);
|
||||
if (!PyArg_ParseTuple(args, "S|ll;ident string [, logoption [, facility]]",
|
||||
&ident_o, &logopt, &facility)) {
|
||||
return NULL;
|
||||
}
|
||||
Py_INCREF(ident_o); /* This is needed because openlog() does NOT make a copy
|
||||
and syslog() later uses it.. cannot trash it. */
|
||||
Py_XDECREF(ident_o);
|
||||
if (!PyArg_ParseTuple(args,
|
||||
"S|ll;ident string [, logoption [, facility]]",
|
||||
&ident_o, &logopt, &facility))
|
||||
return NULL;
|
||||
|
||||
openlog(PyString_AsString(ident_o), logopt, facility);
|
||||
/* This is needed because openlog() does NOT make a copy
|
||||
* and syslog() later uses it.. cannot trash it.
|
||||
*/
|
||||
Py_INCREF(ident_o);
|
||||
|
||||
Py_INCREF(Py_None);
|
||||
return Py_None;
|
||||
openlog(PyString_AsString(ident_o), logopt, facility);
|
||||
|
||||
Py_INCREF(Py_None);
|
||||
return Py_None;
|
||||
}
|
||||
|
||||
|
||||
static PyObject *
|
||||
syslog_syslog(self, args)
|
||||
PyObject * self;
|
||||
PyObject * args;
|
||||
PyObject * self;
|
||||
PyObject * args;
|
||||
{
|
||||
char *message;
|
||||
int priority = LOG_INFO | LOG_USER;
|
||||
char *message;
|
||||
int priority = LOG_INFO | LOG_USER;
|
||||
|
||||
if (!PyArg_ParseTuple(args, "is;[priority,] message string",
|
||||
&priority, &message)) {
|
||||
PyErr_Clear();
|
||||
if (!PyArg_ParseTuple(args, "s;[priority,] message string", &message)) {
|
||||
return NULL;
|
||||
}
|
||||
}
|
||||
syslog(priority, "%s", message);
|
||||
Py_INCREF(Py_None);
|
||||
return Py_None;
|
||||
if (!PyArg_ParseTuple(args, "is;[priority,] message string",
|
||||
&priority, &message)) {
|
||||
PyErr_Clear();
|
||||
if (!PyArg_ParseTuple(args, "s;[priority,] message string",
|
||||
&message))
|
||||
return NULL;
|
||||
}
|
||||
syslog(priority, "%s", message);
|
||||
Py_INCREF(Py_None);
|
||||
return Py_None;
|
||||
}
|
||||
|
||||
static PyObject *
|
||||
syslog_closelog(self, args)
|
||||
PyObject * self;
|
||||
PyObject * args;
|
||||
PyObject * self;
|
||||
PyObject * args;
|
||||
{
|
||||
if (!PyArg_ParseTuple(args, ""))
|
||||
return NULL;
|
||||
|
@ -100,41 +104,41 @@ syslog_closelog(self, args)
|
|||
|
||||
static PyObject *
|
||||
syslog_setlogmask(self, args)
|
||||
PyObject * self;
|
||||
PyObject * args;
|
||||
PyObject * self;
|
||||
PyObject * args;
|
||||
{
|
||||
long maskpri, omaskpri;
|
||||
long maskpri, omaskpri;
|
||||
|
||||
if (!PyArg_ParseTuple(args,"l;mask for priority",&maskpri))
|
||||
return NULL;
|
||||
omaskpri = setlogmask(maskpri);
|
||||
return PyInt_FromLong(omaskpri);
|
||||
if (!PyArg_ParseTuple(args, "l;mask for priority", &maskpri))
|
||||
return NULL;
|
||||
omaskpri = setlogmask(maskpri);
|
||||
return PyInt_FromLong(omaskpri);
|
||||
}
|
||||
|
||||
static PyObject *
|
||||
syslog_log_mask(self, args)
|
||||
PyObject * self;
|
||||
PyObject * args;
|
||||
PyObject * self;
|
||||
PyObject * args;
|
||||
{
|
||||
long mask;
|
||||
long pri;
|
||||
if (!PyArg_ParseTuple(args,"l",&pri))
|
||||
return NULL;
|
||||
mask = LOG_MASK(pri);
|
||||
return PyInt_FromLong(mask);
|
||||
long mask;
|
||||
long pri;
|
||||
if (!PyArg_ParseTuple(args, "l", &pri))
|
||||
return NULL;
|
||||
mask = LOG_MASK(pri);
|
||||
return PyInt_FromLong(mask);
|
||||
}
|
||||
|
||||
static PyObject *
|
||||
syslog_log_upto(self, args)
|
||||
PyObject * self;
|
||||
PyObject * args;
|
||||
PyObject * self;
|
||||
PyObject * args;
|
||||
{
|
||||
long mask;
|
||||
long pri;
|
||||
if (!PyArg_ParseTuple(args,"l",&pri))
|
||||
return NULL;
|
||||
mask = LOG_UPTO(pri);
|
||||
return PyInt_FromLong(mask);
|
||||
long mask;
|
||||
long pri;
|
||||
if (!PyArg_ParseTuple(args, "l", &pri))
|
||||
return NULL;
|
||||
mask = LOG_UPTO(pri);
|
||||
return PyInt_FromLong(mask);
|
||||
}
|
||||
|
||||
/* List of functions defined in the module */
|
||||
|
@ -151,8 +155,16 @@ static PyMethodDef syslog_methods[] = {
|
|||
|
||||
/* Initialization function for the module */
|
||||
|
||||
#define DICT_SET_INT(d, s, x) \
|
||||
PyDict_SetItemString(d, s, PyInt_FromLong((long) (x)))
|
||||
void ins(d, s, x)
|
||||
PyObject *d;
|
||||
char *s;
|
||||
long x;
|
||||
{
|
||||
PyObject *xl = PyInt_FromLong(x);
|
||||
PyDict_SetItemString(d, s, xl);
|
||||
Py_XDECREF(xl);
|
||||
}
|
||||
|
||||
|
||||
void
|
||||
initsyslog()
|
||||
|
@ -166,54 +178,54 @@ initsyslog()
|
|||
d = PyModule_GetDict(m);
|
||||
|
||||
/* Priorities */
|
||||
DICT_SET_INT(d, "LOG_EMERG", LOG_EMERG);
|
||||
DICT_SET_INT(d, "LOG_ALERT", LOG_ALERT);
|
||||
DICT_SET_INT(d, "LOG_CRIT", LOG_CRIT);
|
||||
DICT_SET_INT(d, "LOG_ERR", LOG_ERR);
|
||||
DICT_SET_INT(d, "LOG_WARNING", LOG_WARNING);
|
||||
DICT_SET_INT(d, "LOG_NOTICE", LOG_NOTICE);
|
||||
DICT_SET_INT(d, "LOG_INFO", LOG_INFO);
|
||||
DICT_SET_INT(d, "LOG_DEBUG", LOG_DEBUG);
|
||||
ins(d, "LOG_EMERG", LOG_EMERG);
|
||||
ins(d, "LOG_ALERT", LOG_ALERT);
|
||||
ins(d, "LOG_CRIT", LOG_CRIT);
|
||||
ins(d, "LOG_ERR", LOG_ERR);
|
||||
ins(d, "LOG_WARNING", LOG_WARNING);
|
||||
ins(d, "LOG_NOTICE", LOG_NOTICE);
|
||||
ins(d, "LOG_INFO", LOG_INFO);
|
||||
ins(d, "LOG_DEBUG", LOG_DEBUG);
|
||||
|
||||
/* openlog() option flags */
|
||||
DICT_SET_INT(d, "LOG_PID", LOG_PID);
|
||||
DICT_SET_INT(d, "LOG_CONS", LOG_CONS);
|
||||
DICT_SET_INT(d, "LOG_NDELAY", LOG_NDELAY);
|
||||
DICT_SET_INT(d, "LOG_NOWAIT", LOG_NOWAIT);
|
||||
ins(d, "LOG_PID", LOG_PID);
|
||||
ins(d, "LOG_CONS", LOG_CONS);
|
||||
ins(d, "LOG_NDELAY", LOG_NDELAY);
|
||||
ins(d, "LOG_NOWAIT", LOG_NOWAIT);
|
||||
#ifdef LOG_PERROR
|
||||
DICT_SET_INT(d, "LOG_PERROR", LOG_PERROR);
|
||||
ins(d, "LOG_PERROR", LOG_PERROR);
|
||||
#endif
|
||||
|
||||
/* Facilities */
|
||||
DICT_SET_INT(d, "LOG_KERN", LOG_KERN);
|
||||
DICT_SET_INT(d, "LOG_USER", LOG_USER);
|
||||
DICT_SET_INT(d, "LOG_MAIL", LOG_MAIL);
|
||||
DICT_SET_INT(d, "LOG_DAEMON", LOG_DAEMON);
|
||||
DICT_SET_INT(d, "LOG_AUTH", LOG_AUTH);
|
||||
DICT_SET_INT(d, "LOG_LPR", LOG_LPR);
|
||||
ins(d, "LOG_KERN", LOG_KERN);
|
||||
ins(d, "LOG_USER", LOG_USER);
|
||||
ins(d, "LOG_MAIL", LOG_MAIL);
|
||||
ins(d, "LOG_DAEMON", LOG_DAEMON);
|
||||
ins(d, "LOG_AUTH", LOG_AUTH);
|
||||
ins(d, "LOG_LPR", LOG_LPR);
|
||||
#ifdef LOG_NEWS
|
||||
DICT_SET_INT(d, "LOG_NEWS", LOG_NEWS);
|
||||
ins(d, "LOG_NEWS", LOG_NEWS);
|
||||
#else
|
||||
DICT_SET_INT(d, "LOG_NEWS", LOG_MAIL);
|
||||
ins(d, "LOG_NEWS", LOG_MAIL);
|
||||
#endif
|
||||
#ifdef LOG_UUCP
|
||||
DICT_SET_INT(d, "LOG_UUCP", LOG_UUCP);
|
||||
ins(d, "LOG_UUCP", LOG_UUCP);
|
||||
#else
|
||||
DICT_SET_INT(d, "LOG_UUCP", LOG_MAIL);
|
||||
ins(d, "LOG_UUCP", LOG_MAIL);
|
||||
#endif
|
||||
#ifdef LOG_CRON
|
||||
DICT_SET_INT(d, "LOG_CRON", LOG_CRON);
|
||||
ins(d, "LOG_CRON", LOG_CRON);
|
||||
#else
|
||||
DICT_SET_INT(d, "LOG_CRON", LOG_DAEMON);
|
||||
ins(d, "LOG_CRON", LOG_DAEMON);
|
||||
#endif
|
||||
DICT_SET_INT(d, "LOG_LOCAL0", LOG_LOCAL0);
|
||||
DICT_SET_INT(d, "LOG_LOCAL1", LOG_LOCAL1);
|
||||
DICT_SET_INT(d, "LOG_LOCAL2", LOG_LOCAL2);
|
||||
DICT_SET_INT(d, "LOG_LOCAL3", LOG_LOCAL3);
|
||||
DICT_SET_INT(d, "LOG_LOCAL4", LOG_LOCAL4);
|
||||
DICT_SET_INT(d, "LOG_LOCAL5", LOG_LOCAL5);
|
||||
DICT_SET_INT(d, "LOG_LOCAL6", LOG_LOCAL6);
|
||||
DICT_SET_INT(d, "LOG_LOCAL7", LOG_LOCAL7);
|
||||
ins(d, "LOG_LOCAL0", LOG_LOCAL0);
|
||||
ins(d, "LOG_LOCAL1", LOG_LOCAL1);
|
||||
ins(d, "LOG_LOCAL2", LOG_LOCAL2);
|
||||
ins(d, "LOG_LOCAL3", LOG_LOCAL3);
|
||||
ins(d, "LOG_LOCAL4", LOG_LOCAL4);
|
||||
ins(d, "LOG_LOCAL5", LOG_LOCAL5);
|
||||
ins(d, "LOG_LOCAL6", LOG_LOCAL6);
|
||||
ins(d, "LOG_LOCAL7", LOG_LOCAL7);
|
||||
|
||||
/* Check for errors */
|
||||
if (PyErr_Occurred())
|
||||
|
|
Loading…
Reference in New Issue