summaryrefslogtreecommitdiffstats
path: root/sys/netinet6
diff options
context:
space:
mode:
authorbz <bz@FreeBSD.org>2008-11-27 12:04:35 +0000
committerbz <bz@FreeBSD.org>2008-11-27 12:04:35 +0000
commit864141180ec3ef4d8192d52ae360994300a14548 (patch)
treee1f15662baedc4c9181ee6f9e4cd9ced42b3fbba /sys/netinet6
parentb683fcf69217f7195e73b2f05d608c952101f47a (diff)
downloadFreeBSD-src-864141180ec3ef4d8192d52ae360994300a14548.zip
FreeBSD-src-864141180ec3ef4d8192d52ae360994300a14548.tar.gz
Merge in6_pcbfree() into in_pcbfree() which after the previous
IPsec change in r185366 only differed in two additonal IPv6 lines. Rather than splattering conditional code everywhere add the v6 check centrally at this single place. Reviewed by: rwatson (as part of a larger changset) MFC after: 6 weeks (*) (*) possibly need to leave a stub wrapper in 7 to keep the symbol.
Diffstat (limited to 'sys/netinet6')
-rw-r--r--sys/netinet6/in6_pcb.c39
-rw-r--r--sys/netinet6/in6_pcb.h1
-rw-r--r--sys/netinet6/raw_ip6.c2
-rw-r--r--sys/netinet6/udp6_usrreq.c2
4 files changed, 2 insertions, 42 deletions
diff --git a/sys/netinet6/in6_pcb.c b/sys/netinet6/in6_pcb.c
index 75bc345..c854891 100644
--- a/sys/netinet6/in6_pcb.c
+++ b/sys/netinet6/in6_pcb.c
@@ -103,12 +103,6 @@ __FBSDID("$FreeBSD$");
#include <netinet6/in6_pcb.h>
#include <netinet6/scope6_var.h>
-#ifdef IPSEC
-#include <netipsec/ipsec.h>
-#include <netipsec/ipsec6.h>
-#include <netipsec/key.h>
-#endif /* IPSEC */
-
#include <security/mac/mac_framework.h>
struct in6_addr zeroin6_addr;
@@ -410,39 +404,6 @@ in6_pcbdisconnect(struct inpcb *inp)
in_pcbrehash(inp);
}
-void
-in6_pcbfree(struct inpcb *inp)
-{
- struct inpcbinfo *ipi = inp->inp_pcbinfo;
-
- KASSERT(inp->inp_socket == NULL, ("%s: inp_socket != NULL", __func__));
-
- INP_INFO_WLOCK_ASSERT(ipi);
- INP_WLOCK_ASSERT(inp);
-
-#ifdef IPSEC
- if (inp->in6p_sp != NULL)
- ipsec_delete_pcbpolicy(inp);
-#endif /* IPSEC */
- inp->inp_gencnt = ++ipi->ipi_gencnt;
- in_pcbremlists(inp);
- ip6_freepcbopts(inp->in6p_outputopts);
- ip6_freemoptions(inp->in6p_moptions);
- /* Check and free IPv4 related resources in case of mapped addr */
- if (inp->inp_options)
- (void)m_free(inp->inp_options);
- if (inp->inp_moptions != NULL)
- inp_freemoptions(inp->inp_moptions);
- inp->inp_vflag = 0;
- crfree(inp->inp_cred);
-
-#ifdef MAC
- mac_inpcb_destroy(inp);
-#endif
- INP_WUNLOCK(inp);
- uma_zfree(ipi->ipi_zone, inp);
-}
-
struct sockaddr *
in6_sockaddr(in_port_t port, struct in6_addr *addr_p)
{
diff --git a/sys/netinet6/in6_pcb.h b/sys/netinet6/in6_pcb.h
index c76f9f1..b2cc724 100644
--- a/sys/netinet6/in6_pcb.h
+++ b/sys/netinet6/in6_pcb.h
@@ -74,7 +74,6 @@ void in6_losing __P((struct inpcb *));
int in6_pcbbind __P((struct inpcb *, struct sockaddr *, struct ucred *));
int in6_pcbconnect __P((struct inpcb *, struct sockaddr *, struct ucred *));
void in6_pcbdisconnect __P((struct inpcb *));
-void in6_pcbfree __P((struct inpcb *));
int in6_pcbladdr __P((struct inpcb *, struct sockaddr *,
struct in6_addr **));
struct inpcb *
diff --git a/sys/netinet6/raw_ip6.c b/sys/netinet6/raw_ip6.c
index bbdb27b..940bd1e 100644
--- a/sys/netinet6/raw_ip6.c
+++ b/sys/netinet6/raw_ip6.c
@@ -605,7 +605,7 @@ rip6_detach(struct socket *so)
INP_WLOCK(inp);
free(inp->in6p_icmp6filt, M_PCB);
in_pcbdetach(inp);
- in6_pcbfree(inp);
+ in_pcbfree(inp);
INP_INFO_WUNLOCK(&V_ripcbinfo);
}
diff --git a/sys/netinet6/udp6_usrreq.c b/sys/netinet6/udp6_usrreq.c
index f51156c..19a5199 100644
--- a/sys/netinet6/udp6_usrreq.c
+++ b/sys/netinet6/udp6_usrreq.c
@@ -901,7 +901,7 @@ udp6_detach(struct socket *so)
INP_INFO_WLOCK(&V_udbinfo);
INP_WLOCK(inp);
in_pcbdetach(inp);
- in6_pcbfree(inp);
+ in_pcbfree(inp);
INP_INFO_WUNLOCK(&V_udbinfo);
}
OpenPOWER on IntegriCloud