diff options
author | eldritch horrors <pennae@lix.systems> | 2024-05-16 17:58:27 +0200 |
---|---|---|
committer | eldritch horrors <pennae@lix.systems> | 2024-07-15 21:50:25 +0000 |
commit | 3447dbfb2c0f3bf7e31577bf2d5908b14ba59601 (patch) | |
tree | 909338dd54255cd14910a5a159b544c063781fa0 /src/libstore/legacy-ssh-store.cc | |
parent | 5e16b10cb12a0c135683c148008df8cef0791df9 (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.cc | 6 |
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 |