Formatting changes, plus memory management in initsyslog()

This commit is contained in:
Barry Warsaw 1997-01-09 23:51:21 +00:00
parent 73a75eb79b
commit 43a476ac00
1 changed files with 101 additions and 89 deletions

View File

@ -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())