From fa7f0d6d07bdbedd06904d52bd111e58cb3d64c9 Mon Sep 17 00:00:00 2001 From: John Ericson Date: Sun, 16 Feb 2025 20:01:03 -0500 Subject: [PATCH] Allow setting `ssh://` pipe size Exposed for Hydra. We could make it fancier but with (a) new store settings (b) switch to `ssh-ng://` both in the works, it doesn't seem worth it. (cherry picked from commit 94a7c34b2f8285650e3130e5dc6ff5333eaa6dc8) --- src/libstore/legacy-ssh-store.cc | 3 +++ src/libstore/legacy-ssh-store.hh | 5 +++++ 2 files changed, 8 insertions(+) diff --git a/src/libstore/legacy-ssh-store.cc b/src/libstore/legacy-ssh-store.cc index 3f62794ef..3849f088d 100644 --- a/src/libstore/legacy-ssh-store.cc +++ b/src/libstore/legacy-ssh-store.cc @@ -70,6 +70,9 @@ ref LegacySSHStore::openConnection() command.push_back(remoteStore.get()); } conn->sshConn = master.startCommand(std::move(command), std::list{extraSshArgs}); + if (connPipeSize) { + conn->sshConn->trySetBufferSize(*connPipeSize); + } conn->to = FdSink(conn->sshConn->in.get()); conn->from = FdSource(conn->sshConn->out.get()); diff --git a/src/libstore/legacy-ssh-store.hh b/src/libstore/legacy-ssh-store.hh index 2444a7a66..92aa4ae56 100644 --- a/src/libstore/legacy-ssh-store.hh +++ b/src/libstore/legacy-ssh-store.hh @@ -30,6 +30,11 @@ struct LegacySSHStoreConfig : virtual CommonSSHStoreConfig */ Strings extraSshArgs = {}; + /** + * Exposed for hydra + */ + std::optional connPipeSize; + const std::string name() override { return "SSH Store"; } static std::set uriSchemes() { return {"ssh"}; }