+ if (set_error(r, NULL, NULL))
+ return NULL;
+
+ 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;