Define two new inpcb flags in the inp_vflag field, which for whatever
reason, seems to be where new flags are getting defined: INP_DROPPED - The protocol has terminated this connection and the socket is not reusable: when the socket code enters the protocol, an error is immediately returned. This will substitute for NULLing the so_pcb socket field, helping to implement the invariant that all valid sockets have valid pcb's in TCP. INP_SOCKREF - The protocol has become the owner of the socket reference, and will need to free it when freeing the pcb, which will be used when a TCP socket is closed but still has queued data. MFC after: 1 month
This commit is contained in:
parent
a07b8fd178
commit
6882aa2c03
@ -131,6 +131,8 @@ struct inpcb {
|
||||
#define INP_IPV6PROTO 0x4 /* opened under IPv6 protocol */
|
||||
#define INP_TIMEWAIT 0x8 /* .. probably doesn't go here */
|
||||
#define INP_ONESBCAST 0x10 /* send all-ones broadcast */
|
||||
#define INP_DROPPED 0x20 /* protocol drop flag */
|
||||
#define INP_SOCKREF 0x40 /* strong socket reference */
|
||||
u_char inp_ip_ttl; /* time to live proto */
|
||||
u_char inp_ip_p; /* protocol proto */
|
||||
u_char inp_ip_minttl; /* minimum TTL or drop */
|
||||
|
Loading…
x
Reference in New Issue
Block a user