[systemd-commits] src/python-systemd
Zbigniew JÄdrzejewski-Szmek
zbyszek at kemper.freedesktop.org
Fri Jul 5 19:51:00 PDT 2013
src/python-systemd/_daemon.c | 49 +++++++++++++++++++++++++++++++++++++++----
src/python-systemd/daemon.py | 1
2 files changed, 46 insertions(+), 4 deletions(-)
New commits:
commit 925d98b3441881bad3a459cb5f7f3785bab40b5c
Author: Zbigniew JÄdrzejewski-Szmek <zbyszek at in.waw.pl>
Date: Fri Jul 5 22:15:54 2013 -0400
systemd-python: wrap sd_notify
_listen_fds() is modified to accept unset_environment arg as keyword,
to match new notify().
diff --git a/src/python-systemd/_daemon.c b/src/python-systemd/_daemon.c
index c6b14d4..bd4e73e 100644
--- a/src/python-systemd/_daemon.c
+++ b/src/python-systemd/_daemon.c
@@ -79,6 +79,43 @@ static PyObject* booted(PyObject *self, PyObject *args) {
return PyBool_FromLong(r);
}
+PyDoc_STRVAR(notify__doc__,
+ "notify(status, unset_environment=False) -> bool\n\n"
+ "Send a message to the init system about a status change.\n"
+ "Wraps sd_notify(3).");
+
+static PyObject* notify(PyObject *self, PyObject *args, PyObject *keywds) {
+ int r;
+ const char* msg;
+ int unset = false;
+
+ static const char* const kwlist[] = {
+ "status",
+ "unset_environment",
+ NULL,
+ };
+#if PY_MAJOR_VERSION >=3 && PY_MINOR_VERSION >= 3
+ if (!PyArg_ParseTupleAndKeywords(args, keywds, "s|p:notify",
+ (char**) kwlist, &msg, &unset))
+ return NULL;
+#else
+ PyObject *obj = NULL;
+ if (!PyArg_ParseTupleAndKeywords(args, keywds, "s|O:notify",
+ (char**) kwlist, &msg, &obj))
+ return NULL;
+ if (obj != NULL)
+ unset = PyObject_IsTrue(obj);
+ if (unset < 0)
+ return NULL;
+#endif
+
+ r = sd_notify(unset, msg);
+ if (set_error(r, NULL, NULL))
+ return NULL;
+
+ return PyBool_FromLong(r);
+}
+
PyDoc_STRVAR(listen_fds__doc__,
"_listen_fds(unset_environment=True) -> int\n\n"
@@ -87,16 +124,19 @@ PyDoc_STRVAR(listen_fds__doc__,
"Wraps sd_listen_fds(3)."
);
-static PyObject* listen_fds(PyObject *self, PyObject *args) {
+static PyObject* listen_fds(PyObject *self, PyObject *args, PyObject *keywds) {
int r;
int unset = true;
+ static const char* const kwlist[] = {"unset_environment", NULL};
#if PY_MAJOR_VERSION >=3 && PY_MINOR_VERSION >= 3
- if (!PyArg_ParseTuple(args, "|p:_listen_fds", &unset))
+ if (!PyArg_ParseTupleAndKeywords(args, keywds, "|p:_listen_fds",
+ (char**) kwlist, &unset))
return NULL;
#else
PyObject *obj = NULL;
- if (!PyArg_ParseTuple(args, "|O:_listen_fds", &obj))
+ if (!PyArg_ParseTupleAndKeywords(args, keywds, "|O:_listen_fds",
+ (char**) kwlist, &unset, &obj))
return NULL;
if (obj != NULL)
unset = PyObject_IsTrue(obj);
@@ -256,7 +296,8 @@ static PyObject* is_socket_unix(PyObject *self, PyObject *args) {
static PyMethodDef methods[] = {
{ "booted", booted, METH_NOARGS, booted__doc__},
- { "_listen_fds", listen_fds, METH_VARARGS, listen_fds__doc__},
+ { "notify", (PyCFunction) notify, METH_VARARGS | METH_KEYWORDS, notify__doc__},
+ { "_listen_fds", (PyCFunction) listen_fds, METH_VARARGS | METH_KEYWORDS, listen_fds__doc__},
{ "_is_fifo", is_fifo, METH_VARARGS, is_fifo__doc__},
{ "_is_mq", is_mq, METH_VARARGS, is_mq__doc__},
{ "_is_socket", is_socket, METH_VARARGS, is_socket__doc__},
diff --git a/src/python-systemd/daemon.py b/src/python-systemd/daemon.py
index e2829d1..1c386bb 100644
--- a/src/python-systemd/daemon.py
+++ b/src/python-systemd/daemon.py
@@ -1,5 +1,6 @@
from ._daemon import (__version__,
booted,
+ notify,
_listen_fds,
_is_fifo,
_is_socket,
More information about the systemd-commits
mailing list