aboutsummaryrefslogtreecommitdiff
path: root/src/nix/daemon.cc
diff options
context:
space:
mode:
Diffstat (limited to 'src/nix/daemon.cc')
-rw-r--r--src/nix/daemon.cc9
1 files changed, 4 insertions, 5 deletions
diff --git a/src/nix/daemon.cc b/src/nix/daemon.cc
index 42ce3b996..9d4afb6d9 100644
--- a/src/nix/daemon.cc
+++ b/src/nix/daemon.cc
@@ -294,7 +294,7 @@ static void daemonLoop(std::optional<TrustedFlag> forceTrustClientOpt)
if (listenFds) {
if (getEnv("LISTEN_PID") != std::to_string(getpid()) || listenFds != "1")
throw Error("unexpected systemd environment variables");
- fdSocket = SD_LISTEN_FDS_START;
+ fdSocket = AutoCloseFD{SD_LISTEN_FDS_START};
closeOnExec(fdSocket.get());
}
@@ -315,8 +315,8 @@ static void daemonLoop(std::optional<TrustedFlag> forceTrustClientOpt)
struct sockaddr_un remoteAddr;
socklen_t remoteAddrLen = sizeof(remoteAddr);
- AutoCloseFD remote = accept(fdSocket.get(),
- (struct sockaddr *) &remoteAddr, &remoteAddrLen);
+ AutoCloseFD remote{accept(fdSocket.get(),
+ (struct sockaddr *) &remoteAddr, &remoteAddrLen)};
checkInterrupt();
if (!remote) {
if (errno == EINTR) continue;
@@ -347,9 +347,8 @@ static void daemonLoop(std::optional<TrustedFlag> forceTrustClientOpt)
options.errorPrefix = "unexpected Nix daemon error: ";
options.dieWithParent = false;
options.runExitHandlers = true;
- options.allowVfork = false;
startProcess([&]() {
- fdSocket = -1;
+ fdSocket.reset();
// Background the daemon.
if (setsid() == -1)