summaryrefslogtreecommitdiff
path: root/ctdb
diff options
context:
space:
mode:
Diffstat (limited to 'ctdb')
-rw-r--r--ctdb/common/sock_daemon.c8
-rw-r--r--ctdb/common/sock_daemon.h3
2 files changed, 9 insertions, 2 deletions
diff --git a/ctdb/common/sock_daemon.c b/ctdb/common/sock_daemon.c
index 03d3ac1f1ec..86cc2f2e502 100644
--- a/ctdb/common/sock_daemon.c
+++ b/ctdb/common/sock_daemon.c
@@ -517,9 +517,15 @@ int sock_daemon_add_unix(struct sock_daemon_context *sockd,
return 0;
}
-void sock_daemon_set_startup_fd(struct sock_daemon_context *sockd, int fd)
+bool sock_daemon_set_startup_fd(struct sock_daemon_context *sockd, int fd)
{
+ if (! set_close_on_exec(fd)) {
+ D_ERR("Failed to set close-on-exec on startup fd\n");
+ return false;
+ }
+
sockd->startup_fd = fd;
+ return true;
}
/*
diff --git a/ctdb/common/sock_daemon.h b/ctdb/common/sock_daemon.h
index a28f8c6f39c..fb0c6865328 100644
--- a/ctdb/common/sock_daemon.h
+++ b/ctdb/common/sock_daemon.h
@@ -214,8 +214,9 @@ int sock_daemon_add_unix(struct sock_daemon_context *sockd,
*
* @param[in] sockd Socket daemon context
* @param[in] fd File descriptor
+ * @return true on success, false on error
*/
-void sock_daemon_set_startup_fd(struct sock_daemon_context *sockd, int fd);
+bool sock_daemon_set_startup_fd(struct sock_daemon_context *sockd, int fd);
/**
* @brief Async computation start to run a socket daemon