cvs commit: src/sys/netinet tcp_output.c
Jesper Skriver
jesper at FreeBSD.org
Wed Aug 13 04:56:19 PDT 2003
On Wed, Aug 13, 2003 at 01:50:43AM -0700, Hartmut Brandt wrote:
> harti 2003/08/13 01:50:42 PDT
>
> FreeBSD src repository
>
> Modified files:
> sys/netinet tcp_output.c
> Log:
> The tcp_trace call needs the length of the header. Unfortunately the
> code has rotten a bit so that the header length is not correct at
> the point when tcp_trace is called. Temporarily compute the correct
> value before the call and restore the old value after. This makes
> ports/benchmarks/dbs to almost work.
>
> This is a NOP unless you compile with TCPDEBUG.
Not quite, you execute code not excuted before, what about #ifdef TCPDEBUG ?
/Jesper
> Revision Changes Path
> 1.79 +5 -1 src/sys/netinet/tcp_output.c
> http://cvsweb.FreeBSD.org/src/sys/netinet/tcp_output.c.diff?r1=1.78&r2=1.79&f=h
> | ===================================================================
> | RCS file: /usr/local/www/cvsroot/FreeBSD/src/sys/netinet/tcp_output.c,v
> | retrieving revision 1.78
> | retrieving revision 1.79
> | diff -u -p -r1.78 -r1.79
> | --- src/sys/netinet/tcp_output.c 2003/02/19 22:18:05 1.78
> | +++ src/sys/netinet/tcp_output.c 2003/08/13 08:50:42 1.79
> | @@ -31,7 +31,7 @@
> | * SUCH DAMAGE.
> | *
> | * @(#)tcp_output.c 8.4 (Berkeley) 5/24/95
> | - * $FreeBSD: /usr/local/www/cvsroot/FreeBSD/src/sys/netinet/tcp_output.c,v 1.78 2003/02/19 22:18:05 jlemon Exp $
> | + * $FreeBSD: /usr/local/www/cvsroot/FreeBSD/src/sys/netinet/tcp_output.c,v 1.79 2003/08/13 08:50:42 harti Exp $
> | */
> |
> | #include "opt_inet6.h"
> | @@ -848,8 +848,12 @@ send:
> | /*
> | * Trace.
> | */
> | - if (so->so_options & SO_DEBUG)
> | + if (so->so_options & SO_DEBUG) {
> | + u_short save = ipov->ih_len;
> | + ipov->ih_len = htons(m->m_pkthdr.len /* - hdrlen + (th->th_off << 2) */);
> | tcp_trace(TA_OUTPUT, tp->t_state, tp, mtod(m, void *), th, 0);
> | + ipov->ih_len = save;
> | + }
> | #endif
> |
> | /*
/Jesper
--
Jesper Skriver, jesper(at)skriver(dot)dk - CCIE #5456
One Unix to rule them all, One Resolver to find them,
One IP to bring them all and in the zone to bind them.
More information about the cvs-src
mailing list