aboutsummaryrefslogtreecommitdiff
path: root/src/libstore/daemon.hh
diff options
context:
space:
mode:
authorJohn Ericson <John.Ericson@Obsidian.Systems>2020-08-12 15:14:56 +0000
committerJohn Ericson <John.Ericson@Obsidian.Systems>2020-08-12 15:22:33 +0000
commit8d4162ff9e940ea9e2f97b07f3030a722695901a (patch)
tree84835ec903463524e4d9a8838645b496d2eecbcc /src/libstore/daemon.hh
parent574bf60b4d47f64c0b83b0cd032d34a67dbb3453 (diff)
Separate auth and logic for the daemon
Before, processConnection wanted to know a user name and user id, and `nix-daemon --stdio`, when it isn't proxying to an underlying daemon, would just assume "root" and 0. But `nix-daemon --stdio` (no proxying) shouldn't make guesses about who holds the other end of its standard streams. Now processConnection takes an "auth hook", so `nix-daemon` can provide the appropriate policy and daemon.cc doesn't need to know or care what it is.
Diffstat (limited to 'src/libstore/daemon.hh')
-rw-r--r--src/libstore/daemon.hh7
1 files changed, 5 insertions, 2 deletions
diff --git a/src/libstore/daemon.hh b/src/libstore/daemon.hh
index 266932013..841ace316 100644
--- a/src/libstore/daemon.hh
+++ b/src/libstore/daemon.hh
@@ -12,7 +12,10 @@ void processConnection(
FdSink & to,
TrustedFlag trusted,
RecursiveFlag recursive,
- const std::string & userName,
- uid_t userId);
+ /* Arbitrary hook to check authorization / initialize user data / whatever
+ after the protocol has been negotiated. The idea is that this function
+ and everything it calls doesn't know about this stuff, and the
+ `nix-daemon` handles that instead. */
+ std::function<void(Store &)> authHook);
}