aboutsummaryrefslogtreecommitdiff
path: root/src/libstore/daemon.hh
blob: 67755d54effcd32e4538059a85653dc1a1b1701d (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
#pragma once

#include "serialise.hh"
#include "store-api.hh"

namespace nix::daemon {

enum TrustedFlag : bool { NotTrusted = false, Trusted = true };
enum RecursiveFlag : bool { NotRecursive = false, Recursive = true };

void processConnection(
    ref<Store> store,
    FdSource & from,
    FdSink & to,
    TrustedFlag trusted,
    RecursiveFlag recursive,
    /* 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);

}