diff --git a/sys/netinet6/in6_pcb.c b/sys/netinet6/in6_pcb.c index 6b3f91b03551..47dd9b043c9e 100644 --- a/sys/netinet6/in6_pcb.c +++ b/sys/netinet6/in6_pcb.c @@ -405,6 +405,10 @@ in6_pcbconnect(inp, nam, td) #endif in_pcbrehash(inp); +#ifdef IPSEC + if (inp->inp_socket->so_type == SOCK_STREAM) + ipsec_pcbconn(inp->inp_sp); +#endif return (0); } @@ -417,6 +421,9 @@ in6_pcbdisconnect(inp) /* clear flowinfo - draft-itojun-ipv6-flowlabel-api-00 */ inp->in6p_flowinfo &= ~IPV6_FLOWLABEL_MASK; in_pcbrehash(inp); +#ifdef IPSEC + ipsec_pcbdisconn(inp->inp_sp); +#endif if (inp->inp_socket->so_state & SS_NOFDREF) in6_pcbdetach(inp); }