| 
									
										
										
										
											1994-07-14 13:56:50 +00:00
										 |  |  | /***********************************************************
 | 
					
						
							| 
									
										
										
										
											1994-08-30 12:25:20 +00:00
										 |  |  | Copyright 1994 by Lance Ellinghouse, | 
					
						
							|  |  |  | Cathedral City, California Republic, United States of America. | 
					
						
							| 
									
										
										
										
											1994-07-14 13:56:50 +00:00
										 |  |  | 
 | 
					
						
							|  |  |  |                         All Rights Reserved | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | Permission to use, copy, modify, and distribute this software and its  | 
					
						
							|  |  |  | documentation for any purpose and without fee is hereby granted,  | 
					
						
							|  |  |  | provided that the above copyright notice appear in all copies and that | 
					
						
							|  |  |  | both that copyright notice and this permission notice appear in  | 
					
						
							| 
									
										
										
										
											1994-08-30 12:25:20 +00:00
										 |  |  | supporting documentation, and that the name of Lance Ellinghouse | 
					
						
							|  |  |  | not be used in advertising or publicity pertaining to distribution  | 
					
						
							|  |  |  | of the software without specific, written prior permission. | 
					
						
							| 
									
										
										
										
											1994-07-14 13:56:50 +00:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											1994-08-30 12:25:20 +00:00
										 |  |  | LANCE ELLINGHOUSE DISCLAIMS ALL WARRANTIES WITH REGARD TO | 
					
						
							| 
									
										
										
										
											1994-07-14 13:56:50 +00:00
										 |  |  | THIS SOFTWARE, INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND | 
					
						
							| 
									
										
										
										
											1994-08-30 12:25:20 +00:00
										 |  |  | FITNESS, IN NO EVENT SHALL LANCE ELLINGHOUSE BE LIABLE FOR ANY SPECIAL,  | 
					
						
							|  |  |  | INDIRECT OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING  | 
					
						
							|  |  |  | FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT,  | 
					
						
							|  |  |  | NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION  | 
					
						
							|  |  |  | WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. | 
					
						
							| 
									
										
										
										
											1994-07-14 13:56:50 +00:00
										 |  |  | 
 | 
					
						
							|  |  |  | ******************************************************************/ | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											1995-10-11 16:15:28 +00:00
										 |  |  | /******************************************************************
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | Revision history: | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											1998-05-08 21:52:55 +00:00
										 |  |  | 1998/04/28 (Sean Reifschneider) | 
					
						
							|  |  |  |   - When facility not specified to syslog() method, use default from openlog() | 
					
						
							|  |  |  |     (This is how it was claimed to work in the documentation) | 
					
						
							|  |  |  |   - Potential resource leak of o_ident, now cleaned up in closelog() | 
					
						
							|  |  |  |   - Minor comment accuracy fix. | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											1995-10-11 16:15:28 +00:00
										 |  |  | 95/06/29 (Steve Clift) | 
					
						
							|  |  |  |   - Changed arg parsing to use PyArg_ParseTuple. | 
					
						
							|  |  |  |   - Added PyErr_Clear() call(s) where needed. | 
					
						
							|  |  |  |   - Fix core dumps if user message contains format specifiers. | 
					
						
							|  |  |  |   - Change openlog arg defaults to match normal syslog behaviour. | 
					
						
							|  |  |  |   - Plug memory leak in openlog(). | 
					
						
							|  |  |  |   - Fix setlogmask() to return previous mask value. | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | ******************************************************************/ | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											1994-07-14 13:56:50 +00:00
										 |  |  | /* syslog module */ | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											1995-01-10 20:56:29 +00:00
										 |  |  | #include "Python.h"
 | 
					
						
							| 
									
										
										
										
											1994-07-14 13:56:50 +00:00
										 |  |  | 
 | 
					
						
							|  |  |  | #include <syslog.h>
 | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											1998-05-08 21:52:55 +00:00
										 |  |  | /*  only one instance, only one syslog, so globals should be ok  */ | 
					
						
							|  |  |  | static PyObject *S_ident_o = NULL;			/*  identifier, held by openlog()  */ | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											1994-08-30 12:25:20 +00:00
										 |  |  | static PyObject *  | 
					
						
							| 
									
										
										
										
											1994-07-14 13:56:50 +00:00
										 |  |  | syslog_openlog(self, args) | 
					
						
							| 
									
										
										
										
											1997-01-09 23:51:21 +00:00
										 |  |  | 	PyObject * self; | 
					
						
							|  |  |  | 	PyObject * args; | 
					
						
							| 
									
										
										
										
											1994-07-14 13:56:50 +00:00
										 |  |  | { | 
					
						
							| 
									
										
										
										
											1997-01-09 23:51:21 +00:00
										 |  |  | 	long logopt = 0; | 
					
						
							|  |  |  | 	long facility = LOG_USER; | 
					
						
							| 
									
										
										
										
											1995-10-11 16:15:28 +00:00
										 |  |  | 
 | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											1998-05-08 21:52:55 +00:00
										 |  |  | 	Py_XDECREF(S_ident_o); | 
					
						
							| 
									
										
										
										
											1997-01-09 23:51:21 +00:00
										 |  |  | 	if (!PyArg_ParseTuple(args, | 
					
						
							|  |  |  | 			      "S|ll;ident string [, logoption [, facility]]", | 
					
						
							| 
									
										
										
										
											1998-05-08 21:52:55 +00:00
										 |  |  | 			      &S_ident_o, &logopt, &facility)) | 
					
						
							| 
									
										
										
										
											1997-01-09 23:51:21 +00:00
										 |  |  | 		return NULL; | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | 	/* This is needed because openlog() does NOT make a copy
 | 
					
						
							|  |  |  | 	 * and syslog() later uses it.. cannot trash it. | 
					
						
							|  |  |  | 	 */ | 
					
						
							| 
									
										
										
										
											1998-05-08 21:52:55 +00:00
										 |  |  | 	Py_INCREF(S_ident_o); | 
					
						
							| 
									
										
										
										
											1995-10-11 16:15:28 +00:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											1998-05-08 21:52:55 +00:00
										 |  |  | 	openlog(PyString_AsString(S_ident_o), logopt, facility); | 
					
						
							| 
									
										
										
										
											1995-10-11 16:15:28 +00:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											1997-01-09 23:51:21 +00:00
										 |  |  | 	Py_INCREF(Py_None); | 
					
						
							|  |  |  | 	return Py_None; | 
					
						
							| 
									
										
										
										
											1994-07-14 13:56:50 +00:00
										 |  |  | } | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											1997-01-09 23:51:21 +00:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											1994-08-30 12:25:20 +00:00
										 |  |  | static PyObject *  | 
					
						
							| 
									
										
										
										
											1994-07-14 13:56:50 +00:00
										 |  |  | syslog_syslog(self, args) | 
					
						
							| 
									
										
										
										
											1997-01-09 23:51:21 +00:00
										 |  |  | 	PyObject * self; | 
					
						
							|  |  |  | 	PyObject * args; | 
					
						
							| 
									
										
										
										
											1994-07-14 13:56:50 +00:00
										 |  |  | { | 
					
						
							| 
									
										
										
										
											1997-01-09 23:51:21 +00:00
										 |  |  | 	char *message; | 
					
						
							| 
									
										
										
										
											1998-05-08 21:52:55 +00:00
										 |  |  | 	int   priority = LOG_INFO; | 
					
						
							| 
									
										
										
										
											1997-01-09 23:51:21 +00:00
										 |  |  | 
 | 
					
						
							|  |  |  | 	if (!PyArg_ParseTuple(args, "is;[priority,] message string", | 
					
						
							|  |  |  | 			      &priority, &message)) { | 
					
						
							|  |  |  | 		PyErr_Clear(); | 
					
						
							|  |  |  | 		if (!PyArg_ParseTuple(args, "s;[priority,] message string", | 
					
						
							|  |  |  | 				      &message)) | 
					
						
							|  |  |  | 			return NULL; | 
					
						
							|  |  |  | 	} | 
					
						
							| 
									
										
										
										
											1998-05-08 21:52:55 +00:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											1997-01-09 23:51:21 +00:00
										 |  |  | 	syslog(priority, "%s", message); | 
					
						
							|  |  |  | 	Py_INCREF(Py_None); | 
					
						
							|  |  |  | 	return Py_None; | 
					
						
							| 
									
										
										
										
											1994-07-14 13:56:50 +00:00
										 |  |  | } | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											1994-08-30 12:25:20 +00:00
										 |  |  | static PyObject *  | 
					
						
							| 
									
										
										
										
											1994-07-14 13:56:50 +00:00
										 |  |  | syslog_closelog(self, args) | 
					
						
							| 
									
										
										
										
											1997-01-09 23:51:21 +00:00
										 |  |  | 	PyObject * self; | 
					
						
							|  |  |  | 	PyObject * args; | 
					
						
							| 
									
										
										
										
											1994-07-14 13:56:50 +00:00
										 |  |  | { | 
					
						
							| 
									
										
										
										
											1995-10-11 16:15:28 +00:00
										 |  |  | 	if (!PyArg_ParseTuple(args, "")) | 
					
						
							| 
									
										
										
										
											1994-07-14 13:56:50 +00:00
										 |  |  | 		return NULL; | 
					
						
							|  |  |  | 	closelog(); | 
					
						
							| 
									
										
										
										
											1998-05-08 21:52:55 +00:00
										 |  |  | 	Py_XDECREF(S_ident_o); | 
					
						
							|  |  |  | 	S_ident_o = NULL; | 
					
						
							| 
									
										
										
										
											1994-08-30 12:25:20 +00:00
										 |  |  | 	Py_INCREF(Py_None); | 
					
						
							|  |  |  | 	return Py_None; | 
					
						
							| 
									
										
										
										
											1994-07-14 13:56:50 +00:00
										 |  |  | } | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											1994-08-30 12:25:20 +00:00
										 |  |  | static PyObject *  | 
					
						
							| 
									
										
										
										
											1994-07-14 13:56:50 +00:00
										 |  |  | syslog_setlogmask(self, args) | 
					
						
							| 
									
										
										
										
											1997-01-09 23:51:21 +00:00
										 |  |  | 	PyObject * self; | 
					
						
							|  |  |  | 	PyObject * args; | 
					
						
							| 
									
										
										
										
											1994-07-14 13:56:50 +00:00
										 |  |  | { | 
					
						
							| 
									
										
										
										
											1997-01-09 23:51:21 +00:00
										 |  |  | 	long maskpri, omaskpri; | 
					
						
							| 
									
										
										
										
											1995-10-11 16:15:28 +00:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											1997-01-09 23:51:21 +00:00
										 |  |  | 	if (!PyArg_ParseTuple(args, "l;mask for priority", &maskpri)) | 
					
						
							|  |  |  | 		return NULL; | 
					
						
							|  |  |  | 	omaskpri = setlogmask(maskpri); | 
					
						
							|  |  |  | 	return PyInt_FromLong(omaskpri); | 
					
						
							| 
									
										
										
										
											1994-07-14 13:56:50 +00:00
										 |  |  | } | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											1994-08-30 12:25:20 +00:00
										 |  |  | static PyObject *  | 
					
						
							| 
									
										
										
										
											1994-07-14 13:56:50 +00:00
										 |  |  | syslog_log_mask(self, args) | 
					
						
							| 
									
										
										
										
											1997-01-09 23:51:21 +00:00
										 |  |  | 	PyObject * self; | 
					
						
							|  |  |  | 	PyObject * args; | 
					
						
							| 
									
										
										
										
											1994-07-14 13:56:50 +00:00
										 |  |  | { | 
					
						
							| 
									
										
										
										
											1997-01-09 23:51:21 +00:00
										 |  |  | 	long mask; | 
					
						
							|  |  |  | 	long pri; | 
					
						
							|  |  |  | 	if (!PyArg_ParseTuple(args, "l", &pri)) | 
					
						
							|  |  |  | 		return NULL; | 
					
						
							|  |  |  | 	mask = LOG_MASK(pri); | 
					
						
							|  |  |  | 	return PyInt_FromLong(mask); | 
					
						
							| 
									
										
										
										
											1994-07-14 13:56:50 +00:00
										 |  |  | } | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											1994-08-30 12:25:20 +00:00
										 |  |  | static PyObject *  | 
					
						
							| 
									
										
										
										
											1994-07-14 13:56:50 +00:00
										 |  |  | syslog_log_upto(self, args) | 
					
						
							| 
									
										
										
										
											1997-01-09 23:51:21 +00:00
										 |  |  | 	PyObject * self; | 
					
						
							|  |  |  | 	PyObject * args; | 
					
						
							| 
									
										
										
										
											1994-07-14 13:56:50 +00:00
										 |  |  | { | 
					
						
							| 
									
										
										
										
											1997-01-09 23:51:21 +00:00
										 |  |  | 	long mask; | 
					
						
							|  |  |  | 	long pri; | 
					
						
							|  |  |  | 	if (!PyArg_ParseTuple(args, "l", &pri)) | 
					
						
							|  |  |  | 		return NULL; | 
					
						
							|  |  |  | 	mask = LOG_UPTO(pri); | 
					
						
							|  |  |  | 	return PyInt_FromLong(mask); | 
					
						
							| 
									
										
										
										
											1994-07-14 13:56:50 +00:00
										 |  |  | } | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | /* List of functions defined in the module */ | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											1994-08-30 12:25:20 +00:00
										 |  |  | static PyMethodDef syslog_methods[] = { | 
					
						
							| 
									
										
										
										
											1995-10-11 16:15:28 +00:00
										 |  |  | 	{"openlog",	syslog_openlog,		METH_VARARGS}, | 
					
						
							|  |  |  | 	{"closelog",	syslog_closelog,	METH_VARARGS}, | 
					
						
							|  |  |  | 	{"syslog",	syslog_syslog,		METH_VARARGS}, | 
					
						
							|  |  |  | 	{"setlogmask",	syslog_setlogmask,	METH_VARARGS}, | 
					
						
							|  |  |  | 	{"LOG_MASK",	syslog_log_mask,	METH_VARARGS}, | 
					
						
							|  |  |  | 	{"LOG_UPTO",	syslog_log_upto,	METH_VARARGS}, | 
					
						
							|  |  |  | 	{NULL,		NULL,			0} | 
					
						
							| 
									
										
										
										
											1994-07-14 13:56:50 +00:00
										 |  |  | }; | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											1998-05-08 21:52:55 +00:00
										 |  |  | /* helper function for initialization function */ | 
					
						
							| 
									
										
										
										
											1994-07-14 13:56:50 +00:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											1997-01-17 00:01:33 +00:00
										 |  |  | static void | 
					
						
							|  |  |  | ins(d, s, x) | 
					
						
							| 
									
										
										
										
											1997-01-09 23:51:21 +00:00
										 |  |  | 	PyObject *d; | 
					
						
							|  |  |  | 	char *s; | 
					
						
							|  |  |  | 	long x; | 
					
						
							|  |  |  | { | 
					
						
							| 
									
										
										
										
											1997-01-17 00:01:33 +00:00
										 |  |  | 	PyObject *v = PyInt_FromLong(x); | 
					
						
							|  |  |  | 	if (v) { | 
					
						
							|  |  |  | 		PyDict_SetItemString(d, s, v); | 
					
						
							|  |  |  | 		Py_DECREF(v); | 
					
						
							|  |  |  | 	} | 
					
						
							| 
									
										
										
										
											1997-01-09 23:51:21 +00:00
										 |  |  | } | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											1998-05-08 21:52:55 +00:00
										 |  |  | /* Initialization function for the module */ | 
					
						
							| 
									
										
										
										
											1995-10-11 16:15:28 +00:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											1998-12-04 18:50:17 +00:00
										 |  |  | DL_EXPORT(void) | 
					
						
							| 
									
										
										
										
											1994-07-14 13:56:50 +00:00
										 |  |  | initsyslog() | 
					
						
							|  |  |  | { | 
					
						
							| 
									
										
										
										
											1995-10-11 16:15:28 +00:00
										 |  |  | 	PyObject *m, *d; | 
					
						
							| 
									
										
										
										
											1994-07-14 13:56:50 +00:00
										 |  |  | 
 | 
					
						
							|  |  |  | 	/* Create the module and add the functions */ | 
					
						
							| 
									
										
										
										
											1994-08-30 12:25:20 +00:00
										 |  |  | 	m = Py_InitModule("syslog", syslog_methods); | 
					
						
							| 
									
										
										
										
											1994-07-14 13:56:50 +00:00
										 |  |  | 
 | 
					
						
							|  |  |  | 	/* Add some symbolic constants to the module */ | 
					
						
							| 
									
										
										
										
											1994-08-30 12:25:20 +00:00
										 |  |  | 	d = PyModule_GetDict(m); | 
					
						
							| 
									
										
										
										
											1995-10-11 16:15:28 +00:00
										 |  |  | 
 | 
					
						
							|  |  |  | 	/* Priorities */ | 
					
						
							| 
									
										
										
										
											1997-01-09 23:51:21 +00:00
										 |  |  | 	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); | 
					
						
							| 
									
										
										
										
											1995-10-11 16:15:28 +00:00
										 |  |  | 
 | 
					
						
							|  |  |  | 	/* openlog() option flags */ | 
					
						
							| 
									
										
										
										
											1997-01-09 23:51:21 +00:00
										 |  |  | 	ins(d, "LOG_PID",	LOG_PID); | 
					
						
							|  |  |  | 	ins(d, "LOG_CONS",	LOG_CONS); | 
					
						
							|  |  |  | 	ins(d, "LOG_NDELAY",	LOG_NDELAY); | 
					
						
							| 
									
										
										
										
											1998-08-04 22:53:56 +00:00
										 |  |  | #ifdef LOG_NOWAIT
 | 
					
						
							| 
									
										
										
										
											1997-01-09 23:51:21 +00:00
										 |  |  | 	ins(d, "LOG_NOWAIT",	LOG_NOWAIT); | 
					
						
							| 
									
										
										
										
											1998-08-04 22:53:56 +00:00
										 |  |  | #endif
 | 
					
						
							| 
									
										
										
										
											1995-10-11 16:15:28 +00:00
										 |  |  | #ifdef LOG_PERROR
 | 
					
						
							| 
									
										
										
										
											1997-01-09 23:51:21 +00:00
										 |  |  | 	ins(d, "LOG_PERROR",	LOG_PERROR); | 
					
						
							| 
									
										
										
										
											1995-10-11 16:15:28 +00:00
										 |  |  | #endif
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | 	/* Facilities */ | 
					
						
							| 
									
										
										
										
											1997-01-09 23:51:21 +00:00
										 |  |  | 	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); | 
					
						
							|  |  |  | 	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); | 
					
						
							| 
									
										
										
										
											1994-07-14 13:56:50 +00:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											1998-05-08 21:52:55 +00:00
										 |  |  | #ifndef LOG_SYSLOG
 | 
					
						
							|  |  |  | #define LOG_SYSLOG		LOG_DAEMON
 | 
					
						
							|  |  |  | #endif
 | 
					
						
							|  |  |  | #ifndef LOG_NEWS
 | 
					
						
							|  |  |  | #define LOG_NEWS		LOG_MAIL
 | 
					
						
							|  |  |  | #endif
 | 
					
						
							|  |  |  | #ifndef LOG_UUCP
 | 
					
						
							|  |  |  | #define LOG_UUCP		LOG_MAIL
 | 
					
						
							|  |  |  | #endif
 | 
					
						
							|  |  |  | #ifndef LOG_CRON
 | 
					
						
							|  |  |  | #define LOG_CRON		LOG_DAEMON
 | 
					
						
							|  |  |  | #endif
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | 	ins(d, "LOG_SYSLOG",	LOG_SYSLOG); | 
					
						
							|  |  |  | 	ins(d, "LOG_CRON",	LOG_CRON); | 
					
						
							|  |  |  | 	ins(d, "LOG_UUCP",	LOG_UUCP); | 
					
						
							|  |  |  | 	ins(d, "LOG_NEWS",	LOG_NEWS); | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											1994-07-14 13:56:50 +00:00
										 |  |  | 	/* Check for errors */ | 
					
						
							| 
									
										
										
										
											1994-08-30 12:25:20 +00:00
										 |  |  | 	if (PyErr_Occurred()) | 
					
						
							|  |  |  | 		Py_FatalError("can't initialize module syslog"); | 
					
						
							| 
									
										
										
										
											1994-07-14 13:56:50 +00:00
										 |  |  | } |