1
0
mirror of https://github.com/danog/phpseclib.git synced 2024-12-04 02:28:06 +01:00

SFTP: don't buffer up download requests (PuTTY doesn't)

This commit is contained in:
terrafrost 2019-12-25 08:04:23 -06:00
parent 1dc39be3dd
commit 333e2e4c2b

View File

@ -1701,13 +1701,6 @@ class Net_SFTP extends Net_SSH2
} }
$i++; $i++;
if ($i >= NET_SFTP_QUEUE_SIZE) {
if (!$this->_read_put_responses($i)) {
return false;
}
$i = 0;
}
} }
} }
@ -1717,11 +1710,8 @@ class Net_SFTP extends Net_SSH2
$i++; $i++;
if ($i >= NET_SFTP_QUEUE_SIZE) { if (!$this->_read_put_responses($i)) {
if (!$this->_read_put_responses($i)) { return false;
return false;
}
$i = 0;
} }
return true; return true;
@ -2091,7 +2081,7 @@ class Net_SFTP extends Net_SSH2
$subtemp = $offset + $sent; $subtemp = $offset + $sent;
$packet = pack('Na*N3a*', strlen($handle), $handle, $subtemp / 4294967296, $subtemp, strlen($temp), $temp); $packet = pack('Na*N3a*', strlen($handle), $handle, $subtemp / 4294967296, $subtemp, strlen($temp), $temp);
if (!$this->_send_sftp_packet(NET_SFTP_WRITE, $packet)) { if (!$this->_send_sftp_packet(NET_SFTP_WRITE, $packet, $i)) {
if ($mode & NET_SFTP_LOCAL_FILE) { if ($mode & NET_SFTP_LOCAL_FILE) {
fclose($fp); fclose($fp);
} }
@ -2103,14 +2093,6 @@ class Net_SFTP extends Net_SSH2
} }
$i++; $i++;
if ($i == NET_SFTP_QUEUE_SIZE) {
if (!$this->_read_put_responses($i)) {
$i = 0;
break;
}
$i = 0;
}
} }
if (!$this->_read_put_responses($i)) { if (!$this->_read_put_responses($i)) {
@ -2398,10 +2380,8 @@ class Net_SFTP extends Net_SSH2
if (!$recursive) { if (!$recursive) {
return false; return false;
} }
$i = 0;
$result = $this->_delete_recursive($path, $i); return $this->_delete_recursive($path);
$this->_read_put_responses($i);
return $result;
} }
$this->_remove_from_stat_cache($path); $this->_remove_from_stat_cache($path);
@ -2419,11 +2399,8 @@ class Net_SFTP extends Net_SSH2
* @return bool * @return bool
* @access private * @access private
*/ */
function _delete_recursive($path, &$i) function _delete_recursive($path)
{ {
if (!$this->_read_put_responses($i)) {
return false;
}
$i = 0; $i = 0;
$entries = $this->_list($path, true); $entries = $this->_list($path, true);
@ -2451,13 +2428,6 @@ class Net_SFTP extends Net_SSH2
$this->_remove_from_stat_cache($temp); $this->_remove_from_stat_cache($temp);
$i++; $i++;
if ($i >= NET_SFTP_QUEUE_SIZE) {
if (!$this->_read_put_responses($i)) {
return false;
}
$i = 0;
}
} }
} }
@ -2468,11 +2438,8 @@ class Net_SFTP extends Net_SSH2
$i++; $i++;
if ($i >= NET_SFTP_QUEUE_SIZE) { if (!$this->_read_put_responses($i)) {
if (!$this->_read_put_responses($i)) { return false;
return false;
}
$i = 0;
} }
return true; return true;