cvs commit: src/sys/netinet tcp_input.c tcp_usrreq.c

mjacob at freebsd.org mjacob at freebsd.org
Sun Jul 29 17:17:47 UTC 2007



Sorry- I was a tired and cranky idiot. I have this fixed now, and will 
do a real universe run *and* ask re.

The problem here is that the code is definitely ancient wanky- there's a 
const char *[] array in tcp_fsm.h that's compiled in iff TCPSTATES is 
defined. Various files include tcp_fsm.h and define TCPSTATES. However, 
what is getting the linker bugged is the line

extern const char *tcpstates[];

that makes for a *different* definition of the object. The fix is to 
remove the 'extern' refs (tcp_usrreq doesn't need one, and spx_debug.c 
should do the TCPSTATES define like tcp_input && tcp_debug do).

>
> I know. I'm going to look at it more today.
>
> On Sun, 29 Jul 2007, Maxim Konovalov wrote:
>
>>> Thanks for fixing this.  The whole tcpstates stuff is hackish.
>>> We need a better fix as the state reporting in the log message
>>> should not depend on TCPDEBUG.
>>> 
>> tb still fails at tcpstates.
>> 
>> -- 
>> Maxim Konovalov
>> 
>


More information about the cvs-src mailing list