aboutsummaryrefslogtreecommitdiff
path: root/src/nix-worker/nix-worker.cc
diff options
context:
space:
mode:
Diffstat (limited to 'src/nix-worker/nix-worker.cc')
-rw-r--r--src/nix-worker/nix-worker.cc13
1 files changed, 9 insertions, 4 deletions
diff --git a/src/nix-worker/nix-worker.cc b/src/nix-worker/nix-worker.cc
index c956f839e..fd34bea67 100644
--- a/src/nix-worker/nix-worker.cc
+++ b/src/nix-worker/nix-worker.cc
@@ -288,12 +288,17 @@ static void performOp(unsigned int clientVersion,
}
case wopAddToStore: {
- /* !!! uberquick hack */
string baseName = readString(from);
- readInt(from); /* obsolete; was `fixed' flag */
+ bool fixed = readInt(from) == 1; /* obsolete */
bool recursive = readInt(from) == 1;
- HashType hashAlgo = parseHashType(readString(from));
-
+ string s = readString(from);
+ /* Compatibility hack. */
+ if (!fixed) {
+ s = "sha256";
+ recursive = true;
+ }
+ HashType hashAlgo = parseHashType(s);
+
Path tmp = createTempDir();
AutoDelete delTmp(tmp);
Path tmp2 = tmp + "/" + baseName;