freebsd-skq/sys/netgraph
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
..
atm Replace the array initialization using the gcc-specific format 2006-06-02 09:08:51 +00:00
bluetooth Change semantics of socket close and detach. Add a new protocol switch 2006-07-21 17:11:15 +00:00
netflow o Replace disappeared URLs to Cisco docs by new ones, style. 2006-04-25 20:01:50 +00:00
netgraph.h Use NET_CALLOUT_MPSAFE for netgraph callout initializer. 2006-06-06 08:05:27 +00:00
ng_async.c
ng_async.h
ng_atmllc.c
ng_atmllc.h
ng_base.c When counting nodes second time, use the same criteria as for 2006-06-07 12:42:15 +00:00
ng_bpf.c Fix build without BPF_JITTER option. 2005-12-07 21:41:45 +00:00
ng_bpf.h
ng_bridge.c
ng_bridge.h
ng_cisco.c
ng_cisco.h
ng_device.c
ng_device.h
ng_echo.c
ng_echo.h
ng_eiface.c Don't count output bytes twice (the byte accouting is done 2006-02-11 20:25:00 +00:00
ng_eiface.h
ng_etf.c
ng_etf.h
ng_ether.c Do not force queueing on peer hooks. This was important only for 2006-01-12 21:09:12 +00:00
ng_ether.h
ng_fec.c
ng_fec.h
ng_frame_relay.c Initialize variable. 2006-01-14 21:49:31 +00:00
ng_frame_relay.h
ng_gif_demux.c
ng_gif_demux.h
ng_gif.c
ng_gif.h
ng_hole.c Fix memory leak. 2005-12-09 07:09:44 +00:00
ng_hole.h
ng_hub.c
ng_hub.h
ng_iface.c add missed calls to bpf_peers_present 2006-06-02 23:14:40 +00:00
ng_iface.h
ng_ip_input.c
ng_ip_input.h
ng_ipfw.c Unbreak this. 2006-02-14 15:22:24 +00:00
ng_ipfw.h Remove unused now field. 2006-02-17 09:42:49 +00:00
ng_ksocket.c Clear csum_flags after reading data from socket buffer. Otherwise, 2006-02-21 13:04:39 +00:00
ng_ksocket.h
ng_l2tp.c
ng_l2tp.h
ng_lmi.c Remove dead code. 2006-01-14 14:17:27 +00:00
ng_lmi.h
ng_message.h In the splnet(9) times netgraph(4) was synchronous and if a message 2006-01-12 19:14:40 +00:00
ng_mppc.c
ng_mppc.h
ng_nat.c
ng_nat.h
ng_one2many.c
ng_one2many.h
ng_parse.c Fix two accesses to uninitialized variables that a revision 1.27 2006-01-18 16:09:00 +00:00
ng_parse.h
ng_ppp.c
ng_ppp.h
ng_pppoe.c o Introduce D-Link compat mode, that is default to off and can be set 2006-01-27 10:56:22 +00:00
ng_pppoe.h o Introduce D-Link compat mode, that is default to off and can be set 2006-01-27 10:56:22 +00:00
ng_pptpgre.c
ng_pptpgre.h
ng_rfc1490.c
ng_rfc1490.h
ng_sample.c
ng_sample.h
ng_socket.c Change semantics of socket close and detach. Add a new protocol switch 2006-07-21 17:11:15 +00:00
ng_socket.h
ng_socketvar.h
ng_source.c Simplify ng_source_send() removing temporary queue and merging two 2006-01-23 10:28:04 +00:00
ng_source.h Implement an upper limit for packets per second sent by node. 2005-12-23 19:14:38 +00:00
ng_split.c
ng_split.h
ng_sppp.c Fix module from panic. 2006-01-29 22:06:51 +00:00
ng_sppp.h
ng_tag.c A netgraph node that can do different manipulations with 2006-06-27 12:45:28 +00:00
ng_tag.h A netgraph node that can do different manipulations with 2006-06-27 12:45:28 +00:00
ng_tcpmss.c Free private data when deleting hook. 2006-03-15 15:41:36 +00:00
ng_tcpmss.h
ng_tee.c
ng_tee.h
ng_tty.c
ng_tty.h
ng_UI.c
ng_UI.h
ng_vjc.c
ng_vjc.h
ng_vlan.c
ng_vlan.h
NOTES