version 1.434, 2023/11/15 22:51:49 |
version 1.435, 2023/12/18 14:47:20 |
|
|
return 0; |
return 0; |
} |
} |
if (win_len > c->local_window) { |
if (win_len > c->local_window) { |
logit("channel %d: rcvd too much data %zu, win %u", |
c->local_window_exceeded += win_len - c->local_window; |
c->self, win_len, c->local_window); |
logit("channel %d: rcvd too much data %zu, win %u/%u " |
return 0; |
"(excess %u)", c->self, win_len, c->local_window, |
|
c->local_window_max, c->local_window_exceeded); |
|
c->local_window = 0; |
|
/* Allow 10% grace before bringing the hammer down */ |
|
if (c->local_window_exceeded > (c->local_window_max / 10)) { |
|
ssh_packet_disconnect(ssh, "channel %d: peer ignored " |
|
"channel window", c->self); |
|
} |
|
} else { |
|
c->local_window -= win_len; |
|
c->local_window_exceeded = 0; |
} |
} |
c->local_window -= win_len; |
|
|
|
if (c->datagram) { |
if (c->datagram) { |
if ((r = sshbuf_put_string(c->output, data, data_len)) != 0) |
if ((r = sshbuf_put_string(c->output, data, data_len)) != 0) |