diff options
author | Pavel Zuna <pzuna@redhat.com> | 2011-10-20 13:26:18 -0400 |
---|---|---|
committer | Stephen Gallagher <sgallagh@redhat.com> | 2011-12-19 11:38:35 -0500 |
commit | 6a9bdb6289bb374d203861cef16f312185725cbc (patch) | |
tree | cdd97cbecd2b4f60268bc8df55e798565f0b1626 /src/providers/child_common.h | |
parent | 1c9d778a0410cdbf516eed7d61acf214ce92067a (diff) | |
download | sssd-6a9bdb6289bb374d203861cef16f312185725cbc.tar.gz sssd-6a9bdb6289bb374d203861cef16f312185725cbc.tar.bz2 sssd-6a9bdb6289bb374d203861cef16f312185725cbc.zip |
Add common SIGCHLD handling for providers.
Diffstat (limited to 'src/providers/child_common.h')
-rw-r--r-- | src/providers/child_common.h | 25 |
1 files changed, 25 insertions, 0 deletions
diff --git a/src/providers/child_common.h b/src/providers/child_common.h index 22a77dbb..1e9f1b6c 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. |