diff options
author | Jakub Hrozek <jhrozek@redhat.com> | 2014-10-21 22:36:59 +0200 |
---|---|---|
committer | Jakub Hrozek <jhrozek@redhat.com> | 2014-11-05 19:55:09 +0100 |
commit | 77b13371c87702aee3f858f6b2b73826cf5a01bd (patch) | |
tree | 11fbb98aa528b9e35a1718b7a6f8e7fd2f0b03a7 /src/util/child_common.c | |
parent | 06f10b2a0ebb26f2460cd445f8040e9205de7500 (diff) | |
download | sssd-77b13371c87702aee3f858f6b2b73826cf5a01bd.tar.gz sssd-77b13371c87702aee3f858f6b2b73826cf5a01bd.tar.xz sssd-77b13371c87702aee3f858f6b2b73826cf5a01bd.zip |
UTIL: Remove more code duplication setting up child processes
All our child processes duplicated the same code that set up the
debugging all around. Instead of adding yet another copy for the
selinux_child, add a common utility function.
Reviewed-by: Michal Židek <mzidek@redhat.com>
Diffstat (limited to 'src/util/child_common.c')
-rw-r--r-- | src/util/child_common.c | 29 |
1 files changed, 29 insertions, 0 deletions
diff --git a/src/util/child_common.c b/src/util/child_common.c index e4a885b6e..cc6a8fa75 100644 --- a/src/util/child_common.c +++ b/src/util/child_common.c @@ -801,3 +801,32 @@ int child_io_destructor(void *ptr) return EOK; } + +errno_t child_debug_init(const char *logfile, int *debug_fd) +{ + int ret; + FILE *debug_filep; + + if (debug_fd == NULL) { + return EOK; + } + + if (debug_to_file != 0 && *debug_fd == -1) { + ret = open_debug_file_ex(logfile, &debug_filep, false); + if (ret != EOK) { + DEBUG(SSSDBG_FATAL_FAILURE, "Error setting up logging (%d) [%s]\n", + ret, sss_strerror(ret)); + return ret; + } + + *debug_fd = fileno(debug_filep); + if (*debug_fd == -1) { + DEBUG(SSSDBG_FATAL_FAILURE, + "fileno failed [%d][%s]\n", errno, strerror(errno)); + ret = errno; + return ret; + } + } + + return EOK; +} |