libstore: un-inline copyNAR expansions

these are copies of copyNAR with only some variables renamed.

Change-Id: I98ddd7a98250fa5d304e18e1debf417e9f7768dd
This commit is contained in:
eldritch horrors 2024-03-24 15:24:02 +01:00
parent 946fc12e4e
commit 3e428f2289
2 changed files with 3 additions and 9 deletions

View file

@ -453,9 +453,7 @@ static void performOp(TunnelLogger * logger, ref<Store> store,
command. (We don't trust `addToStoreFromDump` to not
eagerly consume the entire stream it's given, past the
length of the Nar. */
TeeSource savedNARSource(from, saved);
ParseSink sink; /* null sink; just parse the NAR */
parseDump(sink, savedNARSource);
copyNAR(from, saved);
} else {
/* Incrementally parse the NAR file, stripping the
metadata, and streaming the sole file we expect into
@ -907,9 +905,7 @@ static void performOp(TunnelLogger * logger, ref<Store> store,
if (GET_PROTOCOL_MINOR(clientVersion) >= 21)
source = std::make_unique<TunnelSource>(from, to);
else {
TeeSource tee { from, saved };
ParseSink ether;
parseDump(ether, tee);
copyNAR(from, saved);
source = std::make_unique<StringSource>(saved.s);
}

View file

@ -64,9 +64,7 @@ StorePaths Store::importPaths(Source & source, CheckSigsFlag checkSigs)
/* Extract the NAR from the source. */
StringSink saved;
TeeSource tee { source, saved };
ParseSink ether;
parseDump(ether, tee);
copyNAR(source, saved);
uint32_t magic = readInt(source);
if (magic != exportMagic)