about summary refs log tree commit diff
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 c956f839ec39..fd34bea678b8 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;