summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAngelos D. Keromytis <angelos@cvs.openbsd.org>2001-08-05 11:02:04 +0000
committerAngelos D. Keromytis <angelos@cvs.openbsd.org>2001-08-05 11:02:04 +0000
commite95106ae90c36e56ba7d18fa6cb82cc1c00b40a9 (patch)
treeeaa74465a313263bce2b5983ab0554ad0cdc8573
parent39ebef8d909272c2d4d946965c6012134d58bd15 (diff)
Only flush the policies if the message type is UNSPEC.
-rw-r--r--sys/net/pfkeyv2.c13
1 files changed, 8 insertions, 5 deletions
diff --git a/sys/net/pfkeyv2.c b/sys/net/pfkeyv2.c
index 4daac035e3f..9e4b5753657 100644
--- a/sys/net/pfkeyv2.c
+++ b/sys/net/pfkeyv2.c
@@ -1,4 +1,4 @@
-/* $OpenBSD: pfkeyv2.c,v 1.75 2001/07/06 13:31:07 ho Exp $ */
+/* $OpenBSD: pfkeyv2.c,v 1.76 2001/08/05 11:02:03 angelos Exp $ */
/*
* @(#)COPYRIGHT 1.1 (NRL) 17 January 1995
@@ -1263,10 +1263,13 @@ pfkeyv2_send(struct socket *socket, void *message, int len)
case SADB_FLUSH:
rval = 0;
- s = spltdb();
- while ((ipo = TAILQ_FIRST(&ipsec_policy_head)) != NULL)
- ipsec_delete_policy(ipo);
- splx(s);
+ if (smsg->sadb_msg_satype == SADB_SATYPE_UNSPEC)
+ {
+ s = spltdb();
+ while ((ipo = TAILQ_FIRST(&ipsec_policy_head)) != NULL)
+ ipsec_delete_policy(ipo);
+ splx(s);
+ }
switch(smsg->sadb_msg_satype)
{