summaryrefslogtreecommitdiff
path: root/sys
diff options
context:
space:
mode:
authorAngelos D. Keromytis <angelos@cvs.openbsd.org>2001-06-24 22:21:51 +0000
committerAngelos D. Keromytis <angelos@cvs.openbsd.org>2001-06-24 22:21:51 +0000
commit67b463b6949b5f1d47e52c6298880e51d9f98b03 (patch)
tree3c8a588880e70fa30bd90755c87f086f761bc462 /sys
parent145168174bdecbc4185d7d8b663ac69189008f66 (diff)
Reset
Diffstat (limited to 'sys')
-rw-r--r--sys/netinet/ip_output.c20
1 files changed, 18 insertions, 2 deletions
diff --git a/sys/netinet/ip_output.c b/sys/netinet/ip_output.c
index 73a3d71295f..1922a9f94ca 100644
--- a/sys/netinet/ip_output.c
+++ b/sys/netinet/ip_output.c
@@ -1,4 +1,4 @@
-/* $OpenBSD: ip_output.c,v 1.114 2001/06/24 19:48:58 kjell Exp $ */
+/* $OpenBSD: ip_output.c,v 1.115 2001/06/24 22:21:50 angelos Exp $ */
/* $NetBSD: ip_output.c,v 1.28 1996/02/13 23:43:07 christos Exp $ */
/*
@@ -1042,7 +1042,15 @@ ip_ctloutput(op, so, level, optname, mp)
error = EINVAL;
break;
}
-
+
+ /* Unlink cached output TDB to force a re-search */
+ if (inp->inp_tdb_out) {
+ int s = spltdb();
+ TAILQ_REMOVE(&inp->inp_tdb_out->tdb_inp_out,
+ inp, inp_tdb_out_next);
+ splx(s);
+ }
+
switch (optname) {
case IP_AUTH_LEVEL:
if (optval < ipsec_auth_default_level &&
@@ -1197,6 +1205,14 @@ ip_ctloutput(op, so, level, optname, mp)
}
break;
}
+
+ /* Unlink cached output TDB to force a re-search */
+ if (inp->inp_tdb_out) {
+ int s = spltdb();
+ TAILQ_REMOVE(&inp->inp_tdb_out->tdb_inp_out,
+ inp, inp_tdb_out_next);
+ splx(s);
+ }
#endif
break;
default: