* ftpd/ftpd.c, libcsupport/include/sys/ioccom.h,
libcsupport/src/ioctl.c, libnetworking/kern/uipc_mbuf.c,
libnetworking/libc/inet_addr.c, libnetworking/net/ethernet.h,
libnetworking/net/if.c, libnetworking/net/if_ethersubr.c,
libnetworking/net/if_ppp.c, libnetworking/net/if_pppvar.h,
libnetworking/net/if_var.h, libnetworking/net/ppp_tty.c,
libnetworking/netinet/in_cksum.c, libnetworking/nfs/bootp_subr.c,
libnetworking/rtems/rtems_bsdnet_internal.h,
libnetworking/sys/mbuf.h, pppd/md4.c, pppd/pppd.h: Remove warnings
due to improper use of int which shows up on 16 bit targets. Added
ioctl_command_t since IOCTL command argument does not reliably fit
into 16 bits.
From: Eric Norum <eric@skatter.usask.ca>
Date: Sat, 5 Dec 98 13:20:51 -0600
What do you think of this patch? It implements your `tap'
suggestion in a way that adds support for all ethernet devices with
no driver modifications. I also added a return value from the tap
function. If the return value is zero, the packet will be passed up
the chain as usual. If the return value is non-zero the mbuf holding
the packet will be freed and the packet will be dropped.
If you like it, please submit it to Joel.
I guess there needs to be an addition to the network documentation
describing the additional ioctl's -- and a big warning that the tap
function is called from a context that holds the network semaphore.
Here is Eric's patch. I've tested it a bit, and made a couple of
trivial changes. This is certainly better than mine: it should work
for all Ethernet drivers.
==================================================
The only concern I have about this patch is that the tap function may
want to fiddle with the mbuf, calling functions like m_pullup and the
like. If those force the networking code to rearrange the mbuf
structure, then the caller's call to m_freem may crash. I don't know
if this is a realistic concern--I don't know enough about the mbuf
layer.