mirror of
https://github.com/phpseclib/phpseclib.git
synced 2024-12-26 03:27:31 +00:00
SSH2: timeout after 5s for channel closures
This commit is contained in:
parent
ef9785d9c5
commit
9651d075e3
@ -3911,7 +3911,7 @@ class Net_SSH2
|
|||||||
$this->channel_buffers[$channel][] = $data;
|
$this->channel_buffers[$channel][] = $data;
|
||||||
break;
|
break;
|
||||||
case NET_SSH2_MSG_CHANNEL_CLOSE:
|
case NET_SSH2_MSG_CHANNEL_CLOSE:
|
||||||
$this->curTimeout = 0;
|
$this->curTimeout = 5;
|
||||||
|
|
||||||
if ($this->bitmap & NET_SSH2_MASK_SHELL) {
|
if ($this->bitmap & NET_SSH2_MASK_SHELL) {
|
||||||
$this->bitmap&= ~NET_SSH2_MASK_SHELL;
|
$this->bitmap&= ~NET_SSH2_MASK_SHELL;
|
||||||
@ -4140,11 +4140,15 @@ class Net_SSH2
|
|||||||
|
|
||||||
$this->channel_status[$client_channel] = NET_SSH2_MSG_CHANNEL_CLOSE;
|
$this->channel_status[$client_channel] = NET_SSH2_MSG_CHANNEL_CLOSE;
|
||||||
|
|
||||||
$this->curTimeout = 0;
|
$this->curTimeout = 5;
|
||||||
|
|
||||||
while (!is_bool($this->_get_channel_packet($client_channel))) {
|
while (!is_bool($this->_get_channel_packet($client_channel))) {
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if ($this->is_timeout) {
|
||||||
|
$this->disconnect();
|
||||||
|
}
|
||||||
|
|
||||||
if ($want_reply) {
|
if ($want_reply) {
|
||||||
$this->_send_binary_packet(pack('CN', NET_SSH2_MSG_CHANNEL_CLOSE, $this->server_channels[$client_channel]));
|
$this->_send_binary_packet(pack('CN', NET_SSH2_MSG_CHANNEL_CLOSE, $this->server_channels[$client_channel]));
|
||||||
}
|
}
|
||||||
|
Loading…
Reference in New Issue
Block a user