X-Git-Url: http://www.chiark.greenend.org.uk/ucgi/~ianmdlvl/git?a=blobdiff_plain;f=src%2Fpython-systemd%2F_journal.c;h=456e4a2796bbad2bd8ece51cfeaa033fe0460b2d;hb=ac45dec934b0932d03fbd498a3c6e8e90a01813f;hp=eab9c2982ceeafee146e85cb31914096b8609e0c;hpb=c4164442defa56dfa92a6b0fa5d49d8876e0ebb7;p=elogind.git diff --git a/src/python-systemd/_journal.c b/src/python-systemd/_journal.c index eab9c2982..456e4a279 100644 --- a/src/python-systemd/_journal.c +++ b/src/python-systemd/_journal.c @@ -3,7 +3,7 @@ /*** This file is part of systemd. - Copyright 2012 David Strauss + Copyright 2012 David Strauss systemd is free software; you can redistribute it and/or modify it under the terms of the GNU Lesser General Public License as published by @@ -22,9 +22,10 @@ #include #include +#include "util.h" #define SD_JOURNAL_SUPPRESS_LOCATION -#include +#include "systemd/sd-journal.h" PyDoc_STRVAR(journal_sendv__doc__, "sendv('FIELD=value', 'FIELD=value', ...) -> None\n\n" @@ -40,8 +41,7 @@ static PyObject *journal_sendv(PyObject *self, PyObject *args) { /* Allocate an array for the argument strings */ argc = PyTuple_Size(args); - encoded = alloca(argc * sizeof(PyObject*)); - memset(encoded, 0, argc * sizeof(PyObject*)); + encoded = alloca0(argc * sizeof(PyObject*)); /* Allocate sufficient iovector space for the arguments. */ iov = alloca(argc * sizeof(struct iovec)); @@ -115,9 +115,17 @@ static PyMethodDef methods[] = { #if PY_MAJOR_VERSION < 3 +DISABLE_WARNING_MISSING_PROTOTYPES; PyMODINIT_FUNC init_journal(void) { - (void) Py_InitModule("_journal", methods); + PyObject *m; + + m = Py_InitModule("_journal", methods); + if (m == NULL) + return; + + PyModule_AddStringConstant(m, "__version__", PACKAGE_VERSION); } +REENABLE_WARNING; #else @@ -125,12 +133,25 @@ static struct PyModuleDef module = { PyModuleDef_HEAD_INIT, "_journal", /* name of module */ NULL, /* module documentation, may be NULL */ - 0, /* size of per-interpreter state of the module */ + -1, /* size of per-interpreter state of the module */ methods }; +DISABLE_WARNING_MISSING_PROTOTYPES; PyMODINIT_FUNC PyInit__journal(void) { - return PyModule_Create(&module); + PyObject *m; + + m = PyModule_Create(&module); + if (m == NULL) + return NULL; + + if (PyModule_AddStringConstant(m, "__version__", PACKAGE_VERSION)) { + Py_DECREF(m); + return NULL; + } + + return m; } +REENABLE_WARNING; #endif