Mercurial > cpython-lru_cache-weakref
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 |
| 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 | 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 | 99 if (slash == -2) |
| 100 return NULL; | |
| 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 } |
