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]);
|
unset($files[$key]);
|
||||||
continue;
|
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++;
|
$depth++;
|
||||||
$files[$key] = $this->rawlist($dir . '/' . $key, true);
|
$files[$key] = $this->rawlist($dir . '/' . $key, true);
|
||||||
$depth--;
|
$depth--;
|
||||||
|
@ -725,5 +725,31 @@ class Functional_Net_SFTPUserStoryTest extends PhpseclibFunctionalTestCase
|
|||||||
$sftp->exec('ping google.com -c 5');
|
$sftp->exec('ping google.com -c 5');
|
||||||
sleep(5);
|
sleep(5);
|
||||||
$sftp->nlist();
|
$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