Subject: CVS commit: src/sys
To: None <source-changes@NetBSD.org>
From: David Young <dyoung@netbsd.org>
List: source-changes
Date: 08/30/2007 02:17:39
Module Name:	src
Committed By:	dyoung
Date:		Thu Aug 30 02:17:39 UTC 2007

Modified Files:
	src/sys/kern: uipc_domain.c
	src/sys/net: if.c if_arcsubr.c if_dl.h if_ecosubr.c if_etherip.c
	    if_ethersubr.c if_fddisubr.c if_hippisubr.c if_ieee1394subr.c
	    if_tap.c if_tokensubr.c link_proto.c route.c
	src/sys/net/agr: if_agr.c
	src/sys/netatalk: at_proto.c at_var.h
	src/sys/netinet: if_arp.c if_atm.c in.h in_proto.c ip_carp.c ip_input.c
	src/sys/netinet6: in6.h in6_proto.c nd6.c nd6.h nd6_nbr.c
	src/sys/netiso: iso.h iso_proto.c iso_snpac.c
	src/sys/sys: domain.h socket.h

Log Message:
Use malloc(9) for sockaddrs instead of pool(9), and remove dom_sa_pool
and dom_sa_len members from struct domain.  Pools of fixed-size
objects are too rigid for sockaddr_dls, whose size can vary over
a wide range.

Return sockaddr_dl to its "historical" size.  Now that I'm using
malloc(9) instead of pool(9) to allocate sockaddr_dl, I can create
a sockaddr_dl of any size in the kernel, so expanding sockaddr_dl
is useless.

Avoid using sizeof(struct sockaddr_dl) in the kernel.

Introduce sockaddr_dl_alloc() for allocating & initializing an
arbitrary sockaddr_dl on the heap.

Add an argument, the sockaddr length, to sockaddr_alloc(),
sockaddr_copy(), and sockaddr_dl_setaddr().

Constify: LLADDR() -> CLLADDR().

Where the kernel overwrites LLADDR(), use sockaddr_dl_setaddr(),
instead.  Used properly, sockaddr_dl_setaddr() will not overrun
the end of the sockaddr.


To generate a diff of this commit:
cvs rdiff -r1.68 -r1.69 src/sys/kern/uipc_domain.c
cvs rdiff -r1.196 -r1.197 src/sys/net/if.c
cvs rdiff -r1.55 -r1.56 src/sys/net/if_arcsubr.c
cvs rdiff -r1.20 -r1.21 src/sys/net/if_dl.h
cvs rdiff -r1.24 -r1.25 src/sys/net/if_ecosubr.c
cvs rdiff -r1.10 -r1.11 src/sys/net/if_etherip.c
cvs rdiff -r1.153 -r1.154 src/sys/net/if_ethersubr.c
cvs rdiff -r1.71 -r1.72 src/sys/net/if_fddisubr.c
cvs rdiff -r1.30 -r1.31 src/sys/net/if_hippisubr.c
cvs rdiff -r1.35 -r1.36 src/sys/net/if_ieee1394subr.c
cvs rdiff -r1.31 -r1.32 src/sys/net/if_tap.c
cvs rdiff -r1.49 -r1.50 src/sys/net/if_tokensubr.c
cvs rdiff -r1.2 -r1.3 src/sys/net/link_proto.c
cvs rdiff -r1.95 -r1.96 src/sys/net/route.c
cvs rdiff -r1.14 -r1.15 src/sys/net/agr/if_agr.c
cvs rdiff -r1.14 -r1.15 src/sys/netatalk/at_proto.c
cvs rdiff -r1.6 -r1.7 src/sys/netatalk/at_var.h
cvs rdiff -r1.126 -r1.127 src/sys/netinet/if_arp.c
cvs rdiff -r1.25 -r1.26 src/sys/netinet/if_atm.c
cvs rdiff -r1.79 -r1.80 src/sys/netinet/in.h
cvs rdiff -r1.87 -r1.88 src/sys/netinet/in_proto.c
cvs rdiff -r1.15 -r1.16 src/sys/netinet/ip_carp.c
cvs rdiff -r1.251 -r1.252 src/sys/netinet/ip_input.c
cvs rdiff -r1.61 -r1.62 src/sys/netinet6/in6.h
cvs rdiff -r1.77 -r1.78 src/sys/netinet6/in6_proto.c
cvs rdiff -r1.118 -r1.119 src/sys/netinet6/nd6.c
cvs rdiff -r1.49 -r1.50 src/sys/netinet6/nd6.h
cvs rdiff -r1.79 -r1.80 src/sys/netinet6/nd6_nbr.c
cvs rdiff -r1.20 -r1.21 src/sys/netiso/iso.h
cvs rdiff -r1.24 -r1.25 src/sys/netiso/iso_proto.c
cvs rdiff -r1.45 -r1.46 src/sys/netiso/iso_snpac.c
cvs rdiff -r1.25 -r1.26 src/sys/sys/domain.h
cvs rdiff -r1.87 -r1.88 src/sys/sys/socket.h

Please note that diffs are not public domain; they are subject to the
copyright notices on the relevant files.