Page MenuHomePhabricator

D10225.diff
No OneTemporary

D10225.diff

diff --git a/src/applications/drydock/interface/command/DrydockSSHCommandInterface.php b/src/applications/drydock/interface/command/DrydockSSHCommandInterface.php
--- a/src/applications/drydock/interface/command/DrydockSSHCommandInterface.php
+++ b/src/applications/drydock/interface/command/DrydockSSHCommandInterface.php
@@ -3,6 +3,7 @@
final class DrydockSSHCommandInterface extends DrydockCommandInterface {
private $passphraseSSHKey;
+ private $connectTimeout;
private function openCredentialsIfNotOpen() {
if ($this->passphraseSSHKey !== null) {
@@ -25,6 +26,11 @@
PhabricatorUser::getOmnipotentUser());
}
+ public function setConnectTimeout($timeout) {
+ $this->connectTimeout = $timeout;
+ return $this;
+ }
+
public function getExecFuture($command) {
$this->openCredentialsIfNotOpen();
@@ -44,8 +50,19 @@
$full_command = 'C:\\Windows\\system32\\cmd.exe /C '.$full_command;
}
+ $command_timeout = '';
+ if ($this->connectTimeout !== null) {
+ $command_timeout = csprintf(
+ '-o %s',
+ 'ConnectTimeout='.$this->connectTimeout);
+ }
+
return new ExecFuture(
- 'ssh -o StrictHostKeyChecking=no -p %s -i %P %P@%s -- %s',
+ 'ssh '.
+ '-o StrictHostKeyChecking=no '.
+ '-o BatchMode=yes '.
+ '%C -p %s -i %P %P@%s -- %s',
+ $command_timeout,
$this->getConfig('port'),
$this->passphraseSSHKey->getKeyfileEnvelope(),
$this->passphraseSSHKey->getUsernameEnvelope(),

File Metadata

Mime Type
text/plain
Expires
Thu, Sep 19, 8:41 PM (5 h, 54 m)
Storage Engine
blob
Storage Format
Encrypted (AES-256-CBC)
Storage Handle
6621670
Default Alt Text
D10225.diff (1 KB)

Event Timeline