summaryrefslogtreecommitdiffstats
path: root/src/providers/child_common.h
diff options
context:
space:
mode:
authorOndrej Kos <okos@redhat.com>2013-01-14 13:56:51 +0100
committerJakub Hrozek <jhrozek@redhat.com>2013-02-26 14:14:52 +0100
commit0bbbfbf8443bc8d08281620bd9e1585cfa05ea8f (patch)
treefb211cd4cca334f377bf63ebe7ca76e3a1c44746 /src/providers/child_common.h
parent3a3d0b722ea1401497bf834382150077375ff52a (diff)
downloadsssd-1.5.1-60.el5.tar.gz
sssd-1.5.1-60.el5.tar.xz
sssd-1.5.1-60.el5.zip
Add common SIGCHLD handling for providerssssd-1.5.1-60.el5
backport of https://fedorahosted.org/sssd/changeset/6a9bdb6289bb374d203861cef16f312185725cbc
Diffstat (limited to 'src/providers/child_common.h')
-rw-r--r--src/providers/child_common.h25
1 files changed, 25 insertions, 0 deletions
diff --git a/src/providers/child_common.h b/src/providers/child_common.h
index 22a77dbbe..1e9f1b6c1 100644
--- a/src/providers/child_common.h
+++ b/src/providers/child_common.h
@@ -45,6 +45,31 @@ struct io_buffer {
size_t size;
};
+/* COMMON SIGCHLD HANDLING */
+typedef void (*sss_child_fn_t)(int pid, int wait_status, void *pvt);
+
+struct sss_sigchild_ctx;
+struct sss_child_ctx;
+
+/* Create a new child context to manage callbacks */
+errno_t sss_sigchld_init(TALLOC_CTX *mem_ctx,
+ struct tevent_context *ev,
+ struct sss_sigchild_ctx **child_ctx);
+
+errno_t sss_child_register(TALLOC_CTX *mem_ctx,
+ struct sss_sigchild_ctx *sigchld_ctx,
+ pid_t pid,
+ sss_child_fn_t cb,
+ void *pvt,
+ struct sss_child_ctx **child_ctx);
+
+void sss_child_handler(struct tevent_context *ev,
+ struct tevent_signal *se,
+ int signum,
+ int count,
+ void *siginfo,
+ void *private_data);
+
/* Callback to be invoked when a sigchld handler is called.
* The tevent_signal * associated with the handler will be
* freed automatically when this function returns.