diff options
author | Angelos D. Keromytis <angelos@cvs.openbsd.org> | 2001-06-24 22:21:51 +0000 |
---|---|---|
committer | Angelos D. Keromytis <angelos@cvs.openbsd.org> | 2001-06-24 22:21:51 +0000 |
commit | 67b463b6949b5f1d47e52c6298880e51d9f98b03 (patch) | |
tree | 3c8a588880e70fa30bd90755c87f086f761bc462 /sys | |
parent | 145168174bdecbc4185d7d8b663ac69189008f66 (diff) |
Reset
Diffstat (limited to 'sys')
-rw-r--r-- | sys/netinet/ip_output.c | 20 |
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: |