mirror of
https://github.com/phpseclib/phpseclib.git
synced 2024-12-26 11:37:33 +00:00
Merge branch '2.0-dsas'
This commit is contained in:
commit
6021e74a79
@ -866,7 +866,17 @@ class SFTP extends SSH2
|
||||
unset($files[$key]);
|
||||
continue;
|
||||
}
|
||||
if ($key != '.' && $key != '..' && is_array($this->query_stat_cache($this->realpath($dir . '/' . $key)))) {
|
||||
$is_directory = false;
|
||||
if ($key != '.' && $key != '..') {
|
||||
if ($this->use_stat_cache) {
|
||||
$is_directory = is_array($this->query_stat_cache($this->realpath($dir . '/' . $key)));
|
||||
} else {
|
||||
$stat = $this->lstat($dir . '/' . $key);
|
||||
$is_directory = $stat && $stat['type'] === NET_SFTP_TYPE_DIRECTORY;
|
||||
}
|
||||
}
|
||||
|
||||
if ($is_directory) {
|
||||
$depth++;
|
||||
$files[$key] = $this->rawlist($dir . '/' . $key, true);
|
||||
$depth--;
|
||||
|
@ -725,5 +725,31 @@ class Functional_Net_SFTPUserStoryTest extends PhpseclibFunctionalTestCase
|
||||
$sftp->exec('ping google.com -c 5');
|
||||
sleep(5);
|
||||
$sftp->nlist();
|
||||
|
||||
return $sftp;
|
||||
}
|
||||
|
||||
/**
|
||||
* @depends testExecNlist
|
||||
*/
|
||||
public function testRawlistDisabledStatCache($sftp)
|
||||
{
|
||||
$this->assertTrue($sftp->mkdir(self::$scratchDir));
|
||||
$this->assertTrue($sftp->chdir(self::$scratchDir));
|
||||
$this->assertTrue($sftp->put('text.txt', 'zzzzz'));
|
||||
$this->assertTrue($sftp->mkdir('subdir'));
|
||||
$this->assertTrue($sftp->chdir('subdir'));
|
||||
$this->assertTrue($sftp->put('leaf.txt', 'yyyyy'));
|
||||
$this->assertTrue($sftp->chdir('../../'));
|
||||
|
||||
$list_cache_enabled = $sftp->rawlist('.', true);
|
||||
|
||||
$sftp->clearStatCache();
|
||||
|
||||
$sftp->disableStatCache();
|
||||
|
||||
$list_cache_disabled = $sftp->rawlist('.', true);
|
||||
|
||||
$this->assertEquals($list_cache_enabled, $list_cache_disabled, 'The files should be the same regardless of stat cache', 0.0, 10, true);
|
||||
}
|
||||
}
|
||||
|
Loading…
Reference in New Issue
Block a user