From bfa41eb6714a7e7c3956389ee063e898bd1f37ff Mon Sep 17 00:00:00 2001 From: Shea Levy Date: Wed, 10 Aug 2016 10:44:39 -0400 Subject: nix-copy-closure: Implement in C++. Tests fail currently because the database is not given proper hashes in the VM --- src/libstore/ssh-store.cc | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) (limited to 'src/libstore/ssh-store.cc') diff --git a/src/libstore/ssh-store.cc b/src/libstore/ssh-store.cc index 3d01594009..cce0458c69 100644 --- a/src/libstore/ssh-store.cc +++ b/src/libstore/ssh-store.cc @@ -39,6 +39,8 @@ private: string uri; Path key; + + bool compress; }; SSHStore::SSHStore(string uri, const Params & params, size_t maxConnections) @@ -48,6 +50,7 @@ SSHStore::SSHStore(string uri, const Params & params, size_t maxConnections) , socketPath((Path) tmpDir + "/ssh.sock") , uri(std::move(uri)) , key(get(params, "ssh-key", "")) + , compress(get(params, "compress", "") == "true") { /* open a connection and perform the handshake to verify all is well */ connections->get(); @@ -90,11 +93,12 @@ ref SSHStore::getFSAccessor() ref SSHStore::openConnection() { if ((pid_t) sshMaster == -1) { + auto flags = compress ? "-NMCS" : "-NMS"; sshMaster = startProcess([&]() { if (key.empty()) - execlp("ssh", "ssh", "-N", "-M", "-S", socketPath.c_str(), uri.c_str(), NULL); + execlp("ssh", "ssh", flags, socketPath.c_str(), uri.c_str(), NULL); else - execlp("ssh", "ssh", "-N", "-M", "-S", socketPath.c_str(), "-i", key.c_str(), uri.c_str(), NULL); + execlp("ssh", "ssh", flags, socketPath.c_str(), "-i", key.c_str(), uri.c_str(), NULL); throw SysError("starting ssh master"); }); } -- cgit 1.4.1