annotate Modules/syslogmodule.c @ 87690:66c1c9f32567 default tip

Add use_weakref option to functools.lru_cache The use_weakref option makes lru_cache create weak references to the function arguments when creating the cache key, which prevents them from staying in the memory forever even after all other references to them are gone. This is a proof of concept for http://bugs.python.org/issue19859
author Radomir Dopieralski <devel@sheep.art.pl>
date Tue, 03 Dec 2013 16:02:48 +0100
parents 01c4a0af73cf
children
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
1737
ee2f88a4f9e2 Added some names to Setup.in, and added syslogmodule.c.
Guido van Rossum <guido@python.org>
parents:
diff changeset
1 /***********************************************************
1855
9dbdb83d4178 Lance has converted his modules to the new naming conventions, and
Guido van Rossum <guido@python.org>
parents: 1737
diff changeset
2 Copyright 1994 by Lance Ellinghouse,
9dbdb83d4178 Lance has converted his modules to the new naming conventions, and
Guido van Rossum <guido@python.org>
parents: 1737
diff changeset
3 Cathedral City, California Republic, United States of America.
1737
ee2f88a4f9e2 Added some names to Setup.in, and added syslogmodule.c.
Guido van Rossum <guido@python.org>
parents:
diff changeset
4
ee2f88a4f9e2 Added some names to Setup.in, and added syslogmodule.c.
Guido van Rossum <guido@python.org>
parents:
diff changeset
5 All Rights Reserved
ee2f88a4f9e2 Added some names to Setup.in, and added syslogmodule.c.
Guido van Rossum <guido@python.org>
parents:
diff changeset
6
61467
f197407bdba2 Recorded merge of revisions 81032 via svnmerge from
Antoine Pitrou <solipsis@pitrou.net>
parents: 48660
diff changeset
7 Permission to use, copy, modify, and distribute this software and its
f197407bdba2 Recorded merge of revisions 81032 via svnmerge from
Antoine Pitrou <solipsis@pitrou.net>
parents: 48660
diff changeset
8 documentation for any purpose and without fee is hereby granted,
1737
ee2f88a4f9e2 Added some names to Setup.in, and added syslogmodule.c.
Guido van Rossum <guido@python.org>
parents:
diff changeset
9 provided that the above copyright notice appear in all copies and that
61467
f197407bdba2 Recorded merge of revisions 81032 via svnmerge from
Antoine Pitrou <solipsis@pitrou.net>
parents: 48660
diff changeset
10 both that copyright notice and this permission notice appear in
1855
9dbdb83d4178 Lance has converted his modules to the new naming conventions, and
Guido van Rossum <guido@python.org>
parents: 1737
diff changeset
11 supporting documentation, and that the name of Lance Ellinghouse
61467
f197407bdba2 Recorded merge of revisions 81032 via svnmerge from
Antoine Pitrou <solipsis@pitrou.net>
parents: 48660
diff changeset
12 not be used in advertising or publicity pertaining to distribution
1855
9dbdb83d4178 Lance has converted his modules to the new naming conventions, and
Guido van Rossum <guido@python.org>
parents: 1737
diff changeset
13 of the software without specific, written prior permission.
1737
ee2f88a4f9e2 Added some names to Setup.in, and added syslogmodule.c.
Guido van Rossum <guido@python.org>
parents:
diff changeset
14
1855
9dbdb83d4178 Lance has converted his modules to the new naming conventions, and
Guido van Rossum <guido@python.org>
parents: 1737
diff changeset
15 LANCE ELLINGHOUSE DISCLAIMS ALL WARRANTIES WITH REGARD TO
1737
ee2f88a4f9e2 Added some names to Setup.in, and added syslogmodule.c.
Guido van Rossum <guido@python.org>
parents:
diff changeset
16 THIS SOFTWARE, INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND
61467
f197407bdba2 Recorded merge of revisions 81032 via svnmerge from
Antoine Pitrou <solipsis@pitrou.net>
parents: 48660
diff changeset
17 FITNESS, IN NO EVENT SHALL LANCE ELLINGHOUSE BE LIABLE FOR ANY SPECIAL,
f197407bdba2 Recorded merge of revisions 81032 via svnmerge from
Antoine Pitrou <solipsis@pitrou.net>
parents: 48660
diff changeset
18 INDIRECT OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING
f197407bdba2 Recorded merge of revisions 81032 via svnmerge from
Antoine Pitrou <solipsis@pitrou.net>
parents: 48660
diff changeset
19 FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT,
f197407bdba2 Recorded merge of revisions 81032 via svnmerge from
Antoine Pitrou <solipsis@pitrou.net>
parents: 48660
diff changeset
20 NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION
1855
9dbdb83d4178 Lance has converted his modules to the new naming conventions, and
Guido van Rossum <guido@python.org>
parents: 1737
diff changeset
21 WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
1737
ee2f88a4f9e2 Added some names to Setup.in, and added syslogmodule.c.
Guido van Rossum <guido@python.org>
parents:
diff changeset
22
ee2f88a4f9e2 Added some names to Setup.in, and added syslogmodule.c.
Guido van Rossum <guido@python.org>
parents:
diff changeset
23 ******************************************************************/
ee2f88a4f9e2 Added some names to Setup.in, and added syslogmodule.c.
Guido van Rossum <guido@python.org>
parents:
diff changeset
24
3197
5d16ecae8ee7 changes by Steve Clift
Guido van Rossum <guido@python.org>
parents: 2123
diff changeset
25 /******************************************************************
5d16ecae8ee7 changes by Steve Clift
Guido van Rossum <guido@python.org>
parents: 2123
diff changeset
26
5d16ecae8ee7 changes by Steve Clift
Guido van Rossum <guido@python.org>
parents: 2123
diff changeset
27 Revision history:
5d16ecae8ee7 changes by Steve Clift
Guido van Rossum <guido@python.org>
parents: 2123
diff changeset
28
60886
562967881dc5 Port of issue8451 to python3: Syslog use sys.argv[0] for ident.
Sean Reifscheider <jafo@tummy.com>
parents: 48660
diff changeset
29 2010/04/20 (Sean Reifschneider)
562967881dc5 Port of issue8451 to python3: Syslog use sys.argv[0] for ident.
Sean Reifscheider <jafo@tummy.com>
parents: 48660
diff changeset
30 - Use basename(sys.argv[0]) for the default "ident".
562967881dc5 Port of issue8451 to python3: Syslog use sys.argv[0] for ident.
Sean Reifscheider <jafo@tummy.com>
parents: 48660
diff changeset
31 - Arguments to openlog() are now keyword args and are all optional.
562967881dc5 Port of issue8451 to python3: Syslog use sys.argv[0] for ident.
Sean Reifscheider <jafo@tummy.com>
parents: 48660
diff changeset
32 - syslog() calls openlog() if it hasn't already been called.
562967881dc5 Port of issue8451 to python3: Syslog use sys.argv[0] for ident.
Sean Reifscheider <jafo@tummy.com>
parents: 48660
diff changeset
33
8286
4c88cc62e9e9 Fix by Sean Reifschneider:
Guido van Rossum <guido@python.org>
parents: 7115
diff changeset
34 1998/04/28 (Sean Reifschneider)
4c88cc62e9e9 Fix by Sean Reifschneider:
Guido van Rossum <guido@python.org>
parents: 7115
diff changeset
35 - When facility not specified to syslog() method, use default from openlog()
4c88cc62e9e9 Fix by Sean Reifschneider:
Guido van Rossum <guido@python.org>
parents: 7115
diff changeset
36 (This is how it was claimed to work in the documentation)
4c88cc62e9e9 Fix by Sean Reifschneider:
Guido van Rossum <guido@python.org>
parents: 7115
diff changeset
37 - Potential resource leak of o_ident, now cleaned up in closelog()
4c88cc62e9e9 Fix by Sean Reifschneider:
Guido van Rossum <guido@python.org>
parents: 7115
diff changeset
38 - Minor comment accuracy fix.
4c88cc62e9e9 Fix by Sean Reifschneider:
Guido van Rossum <guido@python.org>
parents: 7115
diff changeset
39
3197
5d16ecae8ee7 changes by Steve Clift
Guido van Rossum <guido@python.org>
parents: 2123
diff changeset
40 95/06/29 (Steve Clift)
5d16ecae8ee7 changes by Steve Clift
Guido van Rossum <guido@python.org>
parents: 2123
diff changeset
41 - Changed arg parsing to use PyArg_ParseTuple.
5d16ecae8ee7 changes by Steve Clift
Guido van Rossum <guido@python.org>
parents: 2123
diff changeset
42 - Added PyErr_Clear() call(s) where needed.
5d16ecae8ee7 changes by Steve Clift
Guido van Rossum <guido@python.org>
parents: 2123
diff changeset
43 - Fix core dumps if user message contains format specifiers.
13620
5b727ab37092 Spelling fixes supplied by Rob W. W. Hooft. All these are fixes in either
Thomas Wouters <thomas@python.org>
parents: 13502
diff changeset
44 - Change openlog arg defaults to match normal syslog behavior.
3197
5d16ecae8ee7 changes by Steve Clift
Guido van Rossum <guido@python.org>
parents: 2123
diff changeset
45 - Plug memory leak in openlog().
5d16ecae8ee7 changes by Steve Clift
Guido van Rossum <guido@python.org>
parents: 2123
diff changeset
46 - Fix setlogmask() to return previous mask value.
5d16ecae8ee7 changes by Steve Clift
Guido van Rossum <guido@python.org>
parents: 2123
diff changeset
47
5d16ecae8ee7 changes by Steve Clift
Guido van Rossum <guido@python.org>
parents: 2123
diff changeset
48 ******************************************************************/
5d16ecae8ee7 changes by Steve Clift
Guido van Rossum <guido@python.org>
parents: 2123
diff changeset
49
1737
ee2f88a4f9e2 Added some names to Setup.in, and added syslogmodule.c.
Guido van Rossum <guido@python.org>
parents:
diff changeset
50 /* syslog module */
ee2f88a4f9e2 Added some names to Setup.in, and added syslogmodule.c.
Guido van Rossum <guido@python.org>
parents:
diff changeset
51
2123
fd5ab7e828fc cosmetic changes so these modules will work with the strict new naming scheme
Guido van Rossum <guido@python.org>
parents: 1855
diff changeset
52 #include "Python.h"
60886
562967881dc5 Port of issue8451 to python3: Syslog use sys.argv[0] for ident.
Sean Reifscheider <jafo@tummy.com>
parents: 48660
diff changeset
53 #include "osdefs.h"
1737
ee2f88a4f9e2 Added some names to Setup.in, and added syslogmodule.c.
Guido van Rossum <guido@python.org>
parents:
diff changeset
54
ee2f88a4f9e2 Added some names to Setup.in, and added syslogmodule.c.
Guido van Rossum <guido@python.org>
parents:
diff changeset
55 #include <syslog.h>
ee2f88a4f9e2 Added some names to Setup.in, and added syslogmodule.c.
Guido van Rossum <guido@python.org>
parents:
diff changeset
56
8286
4c88cc62e9e9 Fix by Sean Reifschneider:
Guido van Rossum <guido@python.org>
parents: 7115
diff changeset
57 /* only one instance, only one syslog, so globals should be ok */
61467
f197407bdba2 Recorded merge of revisions 81032 via svnmerge from
Antoine Pitrou <solipsis@pitrou.net>
parents: 48660
diff changeset
58 static PyObject *S_ident_o = NULL; /* identifier, held by openlog() */
60940
7e2229877459 Porting commit 80458 to python 3
Sean Reifscheider <jafo@tummy.com>
parents: 60886
diff changeset
59 static char S_log_open = 0;
8286
4c88cc62e9e9 Fix by Sean Reifschneider:
Guido van Rossum <guido@python.org>
parents: 7115
diff changeset
60
4c88cc62e9e9 Fix by Sean Reifschneider:
Guido van Rossum <guido@python.org>
parents: 7115
diff changeset
61
61467
f197407bdba2 Recorded merge of revisions 81032 via svnmerge from
Antoine Pitrou <solipsis@pitrou.net>
parents: 48660
diff changeset
62 static PyObject *
60886
562967881dc5 Port of issue8451 to python3: Syslog use sys.argv[0] for ident.
Sean Reifscheider <jafo@tummy.com>
parents: 48660
diff changeset
63 syslog_get_argv(void)
562967881dc5 Port of issue8451 to python3: Syslog use sys.argv[0] for ident.
Sean Reifscheider <jafo@tummy.com>
parents: 48660
diff changeset
64 {
61466
cab14be0ada1 Recorded merge of revisions 81029 via svnmerge from
Antoine Pitrou <solipsis@pitrou.net>
parents: 60940
diff changeset
65 /* Figure out what to use for as the program "ident" for openlog().
cab14be0ada1 Recorded merge of revisions 81029 via svnmerge from
Antoine Pitrou <solipsis@pitrou.net>
parents: 60940
diff changeset
66 * This swallows exceptions and continues rather than failing out,
cab14be0ada1 Recorded merge of revisions 81029 via svnmerge from
Antoine Pitrou <solipsis@pitrou.net>
parents: 60940
diff changeset
67 * because the syslog module can still be used because openlog(3)
cab14be0ada1 Recorded merge of revisions 81029 via svnmerge from
Antoine Pitrou <solipsis@pitrou.net>
parents: 60940
diff changeset
68 * is optional.
cab14be0ada1 Recorded merge of revisions 81029 via svnmerge from
Antoine Pitrou <solipsis@pitrou.net>
parents: 60940
diff changeset
69 */
60886
562967881dc5 Port of issue8451 to python3: Syslog use sys.argv[0] for ident.
Sean Reifscheider <jafo@tummy.com>
parents: 48660
diff changeset
70
66799
50d170bb71c7 Issue #6697: Fixed instances of _PyUnicode_AsString() result not checked for NULL
Alexander Belopolsky <alexander.belopolsky@gmail.com>
parents: 61466
diff changeset
71 Py_ssize_t argv_len, scriptlen;
61466
cab14be0ada1 Recorded merge of revisions 81029 via svnmerge from
Antoine Pitrou <solipsis@pitrou.net>
parents: 60940
diff changeset
72 PyObject *scriptobj;
72475
8beaa9a37387 Implement PEP 393.
Martin v. Löwis <martin@v.loewis.de>
parents: 68257
diff changeset
73 Py_ssize_t slash;
86999
01c4a0af73cf Issue #19512, #19515: remove shared identifiers, move identifiers where they
Victor Stinner <victor.stinner@gmail.com>
parents: 86974
diff changeset
74 PyObject *argv = PySys_GetObject("argv");
60886
562967881dc5 Port of issue8451 to python3: Syslog use sys.argv[0] for ident.
Sean Reifscheider <jafo@tummy.com>
parents: 48660
diff changeset
75
61466
cab14be0ada1 Recorded merge of revisions 81029 via svnmerge from
Antoine Pitrou <solipsis@pitrou.net>
parents: 60940
diff changeset
76 if (argv == NULL) {
cab14be0ada1 Recorded merge of revisions 81029 via svnmerge from
Antoine Pitrou <solipsis@pitrou.net>
parents: 60940
diff changeset
77 return(NULL);
cab14be0ada1 Recorded merge of revisions 81029 via svnmerge from
Antoine Pitrou <solipsis@pitrou.net>
parents: 60940
diff changeset
78 }
60886
562967881dc5 Port of issue8451 to python3: Syslog use sys.argv[0] for ident.
Sean Reifscheider <jafo@tummy.com>
parents: 48660
diff changeset
79
61466
cab14be0ada1 Recorded merge of revisions 81029 via svnmerge from
Antoine Pitrou <solipsis@pitrou.net>
parents: 60940
diff changeset
80 argv_len = PyList_Size(argv);
cab14be0ada1 Recorded merge of revisions 81029 via svnmerge from
Antoine Pitrou <solipsis@pitrou.net>
parents: 60940
diff changeset
81 if (argv_len == -1) {
cab14be0ada1 Recorded merge of revisions 81029 via svnmerge from
Antoine Pitrou <solipsis@pitrou.net>
parents: 60940
diff changeset
82 PyErr_Clear();
cab14be0ada1 Recorded merge of revisions 81029 via svnmerge from
Antoine Pitrou <solipsis@pitrou.net>
parents: 60940
diff changeset
83 return(NULL);
cab14be0ada1 Recorded merge of revisions 81029 via svnmerge from
Antoine Pitrou <solipsis@pitrou.net>
parents: 60940
diff changeset
84 }
cab14be0ada1 Recorded merge of revisions 81029 via svnmerge from
Antoine Pitrou <solipsis@pitrou.net>
parents: 60940
diff changeset
85 if (argv_len == 0) {
cab14be0ada1 Recorded merge of revisions 81029 via svnmerge from
Antoine Pitrou <solipsis@pitrou.net>
parents: 60940
diff changeset
86 return(NULL);
cab14be0ada1 Recorded merge of revisions 81029 via svnmerge from
Antoine Pitrou <solipsis@pitrou.net>
parents: 60940
diff changeset
87 }
60886
562967881dc5 Port of issue8451 to python3: Syslog use sys.argv[0] for ident.
Sean Reifscheider <jafo@tummy.com>
parents: 48660
diff changeset
88
61466
cab14be0ada1 Recorded merge of revisions 81029 via svnmerge from
Antoine Pitrou <solipsis@pitrou.net>
parents: 60940
diff changeset
89 scriptobj = PyList_GetItem(argv, 0);
cab14be0ada1 Recorded merge of revisions 81029 via svnmerge from
Antoine Pitrou <solipsis@pitrou.net>
parents: 60940
diff changeset
90 if (!PyUnicode_Check(scriptobj)) {
cab14be0ada1 Recorded merge of revisions 81029 via svnmerge from
Antoine Pitrou <solipsis@pitrou.net>
parents: 60940
diff changeset
91 return(NULL);
cab14be0ada1 Recorded merge of revisions 81029 via svnmerge from
Antoine Pitrou <solipsis@pitrou.net>
parents: 60940
diff changeset
92 }
72863
afa42c04f0a3 Fix misuse of PyUnicode_GET_SIZE, use PyUnicode_GET_LENGTH instead
Victor Stinner <victor.stinner@haypocalc.com>
parents: 72475
diff changeset
93 scriptlen = PyUnicode_GET_LENGTH(scriptobj);
66799
50d170bb71c7 Issue #6697: Fixed instances of _PyUnicode_AsString() result not checked for NULL
Alexander Belopolsky <alexander.belopolsky@gmail.com>
parents: 61466
diff changeset
94 if (scriptlen == 0) {
61466
cab14be0ada1 Recorded merge of revisions 81029 via svnmerge from
Antoine Pitrou <solipsis@pitrou.net>
parents: 60940
diff changeset
95 return(NULL);
cab14be0ada1 Recorded merge of revisions 81029 via svnmerge from
Antoine Pitrou <solipsis@pitrou.net>
parents: 60940
diff changeset
96 }
60886
562967881dc5 Port of issue8451 to python3: Syslog use sys.argv[0] for ident.
Sean Reifscheider <jafo@tummy.com>
parents: 48660
diff changeset
97
72863
afa42c04f0a3 Fix misuse of PyUnicode_GET_SIZE, use PyUnicode_GET_LENGTH instead
Victor Stinner <victor.stinner@haypocalc.com>
parents: 72475
diff changeset
98 slash = PyUnicode_FindChar(scriptobj, SEP, 0, scriptlen, -1);
72475
8beaa9a37387 Implement PEP 393.
Martin v. Löwis <martin@v.loewis.de>
parents: 68257
diff changeset
99 if (slash == -2)
8beaa9a37387 Implement PEP 393.
Martin v. Löwis <martin@v.loewis.de>
parents: 68257
diff changeset
100 return NULL;
8beaa9a37387 Implement PEP 393.
Martin v. Löwis <martin@v.loewis.de>
parents: 68257
diff changeset
101 if (slash != -1) {
72863
afa42c04f0a3 Fix misuse of PyUnicode_GET_SIZE, use PyUnicode_GET_LENGTH instead
Victor Stinner <victor.stinner@haypocalc.com>
parents: 72475
diff changeset
102 return PyUnicode_Substring(scriptobj, slash, scriptlen);
61466
cab14be0ada1 Recorded merge of revisions 81029 via svnmerge from
Antoine Pitrou <solipsis@pitrou.net>
parents: 60940
diff changeset
103 } else {
cab14be0ada1 Recorded merge of revisions 81029 via svnmerge from
Antoine Pitrou <solipsis@pitrou.net>
parents: 60940
diff changeset
104 Py_INCREF(scriptobj);
cab14be0ada1 Recorded merge of revisions 81029 via svnmerge from
Antoine Pitrou <solipsis@pitrou.net>
parents: 60940
diff changeset
105 return(scriptobj);
cab14be0ada1 Recorded merge of revisions 81029 via svnmerge from
Antoine Pitrou <solipsis@pitrou.net>
parents: 60940
diff changeset
106 }
60886
562967881dc5 Port of issue8451 to python3: Syslog use sys.argv[0] for ident.
Sean Reifscheider <jafo@tummy.com>
parents: 48660
diff changeset
107
61466
cab14be0ada1 Recorded merge of revisions 81029 via svnmerge from
Antoine Pitrou <solipsis@pitrou.net>
parents: 60940
diff changeset
108 return(NULL);
60886
562967881dc5 Port of issue8451 to python3: Syslog use sys.argv[0] for ident.
Sean Reifscheider <jafo@tummy.com>
parents: 48660
diff changeset
109 }
562967881dc5 Port of issue8451 to python3: Syslog use sys.argv[0] for ident.
Sean Reifscheider <jafo@tummy.com>
parents: 48660
diff changeset
110
562967881dc5 Port of issue8451 to python3: Syslog use sys.argv[0] for ident.
Sean Reifscheider <jafo@tummy.com>
parents: 48660
diff changeset
111
61466
cab14be0ada1 Recorded merge of revisions 81029 via svnmerge from
Antoine Pitrou <solipsis@pitrou.net>
parents: 60940
diff changeset
112 static PyObject *
60886
562967881dc5 Port of issue8451 to python3: Syslog use sys.argv[0] for ident.
Sean Reifscheider <jafo@tummy.com>
parents: 48660
diff changeset
113 syslog_openlog(PyObject * self, PyObject * args, PyObject *kwds)
1737
ee2f88a4f9e2 Added some names to Setup.in, and added syslogmodule.c.
Guido van Rossum <guido@python.org>
parents:
diff changeset
114 {
61467
f197407bdba2 Recorded merge of revisions 81032 via svnmerge from
Antoine Pitrou <solipsis@pitrou.net>
parents: 48660
diff changeset
115 long logopt = 0;
f197407bdba2 Recorded merge of revisions 81032 via svnmerge from
Antoine Pitrou <solipsis@pitrou.net>
parents: 48660
diff changeset
116 long facility = LOG_USER;
61466
cab14be0ada1 Recorded merge of revisions 81029 via svnmerge from
Antoine Pitrou <solipsis@pitrou.net>
parents: 60940
diff changeset
117 PyObject *new_S_ident_o = NULL;
cab14be0ada1 Recorded merge of revisions 81029 via svnmerge from
Antoine Pitrou <solipsis@pitrou.net>
parents: 60940
diff changeset
118 static char *keywords[] = {"ident", "logoption", "facility", 0};
66799
50d170bb71c7 Issue #6697: Fixed instances of _PyUnicode_AsString() result not checked for NULL
Alexander Belopolsky <alexander.belopolsky@gmail.com>
parents: 61466
diff changeset
119 char *ident = NULL;
3197
5d16ecae8ee7 changes by Steve Clift
Guido van Rossum <guido@python.org>
parents: 2123
diff changeset
120
61466
cab14be0ada1 Recorded merge of revisions 81029 via svnmerge from
Antoine Pitrou <solipsis@pitrou.net>
parents: 60940
diff changeset
121 if (!PyArg_ParseTupleAndKeywords(args, kwds,
cab14be0ada1 Recorded merge of revisions 81029 via svnmerge from
Antoine Pitrou <solipsis@pitrou.net>
parents: 60940
diff changeset
122 "|Ull:openlog", keywords, &new_S_ident_o, &logopt, &facility))
61467
f197407bdba2 Recorded merge of revisions 81032 via svnmerge from
Antoine Pitrou <solipsis@pitrou.net>
parents: 48660
diff changeset
123 return NULL;
3197
5d16ecae8ee7 changes by Steve Clift
Guido van Rossum <guido@python.org>
parents: 2123
diff changeset
124
61466
cab14be0ada1 Recorded merge of revisions 81029 via svnmerge from
Antoine Pitrou <solipsis@pitrou.net>
parents: 60940
diff changeset
125 if (new_S_ident_o) {
cab14be0ada1 Recorded merge of revisions 81029 via svnmerge from
Antoine Pitrou <solipsis@pitrou.net>
parents: 60940
diff changeset
126 Py_INCREF(new_S_ident_o);
66799
50d170bb71c7 Issue #6697: Fixed instances of _PyUnicode_AsString() result not checked for NULL
Alexander Belopolsky <alexander.belopolsky@gmail.com>
parents: 61466
diff changeset
127 }
60886
562967881dc5 Port of issue8451 to python3: Syslog use sys.argv[0] for ident.
Sean Reifscheider <jafo@tummy.com>
parents: 48660
diff changeset
128
61466
cab14be0ada1 Recorded merge of revisions 81029 via svnmerge from
Antoine Pitrou <solipsis@pitrou.net>
parents: 60940
diff changeset
129 /* get sys.argv[0] or NULL if we can't for some reason */
cab14be0ada1 Recorded merge of revisions 81029 via svnmerge from
Antoine Pitrou <solipsis@pitrou.net>
parents: 60940
diff changeset
130 if (!new_S_ident_o) {
cab14be0ada1 Recorded merge of revisions 81029 via svnmerge from
Antoine Pitrou <solipsis@pitrou.net>
parents: 60940
diff changeset
131 new_S_ident_o = syslog_get_argv();
66799
50d170bb71c7 Issue #6697: Fixed instances of _PyUnicode_AsString() result not checked for NULL
Alexander Belopolsky <alexander.belopolsky@gmail.com>
parents: 61466
diff changeset
132 }
60886
562967881dc5 Port of issue8451 to python3: Syslog use sys.argv[0] for ident.
Sean Reifscheider <jafo@tummy.com>
parents: 48660
diff changeset
133
61467
f197407bdba2 Recorded merge of revisions 81032 via svnmerge from
Antoine Pitrou <solipsis@pitrou.net>
parents: 48660
diff changeset
134 Py_XDECREF(S_ident_o);
f197407bdba2 Recorded merge of revisions 81032 via svnmerge from
Antoine Pitrou <solipsis@pitrou.net>
parents: 48660
diff changeset
135 S_ident_o = new_S_ident_o;
3197
5d16ecae8ee7 changes by Steve Clift
Guido van Rossum <guido@python.org>
parents: 2123
diff changeset
136
61466
cab14be0ada1 Recorded merge of revisions 81029 via svnmerge from
Antoine Pitrou <solipsis@pitrou.net>
parents: 60940
diff changeset
137 /* At this point, S_ident_o should be INCREF()ed. openlog(3) does not
cab14be0ada1 Recorded merge of revisions 81029 via svnmerge from
Antoine Pitrou <solipsis@pitrou.net>
parents: 60940
diff changeset
138 * make a copy, and syslog(3) later uses it. We can't garbagecollect it
cab14be0ada1 Recorded merge of revisions 81029 via svnmerge from
Antoine Pitrou <solipsis@pitrou.net>
parents: 60940
diff changeset
139 * If NULL, just let openlog figure it out (probably using C argv[0]).
cab14be0ada1 Recorded merge of revisions 81029 via svnmerge from
Antoine Pitrou <solipsis@pitrou.net>
parents: 60940
diff changeset
140 */
66799
50d170bb71c7 Issue #6697: Fixed instances of _PyUnicode_AsString() result not checked for NULL
Alexander Belopolsky <alexander.belopolsky@gmail.com>
parents: 61466
diff changeset
141 if (S_ident_o) {
50d170bb71c7 Issue #6697: Fixed instances of _PyUnicode_AsString() result not checked for NULL
Alexander Belopolsky <alexander.belopolsky@gmail.com>
parents: 61466
diff changeset
142 ident = _PyUnicode_AsString(S_ident_o);
50d170bb71c7 Issue #6697: Fixed instances of _PyUnicode_AsString() result not checked for NULL
Alexander Belopolsky <alexander.belopolsky@gmail.com>
parents: 61466
diff changeset
143 if (ident == NULL)
50d170bb71c7 Issue #6697: Fixed instances of _PyUnicode_AsString() result not checked for NULL
Alexander Belopolsky <alexander.belopolsky@gmail.com>
parents: 61466
diff changeset
144 return NULL;
50d170bb71c7 Issue #6697: Fixed instances of _PyUnicode_AsString() result not checked for NULL
Alexander Belopolsky <alexander.belopolsky@gmail.com>
parents: 61466
diff changeset
145 }
4921
558abac7598d Formatting changes, plus memory management in initsyslog()
Barry Warsaw <barry@python.org>
parents: 4600
diff changeset
146
61467
f197407bdba2 Recorded merge of revisions 81032 via svnmerge from
Antoine Pitrou <solipsis@pitrou.net>
parents: 48660
diff changeset
147 openlog(ident, logopt, facility);
61466
cab14be0ada1 Recorded merge of revisions 81029 via svnmerge from
Antoine Pitrou <solipsis@pitrou.net>
parents: 60940
diff changeset
148 S_log_open = 1;
4921
558abac7598d Formatting changes, plus memory management in initsyslog()
Barry Warsaw <barry@python.org>
parents: 4600
diff changeset
149
61467
f197407bdba2 Recorded merge of revisions 81032 via svnmerge from
Antoine Pitrou <solipsis@pitrou.net>
parents: 48660
diff changeset
150 Py_INCREF(Py_None);
f197407bdba2 Recorded merge of revisions 81032 via svnmerge from
Antoine Pitrou <solipsis@pitrou.net>
parents: 48660
diff changeset
151 return Py_None;
1737
ee2f88a4f9e2 Added some names to Setup.in, and added syslogmodule.c.
Guido van Rossum <guido@python.org>
parents:
diff changeset
152 }
ee2f88a4f9e2 Added some names to Setup.in, and added syslogmodule.c.
Guido van Rossum <guido@python.org>
parents:
diff changeset
153
4921
558abac7598d Formatting changes, plus memory management in initsyslog()
Barry Warsaw <barry@python.org>
parents: 4600
diff changeset
154
61467
f197407bdba2 Recorded merge of revisions 81032 via svnmerge from
Antoine Pitrou <solipsis@pitrou.net>
parents: 48660
diff changeset
155 static PyObject *
13502
7348cceee8fa ANSI-fication
Peter Schneider-Kamp <nowonder@nowonder.de>
parents: 11882
diff changeset
156 syslog_syslog(PyObject * self, PyObject * args)
1737
ee2f88a4f9e2 Added some names to Setup.in, and added syslogmodule.c.
Guido van Rossum <guido@python.org>
parents:
diff changeset
157 {
61467
f197407bdba2 Recorded merge of revisions 81032 via svnmerge from
Antoine Pitrou <solipsis@pitrou.net>
parents: 48660
diff changeset
158 PyObject *message_object;
f197407bdba2 Recorded merge of revisions 81032 via svnmerge from
Antoine Pitrou <solipsis@pitrou.net>
parents: 48660
diff changeset
159 const char *message;
f197407bdba2 Recorded merge of revisions 81032 via svnmerge from
Antoine Pitrou <solipsis@pitrou.net>
parents: 48660
diff changeset
160 int priority = LOG_INFO;
1737
ee2f88a4f9e2 Added some names to Setup.in, and added syslogmodule.c.
Guido van Rossum <guido@python.org>
parents:
diff changeset
161
61467
f197407bdba2 Recorded merge of revisions 81032 via svnmerge from
Antoine Pitrou <solipsis@pitrou.net>
parents: 48660
diff changeset
162 if (!PyArg_ParseTuple(args, "iU;[priority,] message string",
f197407bdba2 Recorded merge of revisions 81032 via svnmerge from
Antoine Pitrou <solipsis@pitrou.net>
parents: 48660
diff changeset
163 &priority, &message_object)) {
f197407bdba2 Recorded merge of revisions 81032 via svnmerge from
Antoine Pitrou <solipsis@pitrou.net>
parents: 48660
diff changeset
164 PyErr_Clear();
f197407bdba2 Recorded merge of revisions 81032 via svnmerge from
Antoine Pitrou <solipsis@pitrou.net>
parents: 48660
diff changeset
165 if (!PyArg_ParseTuple(args, "U;[priority,] message string",
f197407bdba2 Recorded merge of revisions 81032 via svnmerge from
Antoine Pitrou <solipsis@pitrou.net>
parents: 48660
diff changeset
166 &message_object))
f197407bdba2 Recorded merge of revisions 81032 via svnmerge from
Antoine Pitrou <solipsis@pitrou.net>
parents: 48660
diff changeset
167 return NULL;
f197407bdba2 Recorded merge of revisions 81032 via svnmerge from
Antoine Pitrou <solipsis@pitrou.net>
parents: 48660
diff changeset
168 }
8286
4c88cc62e9e9 Fix by Sean Reifschneider:
Guido van Rossum <guido@python.org>
parents: 7115
diff changeset
169
61467
f197407bdba2 Recorded merge of revisions 81032 via svnmerge from
Antoine Pitrou <solipsis@pitrou.net>
parents: 48660
diff changeset
170 message = _PyUnicode_AsString(message_object);
f197407bdba2 Recorded merge of revisions 81032 via svnmerge from
Antoine Pitrou <solipsis@pitrou.net>
parents: 48660
diff changeset
171 if (message == NULL)
f197407bdba2 Recorded merge of revisions 81032 via svnmerge from
Antoine Pitrou <solipsis@pitrou.net>
parents: 48660
diff changeset
172 return NULL;
60886
562967881dc5 Port of issue8451 to python3: Syslog use sys.argv[0] for ident.
Sean Reifscheider <jafo@tummy.com>
parents: 48660
diff changeset
173
61466
cab14be0ada1 Recorded merge of revisions 81029 via svnmerge from
Antoine Pitrou <solipsis@pitrou.net>
parents: 60940
diff changeset
174 /* if log is not opened, open it now */
cab14be0ada1 Recorded merge of revisions 81029 via svnmerge from
Antoine Pitrou <solipsis@pitrou.net>
parents: 60940
diff changeset
175 if (!S_log_open) {
cab14be0ada1 Recorded merge of revisions 81029 via svnmerge from
Antoine Pitrou <solipsis@pitrou.net>
parents: 60940
diff changeset
176 PyObject *openargs;
60886
562967881dc5 Port of issue8451 to python3: Syslog use sys.argv[0] for ident.
Sean Reifscheider <jafo@tummy.com>
parents: 48660
diff changeset
177
61466
cab14be0ada1 Recorded merge of revisions 81029 via svnmerge from
Antoine Pitrou <solipsis@pitrou.net>
parents: 60940
diff changeset
178 /* Continue even if PyTuple_New fails, because openlog(3) is optional.
cab14be0ada1 Recorded merge of revisions 81029 via svnmerge from
Antoine Pitrou <solipsis@pitrou.net>
parents: 60940
diff changeset
179 * So, we can still do loggin in the unlikely event things are so hosed
cab14be0ada1 Recorded merge of revisions 81029 via svnmerge from
Antoine Pitrou <solipsis@pitrou.net>
parents: 60940
diff changeset
180 * that we can't do this tuple.
cab14be0ada1 Recorded merge of revisions 81029 via svnmerge from
Antoine Pitrou <solipsis@pitrou.net>
parents: 60940
diff changeset
181 */
cab14be0ada1 Recorded merge of revisions 81029 via svnmerge from
Antoine Pitrou <solipsis@pitrou.net>
parents: 60940
diff changeset
182 if ((openargs = PyTuple_New(0))) {
cab14be0ada1 Recorded merge of revisions 81029 via svnmerge from
Antoine Pitrou <solipsis@pitrou.net>
parents: 60940
diff changeset
183 PyObject *openlog_ret = syslog_openlog(self, openargs, NULL);
cab14be0ada1 Recorded merge of revisions 81029 via svnmerge from
Antoine Pitrou <solipsis@pitrou.net>
parents: 60940
diff changeset
184 Py_XDECREF(openlog_ret);
cab14be0ada1 Recorded merge of revisions 81029 via svnmerge from
Antoine Pitrou <solipsis@pitrou.net>
parents: 60940
diff changeset
185 Py_DECREF(openargs);
cab14be0ada1 Recorded merge of revisions 81029 via svnmerge from
Antoine Pitrou <solipsis@pitrou.net>
parents: 60940
diff changeset
186 }
cab14be0ada1 Recorded merge of revisions 81029 via svnmerge from
Antoine Pitrou <solipsis@pitrou.net>
parents: 60940
diff changeset
187 }
60886
562967881dc5 Port of issue8451 to python3: Syslog use sys.argv[0] for ident.
Sean Reifscheider <jafo@tummy.com>
parents: 48660
diff changeset
188
61467
f197407bdba2 Recorded merge of revisions 81032 via svnmerge from
Antoine Pitrou <solipsis@pitrou.net>
parents: 48660
diff changeset
189 Py_BEGIN_ALLOW_THREADS;
f197407bdba2 Recorded merge of revisions 81032 via svnmerge from
Antoine Pitrou <solipsis@pitrou.net>
parents: 48660
diff changeset
190 syslog(priority, "%s", message);
f197407bdba2 Recorded merge of revisions 81032 via svnmerge from
Antoine Pitrou <solipsis@pitrou.net>
parents: 48660
diff changeset
191 Py_END_ALLOW_THREADS;
f197407bdba2 Recorded merge of revisions 81032 via svnmerge from
Antoine Pitrou <solipsis@pitrou.net>
parents: 48660
diff changeset
192 Py_RETURN_NONE;
1737
ee2f88a4f9e2 Added some names to Setup.in, and added syslogmodule.c.
Guido van Rossum <guido@python.org>
parents:
diff changeset
193 }
ee2f88a4f9e2 Added some names to Setup.in, and added syslogmodule.c.
Guido van Rossum <guido@python.org>
parents:
diff changeset
194
61467
f197407bdba2 Recorded merge of revisions 81032 via svnmerge from
Antoine Pitrou <solipsis@pitrou.net>
parents: 48660
diff changeset
195 static PyObject *
38489
3fe3ccdf0155 Make use of METH_O and METH_NOARGS where possible.
Georg Brandl <georg@python.org>
parents: 36324
diff changeset
196 syslog_closelog(PyObject *self, PyObject *unused)
1737
ee2f88a4f9e2 Added some names to Setup.in, and added syslogmodule.c.
Guido van Rossum <guido@python.org>
parents:
diff changeset
197 {
61466
cab14be0ada1 Recorded merge of revisions 81029 via svnmerge from
Antoine Pitrou <solipsis@pitrou.net>
parents: 60940
diff changeset
198 if (S_log_open) {
cab14be0ada1 Recorded merge of revisions 81029 via svnmerge from
Antoine Pitrou <solipsis@pitrou.net>
parents: 60940
diff changeset
199 closelog();
cab14be0ada1 Recorded merge of revisions 81029 via svnmerge from
Antoine Pitrou <solipsis@pitrou.net>
parents: 60940
diff changeset
200 Py_XDECREF(S_ident_o);
cab14be0ada1 Recorded merge of revisions 81029 via svnmerge from
Antoine Pitrou <solipsis@pitrou.net>
parents: 60940
diff changeset
201 S_ident_o = NULL;
cab14be0ada1 Recorded merge of revisions 81029 via svnmerge from
Antoine Pitrou <solipsis@pitrou.net>
parents: 60940
diff changeset
202 S_log_open = 0;
cab14be0ada1 Recorded merge of revisions 81029 via svnmerge from
Antoine Pitrou <solipsis@pitrou.net>
parents: 60940
diff changeset
203 }
61467
f197407bdba2 Recorded merge of revisions 81032 via svnmerge from
Antoine Pitrou <solipsis@pitrou.net>
parents: 48660
diff changeset
204 Py_INCREF(Py_None);
f197407bdba2 Recorded merge of revisions 81032 via svnmerge from
Antoine Pitrou <solipsis@pitrou.net>
parents: 48660
diff changeset
205 return Py_None;
1737
ee2f88a4f9e2 Added some names to Setup.in, and added syslogmodule.c.
Guido van Rossum <guido@python.org>
parents:
diff changeset
206 }
ee2f88a4f9e2 Added some names to Setup.in, and added syslogmodule.c.
Guido van Rossum <guido@python.org>
parents:
diff changeset
207
61467
f197407bdba2 Recorded merge of revisions 81032 via svnmerge from
Antoine Pitrou <solipsis@pitrou.net>
parents: 48660
diff changeset
208 static PyObject *
13502
7348cceee8fa ANSI-fication
Peter Schneider-Kamp <nowonder@nowonder.de>
parents: 11882
diff changeset
209 syslog_setlogmask(PyObject *self, PyObject *args)
1737
ee2f88a4f9e2 Added some names to Setup.in, and added syslogmodule.c.
Guido van Rossum <guido@python.org>
parents:
diff changeset
210 {
61467
f197407bdba2 Recorded merge of revisions 81032 via svnmerge from
Antoine Pitrou <solipsis@pitrou.net>
parents: 48660
diff changeset
211 long maskpri, omaskpri;
3197
5d16ecae8ee7 changes by Steve Clift
Guido van Rossum <guido@python.org>
parents: 2123
diff changeset
212
61467
f197407bdba2 Recorded merge of revisions 81032 via svnmerge from
Antoine Pitrou <solipsis@pitrou.net>
parents: 48660
diff changeset
213 if (!PyArg_ParseTuple(args, "l;mask for priority", &maskpri))
f197407bdba2 Recorded merge of revisions 81032 via svnmerge from
Antoine Pitrou <solipsis@pitrou.net>
parents: 48660
diff changeset
214 return NULL;
f197407bdba2 Recorded merge of revisions 81032 via svnmerge from
Antoine Pitrou <solipsis@pitrou.net>
parents: 48660
diff changeset
215 omaskpri = setlogmask(maskpri);
f197407bdba2 Recorded merge of revisions 81032 via svnmerge from
Antoine Pitrou <solipsis@pitrou.net>
parents: 48660
diff changeset
216 return PyLong_FromLong(omaskpri);
1737
ee2f88a4f9e2 Added some names to Setup.in, and added syslogmodule.c.
Guido van Rossum <guido@python.org>
parents:
diff changeset
217 }
ee2f88a4f9e2 Added some names to Setup.in, and added syslogmodule.c.
Guido van Rossum <guido@python.org>
parents:
diff changeset
218
61467
f197407bdba2 Recorded merge of revisions 81032 via svnmerge from
Antoine Pitrou <solipsis@pitrou.net>
parents: 48660
diff changeset
219 static PyObject *
13502
7348cceee8fa ANSI-fication
Peter Schneider-Kamp <nowonder@nowonder.de>
parents: 11882
diff changeset
220 syslog_log_mask(PyObject *self, PyObject *args)
1737
ee2f88a4f9e2 Added some names to Setup.in, and added syslogmodule.c.
Guido van Rossum <guido@python.org>
parents:
diff changeset
221 {
61467
f197407bdba2 Recorded merge of revisions 81032 via svnmerge from
Antoine Pitrou <solipsis@pitrou.net>
parents: 48660
diff changeset
222 long mask;
f197407bdba2 Recorded merge of revisions 81032 via svnmerge from
Antoine Pitrou <solipsis@pitrou.net>
parents: 48660
diff changeset
223 long pri;
f197407bdba2 Recorded merge of revisions 81032 via svnmerge from
Antoine Pitrou <solipsis@pitrou.net>
parents: 48660
diff changeset
224 if (!PyArg_ParseTuple(args, "l:LOG_MASK", &pri))
f197407bdba2 Recorded merge of revisions 81032 via svnmerge from
Antoine Pitrou <solipsis@pitrou.net>
parents: 48660
diff changeset
225 return NULL;
f197407bdba2 Recorded merge of revisions 81032 via svnmerge from
Antoine Pitrou <solipsis@pitrou.net>
parents: 48660
diff changeset
226 mask = LOG_MASK(pri);
f197407bdba2 Recorded merge of revisions 81032 via svnmerge from
Antoine Pitrou <solipsis@pitrou.net>
parents: 48660
diff changeset
227 return PyLong_FromLong(mask);
1737
ee2f88a4f9e2 Added some names to Setup.in, and added syslogmodule.c.
Guido van Rossum <guido@python.org>
parents:
diff changeset
228 }
ee2f88a4f9e2 Added some names to Setup.in, and added syslogmodule.c.
Guido van Rossum <guido@python.org>
parents:
diff changeset
229
61467
f197407bdba2 Recorded merge of revisions 81032 via svnmerge from
Antoine Pitrou <solipsis@pitrou.net>
parents: 48660
diff changeset
230 static PyObject *
13502
7348cceee8fa ANSI-fication
Peter Schneider-Kamp <nowonder@nowonder.de>
parents: 11882
diff changeset
231 syslog_log_upto(PyObject *self, PyObject *args)
1737
ee2f88a4f9e2 Added some names to Setup.in, and added syslogmodule.c.
Guido van Rossum <guido@python.org>
parents:
diff changeset
232 {
61467
f197407bdba2 Recorded merge of revisions 81032 via svnmerge from
Antoine Pitrou <solipsis@pitrou.net>
parents: 48660
diff changeset
233 long mask;
f197407bdba2 Recorded merge of revisions 81032 via svnmerge from
Antoine Pitrou <solipsis@pitrou.net>
parents: 48660
diff changeset
234 long pri;
f197407bdba2 Recorded merge of revisions 81032 via svnmerge from
Antoine Pitrou <solipsis@pitrou.net>
parents: 48660
diff changeset
235 if (!PyArg_ParseTuple(args, "l:LOG_UPTO", &pri))
f197407bdba2 Recorded merge of revisions 81032 via svnmerge from
Antoine Pitrou <solipsis@pitrou.net>
parents: 48660
diff changeset
236 return NULL;
f197407bdba2 Recorded merge of revisions 81032 via svnmerge from
Antoine Pitrou <solipsis@pitrou.net>
parents: 48660
diff changeset
237 mask = LOG_UPTO(pri);
f197407bdba2 Recorded merge of revisions 81032 via svnmerge from
Antoine Pitrou <solipsis@pitrou.net>
parents: 48660
diff changeset
238 return PyLong_FromLong(mask);
1737
ee2f88a4f9e2 Added some names to Setup.in, and added syslogmodule.c.
Guido van Rossum <guido@python.org>
parents:
diff changeset
239 }
ee2f88a4f9e2 Added some names to Setup.in, and added syslogmodule.c.
Guido van Rossum <guido@python.org>
parents:
diff changeset
240
ee2f88a4f9e2 Added some names to Setup.in, and added syslogmodule.c.
Guido van Rossum <guido@python.org>
parents:
diff changeset
241 /* List of functions defined in the module */
ee2f88a4f9e2 Added some names to Setup.in, and added syslogmodule.c.
Guido van Rossum <guido@python.org>
parents:
diff changeset
242
1855
9dbdb83d4178 Lance has converted his modules to the new naming conventions, and
Guido van Rossum <guido@python.org>
parents: 1737
diff changeset
243 static PyMethodDef syslog_methods[] = {
61466
cab14be0ada1 Recorded merge of revisions 81029 via svnmerge from
Antoine Pitrou <solipsis@pitrou.net>
parents: 60940
diff changeset
244 {"openlog", (PyCFunction) syslog_openlog, METH_VARARGS | METH_KEYWORDS},
61467
f197407bdba2 Recorded merge of revisions 81032 via svnmerge from
Antoine Pitrou <solipsis@pitrou.net>
parents: 48660
diff changeset
245 {"closelog", syslog_closelog, METH_NOARGS},
f197407bdba2 Recorded merge of revisions 81032 via svnmerge from
Antoine Pitrou <solipsis@pitrou.net>
parents: 48660
diff changeset
246 {"syslog", syslog_syslog, METH_VARARGS},
f197407bdba2 Recorded merge of revisions 81032 via svnmerge from
Antoine Pitrou <solipsis@pitrou.net>
parents: 48660
diff changeset
247 {"setlogmask", syslog_setlogmask, METH_VARARGS},
f197407bdba2 Recorded merge of revisions 81032 via svnmerge from
Antoine Pitrou <solipsis@pitrou.net>
parents: 48660
diff changeset
248 {"LOG_MASK", syslog_log_mask, METH_VARARGS},
f197407bdba2 Recorded merge of revisions 81032 via svnmerge from
Antoine Pitrou <solipsis@pitrou.net>
parents: 48660
diff changeset
249 {"LOG_UPTO", syslog_log_upto, METH_VARARGS},
f197407bdba2 Recorded merge of revisions 81032 via svnmerge from
Antoine Pitrou <solipsis@pitrou.net>
parents: 48660
diff changeset
250 {NULL, NULL, 0}
1737
ee2f88a4f9e2 Added some names to Setup.in, and added syslogmodule.c.
Guido van Rossum <guido@python.org>
parents:
diff changeset
251 };
ee2f88a4f9e2 Added some names to Setup.in, and added syslogmodule.c.
Guido van Rossum <guido@python.org>
parents:
diff changeset
252
8286
4c88cc62e9e9 Fix by Sean Reifschneider:
Guido van Rossum <guido@python.org>
parents: 7115
diff changeset
253 /* Initialization function for the module */
3197
5d16ecae8ee7 changes by Steve Clift
Guido van Rossum <guido@python.org>
parents: 2123
diff changeset
254
47580
94f64f11fdd0 Implement PEP 3121: new module initialization and finalization API.
Martin v. Löwis <martin@v.loewis.de>
parents: 45471
diff changeset
255
94f64f11fdd0 Implement PEP 3121: new module initialization and finalization API.
Martin v. Löwis <martin@v.loewis.de>
parents: 45471
diff changeset
256 static struct PyModuleDef syslogmodule = {
61467
f197407bdba2 Recorded merge of revisions 81032 via svnmerge from
Antoine Pitrou <solipsis@pitrou.net>
parents: 48660
diff changeset
257 PyModuleDef_HEAD_INIT,
f197407bdba2 Recorded merge of revisions 81032 via svnmerge from
Antoine Pitrou <solipsis@pitrou.net>
parents: 48660
diff changeset
258 "syslog",
f197407bdba2 Recorded merge of revisions 81032 via svnmerge from
Antoine Pitrou <solipsis@pitrou.net>
parents: 48660
diff changeset
259 NULL,
f197407bdba2 Recorded merge of revisions 81032 via svnmerge from
Antoine Pitrou <solipsis@pitrou.net>
parents: 48660
diff changeset
260 -1,
f197407bdba2 Recorded merge of revisions 81032 via svnmerge from
Antoine Pitrou <solipsis@pitrou.net>
parents: 48660
diff changeset
261 syslog_methods,
f197407bdba2 Recorded merge of revisions 81032 via svnmerge from
Antoine Pitrou <solipsis@pitrou.net>
parents: 48660
diff changeset
262 NULL,
f197407bdba2 Recorded merge of revisions 81032 via svnmerge from
Antoine Pitrou <solipsis@pitrou.net>
parents: 48660
diff changeset
263 NULL,
f197407bdba2 Recorded merge of revisions 81032 via svnmerge from
Antoine Pitrou <solipsis@pitrou.net>
parents: 48660
diff changeset
264 NULL,
f197407bdba2 Recorded merge of revisions 81032 via svnmerge from
Antoine Pitrou <solipsis@pitrou.net>
parents: 48660
diff changeset
265 NULL
47580
94f64f11fdd0 Implement PEP 3121: new module initialization and finalization API.
Martin v. Löwis <martin@v.loewis.de>
parents: 45471
diff changeset
266 };
94f64f11fdd0 Implement PEP 3121: new module initialization and finalization API.
Martin v. Löwis <martin@v.loewis.de>
parents: 45471
diff changeset
267
24471
f66b3a3509c7 Excise DL_EXPORT/DL_IMPORT from Modules/*. Required adding a prototype
Mark Hammond <mhammond@skippinet.com.au>
parents: 22729
diff changeset
268 PyMODINIT_FUNC
47580
94f64f11fdd0 Implement PEP 3121: new module initialization and finalization API.
Martin v. Löwis <martin@v.loewis.de>
parents: 45471
diff changeset
269 PyInit_syslog(void)
1737
ee2f88a4f9e2 Added some names to Setup.in, and added syslogmodule.c.
Guido van Rossum <guido@python.org>
parents:
diff changeset
270 {
61467
f197407bdba2 Recorded merge of revisions 81032 via svnmerge from
Antoine Pitrou <solipsis@pitrou.net>
parents: 48660
diff changeset
271 PyObject *m;
1737
ee2f88a4f9e2 Added some names to Setup.in, and added syslogmodule.c.
Guido van Rossum <guido@python.org>
parents:
diff changeset
272
61467
f197407bdba2 Recorded merge of revisions 81032 via svnmerge from
Antoine Pitrou <solipsis@pitrou.net>
parents: 48660
diff changeset
273 /* Create the module and add the functions */
f197407bdba2 Recorded merge of revisions 81032 via svnmerge from
Antoine Pitrou <solipsis@pitrou.net>
parents: 48660
diff changeset
274 m = PyModule_Create(&syslogmodule);
f197407bdba2 Recorded merge of revisions 81032 via svnmerge from
Antoine Pitrou <solipsis@pitrou.net>
parents: 48660
diff changeset
275 if (m == NULL)
f197407bdba2 Recorded merge of revisions 81032 via svnmerge from
Antoine Pitrou <solipsis@pitrou.net>
parents: 48660
diff changeset
276 return NULL;
1737
ee2f88a4f9e2 Added some names to Setup.in, and added syslogmodule.c.
Guido van Rossum <guido@python.org>
parents:
diff changeset
277
61467
f197407bdba2 Recorded merge of revisions 81032 via svnmerge from
Antoine Pitrou <solipsis@pitrou.net>
parents: 48660
diff changeset
278 /* Add some symbolic constants to the module */
3197
5d16ecae8ee7 changes by Steve Clift
Guido van Rossum <guido@python.org>
parents: 2123
diff changeset
279
61467
f197407bdba2 Recorded merge of revisions 81032 via svnmerge from
Antoine Pitrou <solipsis@pitrou.net>
parents: 48660
diff changeset
280 /* Priorities */
83867
12cbb5183d98 Issue #17917: Use PyModule_AddIntMacro() instead of PyModule_AddIntConstant()
Charles-Francois Natali <cf.natali@gmail.com>
parents: 75981
diff changeset
281 PyModule_AddIntMacro(m, LOG_EMERG);
12cbb5183d98 Issue #17917: Use PyModule_AddIntMacro() instead of PyModule_AddIntConstant()
Charles-Francois Natali <cf.natali@gmail.com>
parents: 75981
diff changeset
282 PyModule_AddIntMacro(m, LOG_ALERT);
12cbb5183d98 Issue #17917: Use PyModule_AddIntMacro() instead of PyModule_AddIntConstant()
Charles-Francois Natali <cf.natali@gmail.com>
parents: 75981
diff changeset
283 PyModule_AddIntMacro(m, LOG_CRIT);
12cbb5183d98 Issue #17917: Use PyModule_AddIntMacro() instead of PyModule_AddIntConstant()
Charles-Francois Natali <cf.natali@gmail.com>
parents: 75981
diff changeset
284 PyModule_AddIntMacro(m, LOG_ERR);
12cbb5183d98 Issue #17917: Use PyModule_AddIntMacro() instead of PyModule_AddIntConstant()
Charles-Francois Natali <cf.natali@gmail.com>
parents: 75981
diff changeset
285 PyModule_AddIntMacro(m, LOG_WARNING);
12cbb5183d98 Issue #17917: Use PyModule_AddIntMacro() instead of PyModule_AddIntConstant()
Charles-Francois Natali <cf.natali@gmail.com>
parents: 75981
diff changeset
286 PyModule_AddIntMacro(m, LOG_NOTICE);
12cbb5183d98 Issue #17917: Use PyModule_AddIntMacro() instead of PyModule_AddIntConstant()
Charles-Francois Natali <cf.natali@gmail.com>
parents: 75981
diff changeset
287 PyModule_AddIntMacro(m, LOG_INFO);
12cbb5183d98 Issue #17917: Use PyModule_AddIntMacro() instead of PyModule_AddIntConstant()
Charles-Francois Natali <cf.natali@gmail.com>
parents: 75981
diff changeset
288 PyModule_AddIntMacro(m, LOG_DEBUG);
3197
5d16ecae8ee7 changes by Steve Clift
Guido van Rossum <guido@python.org>
parents: 2123
diff changeset
289
61467
f197407bdba2 Recorded merge of revisions 81032 via svnmerge from
Antoine Pitrou <solipsis@pitrou.net>
parents: 48660
diff changeset
290 /* openlog() option flags */
83867
12cbb5183d98 Issue #17917: Use PyModule_AddIntMacro() instead of PyModule_AddIntConstant()
Charles-Francois Natali <cf.natali@gmail.com>
parents: 75981
diff changeset
291 PyModule_AddIntMacro(m, LOG_PID);
12cbb5183d98 Issue #17917: Use PyModule_AddIntMacro() instead of PyModule_AddIntConstant()
Charles-Francois Natali <cf.natali@gmail.com>
parents: 75981
diff changeset
292 PyModule_AddIntMacro(m, LOG_CONS);
12cbb5183d98 Issue #17917: Use PyModule_AddIntMacro() instead of PyModule_AddIntConstant()
Charles-Francois Natali <cf.natali@gmail.com>
parents: 75981
diff changeset
293 PyModule_AddIntMacro(m, LOG_NDELAY);
75981
dc8e61044055 #14416: conditionally add LOG_AUTHPRIV facility and LOG_ODELAY to syslog.
R David Murray <rdmurray@bitdance.com>
parents: 72863
diff changeset
294 #ifdef LOG_ODELAY
83867
12cbb5183d98 Issue #17917: Use PyModule_AddIntMacro() instead of PyModule_AddIntConstant()
Charles-Francois Natali <cf.natali@gmail.com>
parents: 75981
diff changeset
295 PyModule_AddIntMacro(m, LOG_ODELAY);
75981
dc8e61044055 #14416: conditionally add LOG_AUTHPRIV facility and LOG_ODELAY to syslog.
R David Murray <rdmurray@bitdance.com>
parents: 72863
diff changeset
296 #endif
8823
f2a4a2b60860 Changes for BeOS, QNX and long long, by Chris Herborth.
Guido van Rossum <guido@python.org>
parents: 8286
diff changeset
297 #ifdef LOG_NOWAIT
83867
12cbb5183d98 Issue #17917: Use PyModule_AddIntMacro() instead of PyModule_AddIntConstant()
Charles-Francois Natali <cf.natali@gmail.com>
parents: 75981
diff changeset
298 PyModule_AddIntMacro(m, LOG_NOWAIT);
8823
f2a4a2b60860 Changes for BeOS, QNX and long long, by Chris Herborth.
Guido van Rossum <guido@python.org>
parents: 8286
diff changeset
299 #endif
3197
5d16ecae8ee7 changes by Steve Clift
Guido van Rossum <guido@python.org>
parents: 2123
diff changeset
300 #ifdef LOG_PERROR
83867
12cbb5183d98 Issue #17917: Use PyModule_AddIntMacro() instead of PyModule_AddIntConstant()
Charles-Francois Natali <cf.natali@gmail.com>
parents: 75981
diff changeset
301 PyModule_AddIntMacro(m, LOG_PERROR);
3197
5d16ecae8ee7 changes by Steve Clift
Guido van Rossum <guido@python.org>
parents: 2123
diff changeset
302 #endif
5d16ecae8ee7 changes by Steve Clift
Guido van Rossum <guido@python.org>
parents: 2123
diff changeset
303
61467
f197407bdba2 Recorded merge of revisions 81032 via svnmerge from
Antoine Pitrou <solipsis@pitrou.net>
parents: 48660
diff changeset
304 /* Facilities */
83867
12cbb5183d98 Issue #17917: Use PyModule_AddIntMacro() instead of PyModule_AddIntConstant()
Charles-Francois Natali <cf.natali@gmail.com>
parents: 75981
diff changeset
305 PyModule_AddIntMacro(m, LOG_KERN);
12cbb5183d98 Issue #17917: Use PyModule_AddIntMacro() instead of PyModule_AddIntConstant()
Charles-Francois Natali <cf.natali@gmail.com>
parents: 75981
diff changeset
306 PyModule_AddIntMacro(m, LOG_USER);
12cbb5183d98 Issue #17917: Use PyModule_AddIntMacro() instead of PyModule_AddIntConstant()
Charles-Francois Natali <cf.natali@gmail.com>
parents: 75981
diff changeset
307 PyModule_AddIntMacro(m, LOG_MAIL);
12cbb5183d98 Issue #17917: Use PyModule_AddIntMacro() instead of PyModule_AddIntConstant()
Charles-Francois Natali <cf.natali@gmail.com>
parents: 75981
diff changeset
308 PyModule_AddIntMacro(m, LOG_DAEMON);
12cbb5183d98 Issue #17917: Use PyModule_AddIntMacro() instead of PyModule_AddIntConstant()
Charles-Francois Natali <cf.natali@gmail.com>
parents: 75981
diff changeset
309 PyModule_AddIntMacro(m, LOG_AUTH);
12cbb5183d98 Issue #17917: Use PyModule_AddIntMacro() instead of PyModule_AddIntConstant()
Charles-Francois Natali <cf.natali@gmail.com>
parents: 75981
diff changeset
310 PyModule_AddIntMacro(m, LOG_LPR);
12cbb5183d98 Issue #17917: Use PyModule_AddIntMacro() instead of PyModule_AddIntConstant()
Charles-Francois Natali <cf.natali@gmail.com>
parents: 75981
diff changeset
311 PyModule_AddIntMacro(m, LOG_LOCAL0);
12cbb5183d98 Issue #17917: Use PyModule_AddIntMacro() instead of PyModule_AddIntConstant()
Charles-Francois Natali <cf.natali@gmail.com>
parents: 75981
diff changeset
312 PyModule_AddIntMacro(m, LOG_LOCAL1);
12cbb5183d98 Issue #17917: Use PyModule_AddIntMacro() instead of PyModule_AddIntConstant()
Charles-Francois Natali <cf.natali@gmail.com>
parents: 75981
diff changeset
313 PyModule_AddIntMacro(m, LOG_LOCAL2);
12cbb5183d98 Issue #17917: Use PyModule_AddIntMacro() instead of PyModule_AddIntConstant()
Charles-Francois Natali <cf.natali@gmail.com>
parents: 75981
diff changeset
314 PyModule_AddIntMacro(m, LOG_LOCAL3);
12cbb5183d98 Issue #17917: Use PyModule_AddIntMacro() instead of PyModule_AddIntConstant()
Charles-Francois Natali <cf.natali@gmail.com>
parents: 75981
diff changeset
315 PyModule_AddIntMacro(m, LOG_LOCAL4);
12cbb5183d98 Issue #17917: Use PyModule_AddIntMacro() instead of PyModule_AddIntConstant()
Charles-Francois Natali <cf.natali@gmail.com>
parents: 75981
diff changeset
316 PyModule_AddIntMacro(m, LOG_LOCAL5);
12cbb5183d98 Issue #17917: Use PyModule_AddIntMacro() instead of PyModule_AddIntConstant()
Charles-Francois Natali <cf.natali@gmail.com>
parents: 75981
diff changeset
317 PyModule_AddIntMacro(m, LOG_LOCAL6);
12cbb5183d98 Issue #17917: Use PyModule_AddIntMacro() instead of PyModule_AddIntConstant()
Charles-Francois Natali <cf.natali@gmail.com>
parents: 75981
diff changeset
318 PyModule_AddIntMacro(m, LOG_LOCAL7);
1737
ee2f88a4f9e2 Added some names to Setup.in, and added syslogmodule.c.
Guido van Rossum <guido@python.org>
parents:
diff changeset
319
8286
4c88cc62e9e9 Fix by Sean Reifschneider:
Guido van Rossum <guido@python.org>
parents: 7115
diff changeset
320 #ifndef LOG_SYSLOG
61467
f197407bdba2 Recorded merge of revisions 81032 via svnmerge from
Antoine Pitrou <solipsis@pitrou.net>
parents: 48660
diff changeset
321 #define LOG_SYSLOG LOG_DAEMON
8286
4c88cc62e9e9 Fix by Sean Reifschneider:
Guido van Rossum <guido@python.org>
parents: 7115
diff changeset
322 #endif
4c88cc62e9e9 Fix by Sean Reifschneider:
Guido van Rossum <guido@python.org>
parents: 7115
diff changeset
323 #ifndef LOG_NEWS
61467
f197407bdba2 Recorded merge of revisions 81032 via svnmerge from
Antoine Pitrou <solipsis@pitrou.net>
parents: 48660
diff changeset
324 #define LOG_NEWS LOG_MAIL
8286
4c88cc62e9e9 Fix by Sean Reifschneider:
Guido van Rossum <guido@python.org>
parents: 7115
diff changeset
325 #endif
4c88cc62e9e9 Fix by Sean Reifschneider:
Guido van Rossum <guido@python.org>
parents: 7115
diff changeset
326 #ifndef LOG_UUCP
61467
f197407bdba2 Recorded merge of revisions 81032 via svnmerge from
Antoine Pitrou <solipsis@pitrou.net>
parents: 48660
diff changeset
327 #define LOG_UUCP LOG_MAIL
8286
4c88cc62e9e9 Fix by Sean Reifschneider:
Guido van Rossum <guido@python.org>
parents: 7115
diff changeset
328 #endif
4c88cc62e9e9 Fix by Sean Reifschneider:
Guido van Rossum <guido@python.org>
parents: 7115
diff changeset
329 #ifndef LOG_CRON
61467
f197407bdba2 Recorded merge of revisions 81032 via svnmerge from
Antoine Pitrou <solipsis@pitrou.net>
parents: 48660
diff changeset
330 #define LOG_CRON LOG_DAEMON
8286
4c88cc62e9e9 Fix by Sean Reifschneider:
Guido van Rossum <guido@python.org>
parents: 7115
diff changeset
331 #endif
4c88cc62e9e9 Fix by Sean Reifschneider:
Guido van Rossum <guido@python.org>
parents: 7115
diff changeset
332
83867
12cbb5183d98 Issue #17917: Use PyModule_AddIntMacro() instead of PyModule_AddIntConstant()
Charles-Francois Natali <cf.natali@gmail.com>
parents: 75981
diff changeset
333 PyModule_AddIntMacro(m, LOG_SYSLOG);
12cbb5183d98 Issue #17917: Use PyModule_AddIntMacro() instead of PyModule_AddIntConstant()
Charles-Francois Natali <cf.natali@gmail.com>
parents: 75981
diff changeset
334 PyModule_AddIntMacro(m, LOG_CRON);
12cbb5183d98 Issue #17917: Use PyModule_AddIntMacro() instead of PyModule_AddIntConstant()
Charles-Francois Natali <cf.natali@gmail.com>
parents: 75981
diff changeset
335 PyModule_AddIntMacro(m, LOG_UUCP);
12cbb5183d98 Issue #17917: Use PyModule_AddIntMacro() instead of PyModule_AddIntConstant()
Charles-Francois Natali <cf.natali@gmail.com>
parents: 75981
diff changeset
336 PyModule_AddIntMacro(m, LOG_NEWS);
75981
dc8e61044055 #14416: conditionally add LOG_AUTHPRIV facility and LOG_ODELAY to syslog.
R David Murray <rdmurray@bitdance.com>
parents: 72863
diff changeset
337
dc8e61044055 #14416: conditionally add LOG_AUTHPRIV facility and LOG_ODELAY to syslog.
R David Murray <rdmurray@bitdance.com>
parents: 72863
diff changeset
338 #ifdef LOG_AUTHPRIV
83867
12cbb5183d98 Issue #17917: Use PyModule_AddIntMacro() instead of PyModule_AddIntConstant()
Charles-Francois Natali <cf.natali@gmail.com>
parents: 75981
diff changeset
339 PyModule_AddIntMacro(m, LOG_AUTHPRIV);
75981
dc8e61044055 #14416: conditionally add LOG_AUTHPRIV facility and LOG_ODELAY to syslog.
R David Murray <rdmurray@bitdance.com>
parents: 72863
diff changeset
340 #endif
dc8e61044055 #14416: conditionally add LOG_AUTHPRIV facility and LOG_ODELAY to syslog.
R David Murray <rdmurray@bitdance.com>
parents: 72863
diff changeset
341
61467
f197407bdba2 Recorded merge of revisions 81032 via svnmerge from
Antoine Pitrou <solipsis@pitrou.net>
parents: 48660
diff changeset
342 return m;
1737
ee2f88a4f9e2 Added some names to Setup.in, and added syslogmodule.c.
Guido van Rossum <guido@python.org>
parents:
diff changeset
343 }