From a92fd11ad1ccc904a999a254d249bbdc74f08f84 Mon Sep 17 00:00:00 2001 From: Amitay Isaacs Date: Wed, 18 Dec 2013 14:09:52 +1100 Subject: [PATCH] ctdb-daemon: Remove ctdb_fork_with_logging() This function has been replaced with ctdb_vfork_with_logging(). Signed-off-by: Amitay Isaacs Reviewed-by: Martin Schwenke Autobuild-User(master): Martin Schwenke Autobuild-Date(master): Thu Jan 16 04:05:35 CET 2014 on sn-devel-104 --- ctdb/include/ctdb_private.h | 5 ---- ctdb/server/ctdb_logging.c | 60 --------------------------------------------- 2 files changed, 65 deletions(-) diff --git a/ctdb/include/ctdb_private.h b/ctdb/include/ctdb_private.h index 096ed424b2c..5c18d87474f 100644 --- a/ctdb/include/ctdb_private.h +++ b/ctdb/include/ctdb_private.h @@ -1456,11 +1456,6 @@ int32_t ctdb_control_get_log(struct ctdb_context *ctdb, TDB_DATA addr); int32_t ctdb_control_clear_log(struct ctdb_context *ctdb); void ctdb_log_ringbuffer_free(void); -struct ctdb_log_state *ctdb_fork_with_logging(TALLOC_CTX *mem_ctx, - struct ctdb_context *ctdb, - const char *log_prefix, - void (*logfn)(const char *, uint16_t, void *), - void *logfn_private, pid_t *pid); struct ctdb_log_state *ctdb_vfork_with_logging(TALLOC_CTX *mem_ctx, struct ctdb_context *ctdb, const char *log_prefix, diff --git a/ctdb/server/ctdb_logging.c b/ctdb/server/ctdb_logging.c index 38d7bff5d86..d33419177bb 100644 --- a/ctdb/server/ctdb_logging.c +++ b/ctdb/server/ctdb_logging.c @@ -469,66 +469,6 @@ static int log_context_destructor(struct ctdb_log_state *log) } /* - fork(), redirecting child output to logging and specified callback. -*/ -struct ctdb_log_state *ctdb_fork_with_logging(TALLOC_CTX *mem_ctx, - struct ctdb_context *ctdb, - const char *log_prefix, - void (*logfn)(const char *, uint16_t, void *), - void *logfn_private, pid_t *pid) -{ - int p[2]; - struct ctdb_log_state *log; - struct tevent_fd *fde; - - log = talloc_zero(mem_ctx, struct ctdb_log_state); - CTDB_NO_MEMORY_NULL(ctdb, log); - log->ctdb = ctdb; - log->prefix = log_prefix; - log->logfn = logfn; - log->logfn_private = (void *)logfn_private; - - if (pipe(p) != 0) { - DEBUG(DEBUG_ERR,(__location__ " Failed to setup for child logging pipe\n")); - goto free_log; - } - - *pid = ctdb_fork(ctdb); - - /* Child? */ - if (*pid == 0) { - close(STDOUT_FILENO); - close(STDERR_FILENO); - dup2(p[1], STDOUT_FILENO); - dup2(p[1], STDERR_FILENO); - close(p[0]); - close(p[1]); - return log; - } - close(p[1]); - - /* We failed? */ - if (*pid < 0) { - DEBUG(DEBUG_ERR, (__location__ " fork failed for child process\n")); - close(p[0]); - goto free_log; - } - - log->pfd = p[0]; - set_close_on_exec(log->pfd); - talloc_set_destructor(log, log_context_destructor); - fde = event_add_fd(ctdb->ev, log, log->pfd, - EVENT_FD_READ, ctdb_log_handler, log); - tevent_fd_set_auto_close(fde); - - return log; - -free_log: - talloc_free(log); - return NULL; -} - -/* * vfork + exec, redirecting child output to logging and specified callback. */ struct ctdb_log_state *ctdb_vfork_with_logging(TALLOC_CTX *mem_ctx, -- 2.11.4.GIT