diff options
author | Damien Miller <djm@mindrot.org> | 2010-08-05 23:09:48 +1000 |
---|---|---|
committer | Damien Miller <djm@mindrot.org> | 2010-08-05 23:09:48 +1000 |
commit | 7d45718943e63ec649003d3a9b56e531da2193ea (patch) | |
tree | 2f5d4845c06f6c9ff4ad36a0843fd017e69c5a3a /fixprogs | |
parent | b89e6b76be2842d7d91b186753af741a73465d71 (diff) |
- djm@cvs.openbsd.org 2010/08/05 13:08:42
[channels.c]
Fix a trio of bugs in the local/remote window calculation for datagram
data channels (i.e. TunnelForward):
Calculate local_consumed correctly in channel_handle_wfd() by measuring
the delta to buffer_len(c->output) from when we start to when we finish.
The proximal problem here is that the output_filter we use in portable
modified the length of the dequeued datagram (to futz with the headers
for !OpenBSD).
In channel_output_poll(), don't enqueue datagrams that won't fit in the
peer's advertised packet size (highly unlikely to ever occur) or which
won't fit in the peer's remaining window (more likely).
In channel_input_data(), account for the 4-byte string header in
datagram packets that we accept from the peer and enqueue in c->output.
report, analysis and testing 2/3 cases from wierbows AT us.ibm.com;
"looks good" markus@
Diffstat (limited to 'fixprogs')
0 files changed, 0 insertions, 0 deletions