@@ -261,72 +261,55 @@ static PyMethodDef syslog_methods[] = {
261
261
{NULL , NULL , 0 }
262
262
};
263
263
264
- /* Initialization function for the module */
265
-
266
-
267
- static struct PyModuleDef syslogmodule = {
268
- PyModuleDef_HEAD_INIT ,
269
- "syslog" ,
270
- NULL ,
271
- -1 ,
272
- syslog_methods ,
273
- NULL ,
274
- NULL ,
275
- NULL ,
276
- NULL
277
- };
278
264
279
- PyMODINIT_FUNC
280
- PyInit_syslog ( void )
265
+ static int
266
+ syslog_exec ( PyObject * module )
281
267
{
282
- PyObject * m ;
283
-
284
- /* Create the module and add the functions */
285
- m = PyModule_Create (& syslogmodule );
286
- if (m == NULL )
287
- return NULL ;
288
-
289
- /* Add some symbolic constants to the module */
290
-
268
+ #define ADD_INT_MACRO (module , macro ) \
269
+ do { \
270
+ if (PyModule_AddIntConstant(module, #macro, macro) < 0) { \
271
+ return -1; \
272
+ } \
273
+ } while (0)
291
274
/* Priorities */
292
- PyModule_AddIntMacro ( m , LOG_EMERG );
293
- PyModule_AddIntMacro ( m , LOG_ALERT );
294
- PyModule_AddIntMacro ( m , LOG_CRIT );
295
- PyModule_AddIntMacro ( m , LOG_ERR );
296
- PyModule_AddIntMacro ( m , LOG_WARNING );
297
- PyModule_AddIntMacro ( m , LOG_NOTICE );
298
- PyModule_AddIntMacro ( m , LOG_INFO );
299
- PyModule_AddIntMacro ( m , LOG_DEBUG );
275
+ ADD_INT_MACRO ( module , LOG_EMERG );
276
+ ADD_INT_MACRO ( module , LOG_ALERT );
277
+ ADD_INT_MACRO ( module , LOG_CRIT );
278
+ ADD_INT_MACRO ( module , LOG_ERR );
279
+ ADD_INT_MACRO ( module , LOG_WARNING );
280
+ ADD_INT_MACRO ( module , LOG_NOTICE );
281
+ ADD_INT_MACRO ( module , LOG_INFO );
282
+ ADD_INT_MACRO ( module , LOG_DEBUG );
300
283
301
284
/* openlog() option flags */
302
- PyModule_AddIntMacro ( m , LOG_PID );
303
- PyModule_AddIntMacro ( m , LOG_CONS );
304
- PyModule_AddIntMacro ( m , LOG_NDELAY );
285
+ ADD_INT_MACRO ( module , LOG_PID );
286
+ ADD_INT_MACRO ( module , LOG_CONS );
287
+ ADD_INT_MACRO ( module , LOG_NDELAY );
305
288
#ifdef LOG_ODELAY
306
- PyModule_AddIntMacro ( m , LOG_ODELAY );
289
+ ADD_INT_MACRO ( module , LOG_ODELAY );
307
290
#endif
308
291
#ifdef LOG_NOWAIT
309
- PyModule_AddIntMacro ( m , LOG_NOWAIT );
292
+ ADD_INT_MACRO ( module , LOG_NOWAIT );
310
293
#endif
311
294
#ifdef LOG_PERROR
312
- PyModule_AddIntMacro ( m , LOG_PERROR );
295
+ ADD_INT_MACRO ( module , LOG_PERROR );
313
296
#endif
314
297
315
298
/* Facilities */
316
- PyModule_AddIntMacro ( m , LOG_KERN );
317
- PyModule_AddIntMacro ( m , LOG_USER );
318
- PyModule_AddIntMacro ( m , LOG_MAIL );
319
- PyModule_AddIntMacro ( m , LOG_DAEMON );
320
- PyModule_AddIntMacro ( m , LOG_AUTH );
321
- PyModule_AddIntMacro ( m , LOG_LPR );
322
- PyModule_AddIntMacro ( m , LOG_LOCAL0 );
323
- PyModule_AddIntMacro ( m , LOG_LOCAL1 );
324
- PyModule_AddIntMacro ( m , LOG_LOCAL2 );
325
- PyModule_AddIntMacro ( m , LOG_LOCAL3 );
326
- PyModule_AddIntMacro ( m , LOG_LOCAL4 );
327
- PyModule_AddIntMacro ( m , LOG_LOCAL5 );
328
- PyModule_AddIntMacro ( m , LOG_LOCAL6 );
329
- PyModule_AddIntMacro ( m , LOG_LOCAL7 );
299
+ ADD_INT_MACRO ( module , LOG_KERN );
300
+ ADD_INT_MACRO ( module , LOG_USER );
301
+ ADD_INT_MACRO ( module , LOG_MAIL );
302
+ ADD_INT_MACRO ( module , LOG_DAEMON );
303
+ ADD_INT_MACRO ( module , LOG_AUTH );
304
+ ADD_INT_MACRO ( module , LOG_LPR );
305
+ ADD_INT_MACRO ( module , LOG_LOCAL0 );
306
+ ADD_INT_MACRO ( module , LOG_LOCAL1 );
307
+ ADD_INT_MACRO ( module , LOG_LOCAL2 );
308
+ ADD_INT_MACRO ( module , LOG_LOCAL3 );
309
+ ADD_INT_MACRO ( module , LOG_LOCAL4 );
310
+ ADD_INT_MACRO ( module , LOG_LOCAL5 );
311
+ ADD_INT_MACRO ( module , LOG_LOCAL6 );
312
+ ADD_INT_MACRO ( module , LOG_LOCAL7 );
330
313
331
314
#ifndef LOG_SYSLOG
332
315
#define LOG_SYSLOG LOG_DAEMON
@@ -341,14 +324,35 @@ PyInit_syslog(void)
341
324
#define LOG_CRON LOG_DAEMON
342
325
#endif
343
326
344
- PyModule_AddIntMacro ( m , LOG_SYSLOG );
345
- PyModule_AddIntMacro ( m , LOG_CRON );
346
- PyModule_AddIntMacro ( m , LOG_UUCP );
347
- PyModule_AddIntMacro ( m , LOG_NEWS );
327
+ ADD_INT_MACRO ( module , LOG_SYSLOG );
328
+ ADD_INT_MACRO ( module , LOG_CRON );
329
+ ADD_INT_MACRO ( module , LOG_UUCP );
330
+ ADD_INT_MACRO ( module , LOG_NEWS );
348
331
349
332
#ifdef LOG_AUTHPRIV
350
- PyModule_AddIntMacro ( m , LOG_AUTHPRIV );
333
+ ADD_INT_MACRO ( module , LOG_AUTHPRIV );
351
334
#endif
352
335
353
- return m ;
336
+ return 0 ;
354
337
}
338
+
339
+ static PyModuleDef_Slot syslog_slots [] = {
340
+ {Py_mod_exec , syslog_exec },
341
+ {0 , NULL }
342
+ };
343
+
344
+ /* Initialization function for the module */
345
+
346
+ static struct PyModuleDef syslogmodule = {
347
+ PyModuleDef_HEAD_INIT ,
348
+ .m_name = "syslog" ,
349
+ .m_size = 0 ,
350
+ .m_methods = syslog_methods ,
351
+ .m_slots = syslog_slots ,
352
+ };
353
+
354
+ PyMODINIT_FUNC
355
+ PyInit_syslog (void )
356
+ {
357
+ return PyModuleDef_Init (& syslogmodule );
358
+ }
0 commit comments