Skip site navigation (1)Skip section navigation (2)
Date:      Tue, 2 Apr 1996 21:27:47 +1000
From:      Bruce Evans <bde@zeta.org.au>
To:        FreeBSD-Current@freebsd.org, gpalmer@freebsd.org
Subject:   Re: Linker sets & structures for networking code
Message-ID:  <199604021127.VAA11042@godzilla.zeta.org.au>

index | next in thread | raw e-mail

>There seems to be something fundamentally WRONG in some of the
>networking stuff which I'm not sure how to fix. (I'm going through
>LINT trying to fix as many warnings as I can).

>People have noticed warnings like:

>../../kern/uipc_proto.c:62: warning: initialization from incompatible pointer type

This is because of bad type puns in ancient (pre-STDC) networking code.
It has nothing to do with linker sets.

The correct fix isn't obvious.  Many incorrect fixes are obvious :-).  E.g.,
cast away the warnings.

>...
>Which brings me to another problem with this code. The first field of
>the `protosw' structure is:

>        short   pr_type;                /* socket type used for */

>Which (if I understand the way this works right - I haven't been able
>to backtrack through the networking code enough to verify this) is
>used to match the requested protocol type against available protocol
>types. Since (in uipc_proto.c) pr_type for the raw_* stuff is declared
>as `0', I can't see how raw_input ever gets call via the localsw
>array. (Infact there are several examples of `raw_input' being called
>which bypasses localsw totally). So why on earth is it there?!?

I didn't attempt to fix it because I don't completely understand the
calling sequences, in particular this point.  I think some of the
functions in the switches are only accessed through the switches for
protocols that we don't support.

Bruce


help

Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?199604021127.VAA11042>