Merge branch '2.0' into 3.0

This commit is contained in:
terrafrost 2019-11-02 12:44:34 -05:00
commit 8ad4743364

View File

@ -620,6 +620,20 @@ class SSH2
*/ */
protected $window_size = 0x7FFFFFFF; protected $window_size = 0x7FFFFFFF;
/**
* What we resize the window to
*
* When PuTTY resizes the window it doesn't add an additional 0x7FFFFFFF bytes - it adds 0x40000000 bytes.
* Some SFTP clients (GoAnywhere) don't support adding 0x7FFFFFFF to the window size after the fact so
* we'll just do what PuTTY does
*
* @var int
* @see self::_send_channel_packet()
* @see self::exec()
* @access private
*/
var $window_resize = 0x40000000;
/** /**
* Window size, server to client * Window size, server to client
* *
@ -3616,9 +3630,11 @@ class SSH2
// resize the window, if appropriate // resize the window, if appropriate
if ($this->window_size_server_to_client[$channel] < 0) { if ($this->window_size_server_to_client[$channel] < 0) {
$packet = pack('CNN', NET_SSH2_MSG_CHANNEL_WINDOW_ADJUST, $this->server_channels[$channel], $this->window_size); // PuTTY does something more analogous to the following:
//if ($this->window_size_server_to_client[$channel] < 0x3FFFFFFF) {
$packet = pack('CNN', NET_SSH2_MSG_CHANNEL_WINDOW_ADJUST, $this->server_channels[$channel], $this->window_resize);
$this->send_binary_packet($packet); $this->send_binary_packet($packet);
$this->window_size_server_to_client[$channel]+= $this->window_size; $this->window_size_server_to_client[$channel]+= $this->window_resize;
} }
switch ($type) { switch ($type) {