diff options
author | Andreas Fischer <bantu@owncloud.com> | 2014-07-12 22:45:53 +0200 |
---|---|---|
committer | Andreas Fischer <bantu@owncloud.com> | 2014-07-18 15:47:13 +0200 |
commit | a27753dd80fad3bdd4706d691b4d03a449047110 (patch) | |
tree | 1cc424380cf9df001f9aa1e7fd20f4c8062140cd /apps/files_external/lib/sftp.php | |
parent | 6c28c9b141be3195191f59708d9b3acee431d349 (diff) | |
download | nextcloud-server-a27753dd80fad3bdd4706d691b4d03a449047110.tar.gz nextcloud-server-a27753dd80fad3bdd4706d691b4d03a449047110.zip |
Pass existing Net_SFTP object into Net_SFTP_Stream.
Diffstat (limited to 'apps/files_external/lib/sftp.php')
-rw-r--r-- | apps/files_external/lib/sftp.php | 12 |
1 files changed, 9 insertions, 3 deletions
diff --git a/apps/files_external/lib/sftp.php b/apps/files_external/lib/sftp.php index 0cec250778f..e0655cc8d3d 100644 --- a/apps/files_external/lib/sftp.php +++ b/apps/files_external/lib/sftp.php @@ -17,6 +17,9 @@ class SFTP extends \OC\Files\Storage\Common { private $password; private $root; + /** + * @var \Net_SFTP + */ private $client; private static $tempFiles = array(); @@ -231,8 +234,8 @@ class SFTP extends \OC\Files\Storage\Common { case 'x+': case 'c': case 'c+': - // FIXME: make client login lazy to prevent it when using fopen() - return fopen($this->constructUrl($path), $mode); + $context = stream_context_create(array('sftp' => array('session' => $this->client))); + return fopen($this->constructUrl($path), $mode, false, $context); } } catch (\Exception $e) { } @@ -294,7 +297,10 @@ class SFTP extends \OC\Files\Storage\Common { * @param string $path */ public function constructUrl($path) { - $url = 'sftp://'.$this->user.':'.$this->password.'@'.$this->host.$this->root.$path; + // 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; return $url; } } |