diff options
author | SA <stephen@mthosting.net> | 2014-12-19 08:19:51 -0500 |
---|---|---|
committer | Lukas Reschke <lukas@owncloud.com> | 2015-02-24 13:15:38 +0100 |
commit | 350f8eb86eb415a1c6c582242c77d63e92705025 (patch) | |
tree | 40e6e5817087e1658a73e688df2861e376ee9c5e /apps | |
parent | e08ebe87dcd748deecba52714cf2711095671475 (diff) | |
download | nextcloud-server-350f8eb86eb415a1c6c582242c77d63e92705025.tar.gz nextcloud-server-350f8eb86eb415a1c6c582242c77d63e92705025.zip |
Add support for sftp custom port
Diffstat (limited to 'apps')
-rw-r--r-- | apps/files_external/lib/sftp.php | 18 |
1 files changed, 15 insertions, 3 deletions
diff --git a/apps/files_external/lib/sftp.php b/apps/files_external/lib/sftp.php index 572829f0fdd..398f59c7db9 100644 --- a/apps/files_external/lib/sftp.php +++ b/apps/files_external/lib/sftp.php @@ -37,6 +37,7 @@ class SFTP extends \OC\Files\Storage\Common { private $user; private $password; private $root; + private $port = 22; /** * @var \Net_SFTP @@ -50,10 +51,21 @@ class SFTP extends \OC\Files\Storage\Common { \Net_SFTP_Stream::register(); $this->host = $params['host']; + + //deals with sftp://server example $proto = strpos($this->host, '://'); if ($proto != false) { $this->host = substr($this->host, $proto+3); } + + //deals with server:port + $HasPort = strpos($this->host,':'); + if($HasPort != false) { + $pieces = explode(":", $this->host); + $this->host = $pieces[0]; + $this->port = $pieces[1]; + } + $this->user = $params['user']; $this->password = isset($params['password']) ? $params['password'] : ''; @@ -81,7 +93,7 @@ class SFTP extends \OC\Files\Storage\Common { } $hostKeys = $this->readHostKeys(); - $this->client = new \Net_SFTP($this->host); + $this->client = new \Net_SFTP($this->host, $this->port); // The SSH Host Key MUST be verified before login(). $currentHostKey = $this->client->getServerPublicHostKey(); @@ -112,7 +124,7 @@ class SFTP extends \OC\Files\Storage\Common { } public function getId(){ - return 'sftp::' . $this->user . '@' . $this->host . '/' . $this->root; + return 'sftp::' . $this->user . '@' . $this->host . ':' . $this->port . '/' . $this->root; } public function getHost() { @@ -342,7 +354,7 @@ class SFTP extends \OC\Files\Storage\Common { // Do not pass the password here. We want to use the Net_SFTP object // supplied via stream context or fail. We only supply username and // hostname because this might show up in logs (they are not used). - $url = 'sftp://'.$this->user.'@'.$this->host.$this->root.$path; + $url = 'sftp://'.$this->user.'@'.$this->host.':'.$this->port.$this->root.$path; return $url; } } |