Source-Changes archive

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index][Old Index]

CVS commit: src



Module Name:    src
Committed By:   dyoung
Date:           Fri Sep 11 22:06:29 UTC 2009

Modified Files:
        src/sbin/ifconfig: af_inet.c af_inet6.c util.c util.h
        src/sys/kern: uipc_domain.c uipc_socket.c
        src/sys/net: if.c if.h
        src/sys/netinet: in.c
        src/sys/netinet6: in6.c in6.h in6_proto.c scope6.c
        src/sys/sys: domain.h socket.h socketvar.h

Log Message:
Make ifconfig(8) set and display preference numbers for IPv6
addresses.  Make the kernel support SIOC[SG]IFADDRPREF for IPv6
interface addresses.

In in6ifa_ifpforlinklocal(), consult preference numbers before
making an otherwise arbitrary choice of in6_ifaddr.  Otherwise,
preference numbers are *not* consulted by the kernel, but that will
be rather easy for somebody with a little bit of free time to fix.

Please note that setting the preference number for a link-local
IPv6 address does not work right, yet, but that ought to be fixed
soon.

In support of the changes above,

1 Add a method to struct domain for "externalizing" a sockaddr, and
  provide an implementation for IPv6.  Expect more work in this area: it
  may be more proper to say that the IPv6 implementation "internalizes"
  a sockaddr.  Add sockaddr_externalize().

2 Add a subroutine, sofamily(), that returns a struct socket's address
  family or AF_UNSPEC.

3 Make a lot of IPv4-specific code generic, and move it from
  sys/netinet/ to sys/net/ for re-use by IPv6 parts of the kernel and
  ifconfig(8).


To generate a diff of this commit:
cvs rdiff -u -r1.13 -r1.14 src/sbin/ifconfig/af_inet.c
cvs rdiff -u -r1.24 -r1.25 src/sbin/ifconfig/af_inet6.c
cvs rdiff -u -r1.12 -r1.13 src/sbin/ifconfig/util.c
cvs rdiff -u -r1.7 -r1.8 src/sbin/ifconfig/util.h
cvs rdiff -u -r1.83 -r1.84 src/sys/kern/uipc_domain.c
cvs rdiff -u -r1.189 -r1.190 src/sys/kern/uipc_socket.c
cvs rdiff -u -r1.234 -r1.235 src/sys/net/if.c
cvs rdiff -u -r1.143 -r1.144 src/sys/net/if.h
cvs rdiff -u -r1.134 -r1.135 src/sys/netinet/in.c
cvs rdiff -u -r1.152 -r1.153 src/sys/netinet6/in6.c
cvs rdiff -u -r1.67 -r1.68 src/sys/netinet6/in6.h
cvs rdiff -u -r1.86 -r1.87 src/sys/netinet6/in6_proto.c
cvs rdiff -u -r1.7 -r1.8 src/sys/netinet6/scope6.c
cvs rdiff -u -r1.28 -r1.29 src/sys/sys/domain.h
cvs rdiff -u -r1.95 -r1.96 src/sys/sys/socket.h
cvs rdiff -u -r1.120 -r1.121 src/sys/sys/socketvar.h

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



Home | Main Index | Thread Index | Old Index