summaryrefslogtreecommitdiff
path: root/include
diff options
context:
space:
mode:
authorTzafrir Cohen <tzafrir.cohen@xorcom.com>2016-06-27 21:26:54 +0200
committerGeorge Joseph <gjoseph@digium.com>2016-09-20 08:00:14 -0600
commit36092ee3a087e6c37bf4efcd101b324f1ba9fada (patch)
treeac29aa9d7f96cf21b20418f4990ea79d2d561ced /include
parent34461b89ace3742056100bb226a3c0c2d90ca5ff (diff)
sd_notify (systemd status notifications) support
sd_notify() is used to notify systemd of changes to the status of the process. This allows the systemd daemon to know when the process finished loading (and thus only start another program after Asterisk has finished loading). To use this, use a systemd unit with 'Type=notify' for Asterisk. This commit also adds the function ast_sd_notify(), a wrapper around sd_notify that does nothing if not built with systemd support. Also adds support for libsystemd detection in the configure script. Change-Id: Ied6a59dafd5ef331c5c7ae8f3ccd2dfc94be7811 (cherry picked from commit 07b95f7c65b7c083724f1af2b26f93cc22cad58c)
Diffstat (limited to 'include')
-rw-r--r--include/asterisk/autoconfig.h.in3
-rw-r--r--include/asterisk/io.h10
2 files changed, 13 insertions, 0 deletions
diff --git a/include/asterisk/autoconfig.h.in b/include/asterisk/autoconfig.h.in
index 337878c4d..0fc13cf53 100644
--- a/include/asterisk/autoconfig.h.in
+++ b/include/asterisk/autoconfig.h.in
@@ -1012,6 +1012,9 @@
/* Define to 1 if you have the <syslog.h> header file. */
#undef HAVE_SYSLOG_H
+/* Define if your system has the SYSTEMD libraries. */
+#undef HAVE_SYSTEMD
+
/* Define to 1 if you have the <sys/dir.h> header file, and it defines `DIR'.
*/
#undef HAVE_SYS_DIR_H
diff --git a/include/asterisk/io.h b/include/asterisk/io.h
index 2bddd3780..6ee8450bd 100644
--- a/include/asterisk/io.h
+++ b/include/asterisk/io.h
@@ -139,6 +139,16 @@ int ast_restore_tty(int fd, int oldstatus);
int ast_get_termcols(int fd);
+/*!
+ * \brief a wrapper for sd_notify(): notify systemd of any state changes.
+ * \param state a string that states the changes. See sd_notify(3).
+ * The wrapper does nothing if systemd ('s development headers) was not
+ * detected on the system.
+ * \returns >=0 on success, negative value on error.
+ */
+int ast_sd_notify(const char *state);
+
+
#if defined(__cplusplus) || defined(c_plusplus)
}
#endif