aboutsummaryrefslogtreecommitdiff
path: root/src/libstore/legacy-ssh-store.cc
diff options
context:
space:
mode:
authoreldritch horrors <pennae@lix.systems>2024-05-16 17:58:27 +0200
committereldritch horrors <pennae@lix.systems>2024-07-15 21:50:25 +0000
commit3447dbfb2c0f3bf7e31577bf2d5908b14ba59601 (patch)
tree909338dd54255cd14910a5a159b544c063781fa0 /src/libstore/legacy-ssh-store.cc
parent5e16b10cb12a0c135683c148008df8cef0791df9 (diff)
libstore: rewrite narFromPath as generator
Change-Id: Ifa783c2c65c06ddd1d0212016d5bfd07666ea91c
Diffstat (limited to 'src/libstore/legacy-ssh-store.cc')
-rw-r--r--src/libstore/legacy-ssh-store.cc6
1 files changed, 4 insertions, 2 deletions
diff --git a/src/libstore/legacy-ssh-store.cc b/src/libstore/legacy-ssh-store.cc
index b4f3854d5..57d333f12 100644
--- a/src/libstore/legacy-ssh-store.cc
+++ b/src/libstore/legacy-ssh-store.cc
@@ -227,13 +227,15 @@ struct LegacySSHStore : public virtual LegacySSHStoreConfig, public virtual Stor
throw Error("failed to add path '%s' to remote host '%s'", printStorePath(info.path), host);
}
- void narFromPath(const StorePath & path, Sink & sink) override
+ WireFormatGenerator narFromPath(const StorePath & path) override
{
auto conn(connections->get());
conn->to << ServeProto::Command::DumpStorePath << printStorePath(path);
conn->to.flush();
- sink << copyNAR(conn->from);
+ return [] (auto conn) -> WireFormatGenerator {
+ co_yield copyNAR(conn->from);
+ }(std::move(conn));
}
std::optional<StorePath> queryPathFromHashPart(const std::string & hashPart) override