Merge branch 'sftp-endless-loop' into sftp-endless-loop-v2

Conflicts:
	phpseclib/Net/SFTP.php
	tests/Functional/Net/SFTPUserStoryTest.php
This commit is contained in:
terrafrost 2015-09-29 21:51:20 -05:00
commit 0f49fb86bf
2 changed files with 10 additions and 9 deletions

View File

@ -1877,11 +1877,6 @@ class SFTP extends SSH2
if ($local_start >= 0) { if ($local_start >= 0) {
fseek($fp, $local_start); fseek($fp, $local_start);
$size-= $local_start; $size-= $local_start;
} elseif ($mode & self::RESUME_START) {
// do nothing
} else {
fseek($fp, $offset);
$size-= $offset;
} }
} elseif ($dataCallback) { } elseif ($dataCallback) {
$size = 0; $size = 0;

View File

@ -659,14 +659,20 @@ class Functional_Net_SFTPUserStoryTest extends PhpseclibFunctionalTestCase
* @depends testStatVsLstat * @depends testStatVsLstat
* @group github830 * @group github830
*/ */
public function testEndlessLoopOnUpload($sftp) public function testUploadOffsets($sftp)
{ {
$sftp->put('endless.txt', 'res.txt', SFTP::SOURCE_LOCAL_FILE, 0, 10); $sftp->put('offset.txt', 'res.txt', SFTP::SOURCE_LOCAL_FILE, 0, 10);
$this->assertSame( $this->assertSame(
substr(self::$exampleData, 10), substr(self::$exampleData, 10),
$sftp->get('endless.txt'), $sftp->get('offset.txt'),
'Failed asserting that portions of a file could be uploaded.' 'Failed asserting that portions of a file could be uploaded.'
); );
$sftp->put('offset.txt', 'res.txt', SFTP::SOURCE_LOCAL_FILE, self::$exampleDataLength - 100);
$this->assertSame(
substr(self::$exampleData, 10, -90) . self::$exampleData,
$sftp->get('offset.txt'),
'Failed asserting that you could upload into the middle of a file.'
);
} }
} }