Skip to content

Commit 9dd7d67

Browse files
committed
Refactor enqueueFileTransfer
1 parent b69b84e commit 9dd7d67

File tree

1 file changed

+11
-13
lines changed

1 file changed

+11
-13
lines changed

src/libstore/filetransfer.cc

Lines changed: 11 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -972,26 +972,24 @@ struct curlFileTransfer : public FileTransfer
972972
return ItemHandle(item.get_ptr());
973973
}
974974

975-
ItemHandle
976-
enqueueFileTransfer(const FileTransferRequest & request, Callback<FileTransferResult> callback) noexcept override
975+
inline ref<TransferItem>
976+
makeTransferItem(const FileTransferRequest & request, Callback<FileTransferResult> callback) noexcept
977977
{
978978
/* Handle s3:// URIs by converting to HTTPS and optionally adding auth */
979979
if (request.uri.scheme() == "s3") {
980980
auto modifiedRequest = request;
981981
modifiedRequest.setupForS3();
982-
auto item = make_ref<TransferItem>(*this, std::move(modifiedRequest), std::move(callback));
983-
try {
984-
return enqueueItem(item);
985-
} catch (const nix::BaseError & e) {
986-
// NOTE(cole-h): catches both nix::Error and nix::Interrupted -- enqueueItem calls
987-
// writeFull which may throw nix::Interrupted, and the rest of enqueueItem may throw
988-
// nix::Error
989-
item->fail(e);
990-
return ItemHandle(item.get_ptr());
991-
}
982+
return make_ref<TransferItem>(*this, std::move(modifiedRequest), std::move(callback));
983+
} else {
984+
return make_ref<TransferItem>(*this, request, std::move(callback));
992985
}
986+
}
987+
988+
ItemHandle
989+
enqueueFileTransfer(const FileTransferRequest & request, Callback<FileTransferResult> callback) noexcept override
990+
{
991+
const auto item = makeTransferItem(request, std::move(callback));
993992

994-
auto item = make_ref<TransferItem>(*this, request, std::move(callback));
995993
try {
996994
return enqueueItem(item);
997995
} catch (const nix::BaseError & e) {

0 commit comments

Comments
 (0)