diff options
author | Matthew Bauer <mjbauer95@gmail.com> | 2020-06-22 13:08:11 -0400 |
---|---|---|
committer | Matthew Bauer <mjbauer95@gmail.com> | 2020-06-22 13:08:11 -0400 |
commit | 66a62b3189c8c9b0965850e6b3c9b0fda0b50fd8 (patch) | |
tree | 70a25a2cb1973a05559eca3134979fc8be873aca /src/libstore/remote-store.cc | |
parent | f2a6cee334255ced72a70f527cf3c283b4586e42 (diff) | |
parent | 965b80347e97169f266466603e29a57359c4083c (diff) |
Merge remote-tracking branch 'origin/master' into substitute-other-storedir
Diffstat (limited to 'src/libstore/remote-store.cc')
-rw-r--r-- | src/libstore/remote-store.cc | 15 |
1 files changed, 6 insertions, 9 deletions
diff --git a/src/libstore/remote-store.cc b/src/libstore/remote-store.cc index f6158685c..32c736d08 100644 --- a/src/libstore/remote-store.cc +++ b/src/libstore/remote-store.cc @@ -38,15 +38,12 @@ void writeStorePaths(const Store & store, Sink & out, const StorePathSet & paths out << store.printStorePath(i); } -std::map<StorePath, std::optional<std::string>> readStorePathCAMap(const Store & store, Source & from) +StorePathCAMap readStorePathCAMap(const Store & store, Source & from) { StorePathCAMap paths; auto count = readNum<size_t>(from); - while (count--) { - auto path = readString(from); - auto ca = readString(from); - paths.insert_or_assign(store.parseStorePath(path), !ca.empty() ? std::optional(ca) : std::nullopt); - } + while (count--) + paths.insert_or_assign(store.parseStorePath(readString(from)), parseContentAddressOpt(readString(from))); return paths; } @@ -55,7 +52,7 @@ void writeStorePathCAMap(const Store & store, Sink & out, const StorePathCAMap & out << paths.size(); for (auto & i : paths) { out << store.printStorePath(i.first); - out << (i.second ? *i.second : ""); + out << renderContentAddress(i.second); } } @@ -407,7 +404,7 @@ void RemoteStore::queryPathInfoUncached(const StorePath & path, if (GET_PROTOCOL_MINOR(conn->daemonVersion) >= 16) { conn->from >> info->ultimate; info->sigs = readStrings<StringSet>(conn->from); - conn->from >> info->ca; + info->ca = parseContentAddressOpt(readString(conn->from)); } } callback(std::move(info)); @@ -491,7 +488,7 @@ void RemoteStore::addToStore(const ValidPathInfo & info, Source & source, << info.narHash.to_string(Base16, false); writeStorePaths(*this, conn->to, info.references); conn->to << info.registrationTime << info.narSize - << info.ultimate << info.sigs << info.ca + << info.ultimate << info.sigs << renderContentAddress(info.ca) << repair << !checkSigs; bool tunnel = GET_PROTOCOL_MINOR(conn->daemonVersion) >= 21; if (!tunnel) copyNAR(source, conn->to); |