cvs commit: src/sys/netinet tcp_input.c tcp_syncache.c tcp_var.h

Andre Oppermann andre at freebsd.org
Sun Jun 18 13:10:41 UTC 2006


Maxim Konovalov wrote:
> On Sun, 18 Jun 2006, 09:18+0100, Robert Watson wrote:
> 
>> On Sun, 18 Jun 2006, Maxim Konovalov wrote:
>>
>>> On Sun, 18 Jun 2006, 01:37+0100, Robert Watson wrote:
>>>
>>>> On Sat, 17 Jun 2006, Andre Oppermann wrote:
>>>>
>>>>>  Revision  Changes    Path
>>>>>  1.299     +9 -6      src/sys/netinet/tcp_input.c
>>>>>  1.87      +286 -255  src/sys/netinet/tcp_syncache.c
>>>>>  1.130     +9 -6      src/sys/netinet/tcp_var.h
>>>> This change appears to have broken world on all architectures by exposing
>>>> the mutex data structure to usr.bin/netstat/inet.c via tcp_var.h.  I'm not
>>>> quite sure what the "right" solution is, but if
>>> usr.bin/systat/netstat.c and usr.bin/netstat/inet.c
>>> contrib/bsnmp/snmp_mibII/mibII_tcp.c as well.
>>>
>>> +#include <sys/callout.h> fixes the build.
>> But is increasing the exposure of kernel data structures to user
>> space apps the right fix, or decreasing them?  Andre fell into this
>> trap precisely because of the leakage of kernel types into user
>> space, and that's just one of several good reasons not to do it
>> where it can possibly be avoided.
> 
> Agreed.

These syncache structures were only used internally by the kernel
and only inside tcp_syncache.c so I now moved them there.  Later
they can be exposed through a sysctl and displayed by netstat.

Sorry for the world breakage.

-- 
Andre


More information about the cvs-src mailing list