aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorEelco Dolstra <eelco.dolstra@logicblox.com>2014-02-14 12:31:10 +0100
committerEelco Dolstra <eelco.dolstra@logicblox.com>2014-02-14 12:31:10 +0100
commita9d99ab55fdaa1c9dde87eaa8d289ecdb8cf9068 (patch)
tree8c6a679c49e3f2e78e74e3280f880e88b36c11af
parent4db572062ccf318a6524abb8da046592a570eb94 (diff)
download-via-ssh: Use readStorePath
-rw-r--r--src/download-via-ssh/download-via-ssh.cc13
-rw-r--r--src/nix-store/nix-store.cc5
2 files changed, 13 insertions, 5 deletions
diff --git a/src/download-via-ssh/download-via-ssh.cc b/src/download-via-ssh/download-via-ssh.cc
index 86cbb2057..6361e71e9 100644
--- a/src/download-via-ssh/download-via-ssh.cc
+++ b/src/download-via-ssh/download-via-ssh.cc
@@ -5,6 +5,8 @@
#include "affinity.hh"
#include "globals.hh"
#include "serve-protocol.hh"
+#include "worker-protocol.hh"
+#include "store-api.hh"
#include <iostream>
#include <unistd.h>
@@ -82,10 +84,15 @@ static void query(std::pair<FdSink, FdSource> & pipes)
writeInt(qCmdInfo, pipes.first);
writeStrings(tokenized, pipes.first);
pipes.first.flush();
- for (Path path = readString(pipes.second); !path.empty(); path = readString(pipes.second)) {
+ while (1) {
+ Path path = readString(pipes.second);
+ if (path.empty()) break;
+ assertStorePath(path);
std::cout << path << std::endl;
- std::cout << readString(pipes.second) << std::endl;
- PathSet references = readStrings<PathSet>(pipes.second);
+ string deriver = readString(pipes.second);
+ if (!deriver.empty()) assertStorePath(deriver);
+ std::cout << deriver << std::endl;
+ PathSet references = readStorePaths<PathSet>(pipes.second);
std::cout << references.size() << std::endl;
foreach (PathSet::iterator, i, references)
std::cout << *i << std::endl;
diff --git a/src/nix-store/nix-store.cc b/src/nix-store/nix-store.cc
index f017b9ead..365ffa19a 100644
--- a/src/nix-store/nix-store.cc
+++ b/src/nix-store/nix-store.cc
@@ -7,6 +7,7 @@
#include "local-store.hh"
#include "util.hh"
#include "serve-protocol.hh"
+#include "worker-protocol.hh"
#include <iostream>
#include <algorithm>
@@ -864,12 +865,12 @@ static void opServe(Strings opFlags, Strings opArgs)
}
switch (qCmd) {
case qCmdHave: {
- PathSet paths = readStrings<PathSet>(in);
+ PathSet paths = readStorePaths<PathSet>(in);
writeStrings(store->queryValidPaths(paths), out);
break;
}
case qCmdInfo: {
- PathSet paths = readStrings<PathSet>(in);
+ PathSet paths = readStorePaths<PathSet>(in);
// !!! Maybe we want a queryPathInfos?
foreach (PathSet::iterator, i, paths) {
if (!store->isValidPath(*i))