summaryrefslogtreecommitdiff
path: root/sys/netinet
diff options
context:
space:
mode:
authorAngelos D. Keromytis <angelos@cvs.openbsd.org>2001-06-24 22:24:31 +0000
committerAngelos D. Keromytis <angelos@cvs.openbsd.org>2001-06-24 22:24:31 +0000
commit7c34cd79035dd0828e7f59ab0f36cc710ace92b6 (patch)
tree49ab677c692d7e700410aebc326414f10a65e6cd /sys/netinet
parent8ac5f4f8392786d9a55a48994415b7d6828b1a10 (diff)
Also reset input cached TDB.
Diffstat (limited to 'sys/netinet')
-rw-r--r--sys/netinet/ip_output.c16
1 files changed, 15 insertions, 1 deletions
diff --git a/sys/netinet/ip_output.c b/sys/netinet/ip_output.c
index 1922a9f94ca..441aec3f25e 100644
--- a/sys/netinet/ip_output.c
+++ b/sys/netinet/ip_output.c
@@ -1,4 +1,4 @@
-/* $OpenBSD: ip_output.c,v 1.115 2001/06/24 22:21:50 angelos Exp $ */
+/* $OpenBSD: ip_output.c,v 1.116 2001/06/24 22:24:30 angelos Exp $ */
/* $NetBSD: ip_output.c,v 1.28 1996/02/13 23:43:07 christos Exp $ */
/*
@@ -1051,6 +1051,13 @@ ip_ctloutput(op, so, level, optname, mp)
splx(s);
}
+ if (inp->inp_tdb_in) {
+ int s = spltdb();
+ TAILQ_REMOVE(&inp->inp_tdb_in->tdb_inp_in,
+ inp, inp_tdb_in_next);
+ splx(s);
+ }
+
switch (optname) {
case IP_AUTH_LEVEL:
if (optval < ipsec_auth_default_level &&
@@ -1213,6 +1220,13 @@ ip_ctloutput(op, so, level, optname, mp)
inp, inp_tdb_out_next);
splx(s);
}
+
+ if (inp->inp_tdb_in) {
+ int s = spltdb();
+ TAILQ_REMOVE(&inp->inp_tdb_in->tdb_inp_in,
+ inp, inp_tdb_in_next);
+ splx(s);
+ }
#endif
break;
default: