Add use-ssh-substituter setting.
It defaults to false and can be overridden by RemoteStore. Untested currently, just quickly put this together
This commit is contained in:
parent
36b90e72d7
commit
df5de9dfd7
3 changed files with 17 additions and 0 deletions
|
@ -111,6 +111,18 @@ void run(Strings args)
|
||||||
if (args.empty())
|
if (args.empty())
|
||||||
throw UsageError("download-via-ssh requires an argument");
|
throw UsageError("download-via-ssh requires an argument");
|
||||||
|
|
||||||
|
Settings::SettingsMap overrides = settings.getOverrides();
|
||||||
|
Settings::SettingsMap::iterator use = overrides.find("untrusted-use-ssh-substituter");
|
||||||
|
if (use != overrides.end()) {
|
||||||
|
if (use->second == "true") settings.useSshSubstituter = true;
|
||||||
|
else if (use->second == "false") settings.useSshSubstituter = false;
|
||||||
|
else throw Error(format("configuration option `use-ssh-substituter' should be either `true' or `false', not `%1%'")
|
||||||
|
% use->second);
|
||||||
|
}
|
||||||
|
|
||||||
|
if (!settings.useSshSubstituter)
|
||||||
|
return;
|
||||||
|
|
||||||
if (settings.sshSubstituterHosts.empty())
|
if (settings.sshSubstituterHosts.empty())
|
||||||
return;
|
return;
|
||||||
|
|
||||||
|
|
|
@ -41,6 +41,7 @@ Settings::Settings()
|
||||||
syncBeforeRegistering = false;
|
syncBeforeRegistering = false;
|
||||||
useSubstitutes = true;
|
useSubstitutes = true;
|
||||||
useChroot = false;
|
useChroot = false;
|
||||||
|
useSshSubstituter = false;
|
||||||
dirsInChroot.insert("/dev");
|
dirsInChroot.insert("/dev");
|
||||||
dirsInChroot.insert("/dev/pts");
|
dirsInChroot.insert("/dev/pts");
|
||||||
impersonateLinux26 = false;
|
impersonateLinux26 = false;
|
||||||
|
@ -153,6 +154,7 @@ void Settings::update()
|
||||||
get(autoOptimiseStore, "auto-optimise-store");
|
get(autoOptimiseStore, "auto-optimise-store");
|
||||||
get(envKeepDerivations, "env-keep-derivations");
|
get(envKeepDerivations, "env-keep-derivations");
|
||||||
get(sshSubstituterHosts, "ssh-substituter-hosts");
|
get(sshSubstituterHosts, "ssh-substituter-hosts");
|
||||||
|
get(useSshSubstituter, "use-ssh-substituter");
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
|
@ -149,6 +149,9 @@ struct Settings {
|
||||||
/* Set of ssh connection strings for the ssh substituter */
|
/* Set of ssh connection strings for the ssh substituter */
|
||||||
Strings sshSubstituterHosts;
|
Strings sshSubstituterHosts;
|
||||||
|
|
||||||
|
/* Whether to use the ssh substituter at all */
|
||||||
|
bool useSshSubstituter;
|
||||||
|
|
||||||
/* Whether to impersonate a Linux 2.6 machine on newer kernels. */
|
/* Whether to impersonate a Linux 2.6 machine on newer kernels. */
|
||||||
bool impersonateLinux26;
|
bool impersonateLinux26;
|
||||||
|
|
||||||
|
|
Loading…
Reference in a new issue