Module Name: src Committed By: roy Date: Thu Feb 26 09:54:46 UTC 2015
Modified Files: src/sys/net: route.c route.h src/sys/netinet: if_arp.c in.c ip_carp.c src/sys/netinet6: in6.c in6_var.h Log Message: Introduce the routing flag RTF_LOCAL to track local address routes. Add functions rt_ifa_addlocal() and rt_ifa_remlocal() to add and remove local routes for the address and announce the new address and route to the routing socket. Add in_ifaddlocal() and in_ifremlocal() to use these functions. Rename in6_if{add,rem}loop() to in6_if{add,rem}local() and use these functions. rtinit() no longer announces the address, just the network route for the address. As such, calls to rt_newaddrmsg() have been removed from in_addprefix() and in_scrubprefix(). This solves the problem of potentially more than one announcement, or no announcement at all for the address in certain situations. To generate a diff of this commit: cvs rdiff -u -r1.135 -r1.136 src/sys/net/route.c cvs rdiff -u -r1.86 -r1.87 src/sys/net/route.h cvs rdiff -u -r1.160 -r1.161 src/sys/netinet/if_arp.c cvs rdiff -u -r1.149 -r1.150 src/sys/netinet/in.c cvs rdiff -u -r1.59 -r1.60 src/sys/netinet/ip_carp.c cvs rdiff -u -r1.183 -r1.184 src/sys/netinet6/in6.c cvs rdiff -u -r1.71 -r1.72 src/sys/netinet6/in6_var.h Please note that diffs are not public domain; they are subject to the copyright notices on the relevant files.