aboutsummaryrefslogtreecommitdiff
path: root/src/libstore/globals.hh
diff options
context:
space:
mode:
authorShea Levy <shea@shealevy.com>2014-02-08 00:05:46 -0500
committerShea Levy <shea@shealevy.com>2014-02-08 00:13:33 -0500
commit64e23d0a38f316a07cef0960d0ed74a450214283 (patch)
tree5c1e75efbe703e4163f087cb05356bcaa27a9999 /src/libstore/globals.hh
parent5671188eb2822b7392a6affa5ebe2f1eb8f521a0 (diff)
Add download-via-ssh substituter
This substituter connects to a remote host, runs nix-store --serve there, and then forwards substituter commands on to the remote host and sends their results to the calling program. The ssh-substituter-hosts option can be specified as a list of hosts to try. This is an initial implementation and, while it works, it has some limitations: * Only the first host is used * There is no caching of query results (all queries are sent to the remote machine) * There is no informative output (such as progress bars) * Some failure modes may cause unhelpful error messages * There is no concept of trusted-ssh-substituter-hosts Signed-off-by: Shea Levy <shea@shealevy.com>
Diffstat (limited to 'src/libstore/globals.hh')
-rw-r--r--src/libstore/globals.hh6
1 files changed, 6 insertions, 0 deletions
diff --git a/src/libstore/globals.hh b/src/libstore/globals.hh
index 9300edbe9..5e7cfda9a 100644
--- a/src/libstore/globals.hh
+++ b/src/libstore/globals.hh
@@ -25,6 +25,8 @@ struct Settings {
string pack();
+ void unpack(string pack);
+
SettingsMap getOverrides();
/* The directory where we store sources and derived files. */
@@ -144,6 +146,9 @@ struct Settings {
chroot. */
StringSet dirsInChroot;
+ /* Set of ssh connection strings for the ssh substituter */
+ Strings sshSubstituterHosts;
+
/* Whether to impersonate a Linux 2.6 machine on newer kernels. */
bool impersonateLinux26;
@@ -195,6 +200,7 @@ private:
void get(string & res, const string & name);
void get(bool & res, const string & name);
void get(StringSet & res, const string & name);
+ void get(Strings & res, const string & name);
template<class N> void get(N & res, const string & name);
};