diff options
author | rwatson <rwatson@FreeBSD.org> | 2005-09-18 17:36:28 +0000 |
---|---|---|
committer | rwatson <rwatson@FreeBSD.org> | 2005-09-18 17:36:28 +0000 |
commit | 64eedb0310efb0ac8456dd7ad217d0bb521fb0fe (patch) | |
tree | 3b72fca936f4938b785351a205954a3281449806 /lib/libc/gen/getcwd.c | |
parent | 58834f5972e1bccbd50161cd117ea2f7f64bd892 (diff) | |
download | FreeBSD-src-64eedb0310efb0ac8456dd7ad217d0bb521fb0fe.zip FreeBSD-src-64eedb0310efb0ac8456dd7ad217d0bb521fb0fe.tar.gz |
Take a first cut at cleaning up ifnet removal and multicast socket
panics, which occur when stale ifnet pointers are left in struct
moptions hung off of inpcbs:
- Add in_ifdetach(), which matches in6_ifdetach(), and allows the
protocol to perform early tear-down on the interface early in
if_detach().
- Annotate that if_detach() needs careful consideration.
- Remove calls to in_pcbpurgeif0() in the handling of SIOCDIFADDR --
this is not the place to detect interface removal! This also
removes what is basically a nasty (and now unnecessary) hack.
- Invoke in_pcbpurgeif0() from in_ifdetach(), in both raw and UDP
IPv4 sockets.
It is now possible to run the msocket_ifnet_remove regression test
using HEAD without panicking.
MFC after: 3 days
Diffstat (limited to 'lib/libc/gen/getcwd.c')
0 files changed, 0 insertions, 0 deletions