freebsd-nq/sys/netinet
Robert Watson a152f8a361 Change semantics of socket close and detach. Add a new protocol switch
function, pru_close, to notify protocols that the file descriptor or
other consumer of a socket is closing the socket.  pru_abort is now a
notification of close also, and no longer detaches.  pru_detach is no
longer used to notify of close, and will be called during socket
tear-down by sofree() when all references to a socket evaporate after
an earlier call to abort or close the socket.  This means detach is now
an unconditional teardown of a socket, whereas previously sockets could
persist after detach of the protocol retained a reference.

This faciliates sharing mutexes between layers of the network stack as
the mutex is required during the checking and removal of references at
the head of sofree().  With this change, pru_detach can now assume that
the mutex will no longer be required by the socket layer after
completion, whereas before this was not necessarily true.

Reviewed by:	gnn
2006-07-21 17:11:15 +00:00
..
libalias o Kill BUGS section as it is not valid since rev. 1.4 alias_pptp.c. 2006-07-04 20:39:38 +00:00
accf_data.c
accf_http.c
icmp6.h
icmp_var.h
if_atm.c
if_atm.h
if_ether.c There is a consensus that ifaddr.ifa_addr should never be NULL, 2006-06-29 19:22:05 +00:00
if_ether.h
igmp_var.h
igmp.c
igmp.h
in_cksum.c
in_gif.c
in_gif.h
in_pcb.c Fix race conditions on enumerating pcb lists by moving the initialization 2006-07-18 22:34:27 +00:00
in_pcb.h Fix race conditions on enumerating pcb lists by moving the initialization 2006-07-18 22:34:27 +00:00
in_proto.c
in_rmx.c Complete timebase (time_second -> time_uptime) conversion. 2006-07-05 23:37:21 +00:00
in_systm.h
in_var.h
in.c
in.h
ip6.h
ip_carp.c Revise network interface cloning to take an optional opaque 2006-07-09 06:04:01 +00:00
ip_carp.h
ip_divert.c Fix race conditions on enumerating pcb lists by moving the initialization 2006-07-18 22:34:27 +00:00
ip_divert.h
ip_dummynet.c
ip_dummynet.h
ip_ecn.c
ip_ecn.h
ip_encap.c
ip_encap.h
ip_fastfwd.c
ip_fw2.c There is a consensus that ifaddr.ifa_addr should never be NULL, 2006-06-29 19:22:05 +00:00
ip_fw_pfil.c
ip_fw.h
ip_gre.c
ip_gre.h
ip_icmp.c
ip_icmp.h
ip_id.c
ip_input.c
ip_ipsec.c Remove unneeded mac.h include. 2006-07-06 13:25:01 +00:00
ip_ipsec.h
ip_mroute.c
ip_mroute.h
ip_options.c
ip_options.h
ip_output.c Fix URL to Bellovin's paper. 2006-06-29 13:38:36 +00:00
ip_var.h
ip.h
ipprotosw.h
pim_var.h
pim.h
raw_ip.c Change semantics of socket close and detach. Add a new protocol switch 2006-07-21 17:11:15 +00:00
tcp_debug.c
tcp_debug.h
tcp_fsm.h
tcp_hostcache.c
tcp_input.c Use INPLOOKUP_WILDCARD instead of just 1 more consistently. 2006-06-29 10:49:49 +00:00
tcp_output.c
tcp_reass.c Use INPLOOKUP_WILDCARD instead of just 1 more consistently. 2006-06-29 10:49:49 +00:00
tcp_sack.c
tcp_seq.h Remove T/TCP RFC1644 Connection Count comparison macros. They are no longer 2006-06-18 14:24:12 +00:00
tcp_subr.c Change semantics of socket close and detach. Add a new protocol switch 2006-07-21 17:11:15 +00:00
tcp_syncache.c In syncache_respond() do not reply with a MSS that is larger than what 2006-06-26 17:54:53 +00:00
tcp_timer.c
tcp_timer.h
tcp_timewait.c Change semantics of socket close and detach. Add a new protocol switch 2006-07-21 17:11:15 +00:00
tcp_usrreq.c Change semantics of socket close and detach. Add a new protocol switch 2006-07-21 17:11:15 +00:00
tcp_var.h Some cleanups and janitorial work to tcp_dooptions(): 2006-06-26 15:35:25 +00:00
tcp.h
tcpip.h
udp_usrreq.c Change semantics of socket close and detach. Add a new protocol switch 2006-07-21 17:11:15 +00:00
udp_var.h
udp.h