summaryrefslogtreecommitdiffstats
path: root/apps/files_external/lib/sftp.php
diff options
context:
space:
mode:
authorAndreas Fischer <bantu@owncloud.com>2014-07-12 22:45:53 +0200
committerAndreas Fischer <bantu@owncloud.com>2014-07-18 15:47:13 +0200
commita27753dd80fad3bdd4706d691b4d03a449047110 (patch)
tree1cc424380cf9df001f9aa1e7fd20f4c8062140cd /apps/files_external/lib/sftp.php
parent6c28c9b141be3195191f59708d9b3acee431d349 (diff)
downloadnextcloud-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.php12
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;
}
}