summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorhenning <henning@openbsd.org>2004-01-28 17:29:46 +0000
committerhenning <henning@openbsd.org>2004-01-28 17:29:46 +0000
commita00fc8cdb2142935d93abfc605db28f7af5e1dea (patch)
tree8a78da6d97ce5ff000e0c3ad4cccb3484906e4ca
parent-struct peer_auth to store the SPIs, linked into struct peer (diff)
downloadwireguard-openbsd-a00fc8cdb2142935d93abfc605db28f7af5e1dea.tar.xz
wireguard-openbsd-a00fc8cdb2142935d93abfc605db28f7af5e1dea.zip
call pfkey_auth_establish() on START events
call pfkey_auth_remove when a session drops back to IDLE state ok markus@ claudio@
-rw-r--r--usr.sbin/bgpd/session.c7
1 files changed, 6 insertions, 1 deletions
diff --git a/usr.sbin/bgpd/session.c b/usr.sbin/bgpd/session.c
index d7c7cdae958..590075e9a62 100644
--- a/usr.sbin/bgpd/session.c
+++ b/usr.sbin/bgpd/session.c
@@ -1,4 +1,4 @@
-/* $OpenBSD: session.c,v 1.95 2004/01/27 16:49:53 henning Exp $ */
+/* $OpenBSD: session.c,v 1.96 2004/01/28 17:29:46 henning Exp $ */
/*
* Copyright (c) 2003, 2004 Henning Brauer <henning@openbsd.org>
@@ -381,6 +381,10 @@ bgp_fsm(struct peer *peer, enum session_events event)
/* init write buffer */
msgbuf_init(&peer->wbuf);
+ /* init pfkey */
+ if (pfkey_auth_establish(peer) == -1)
+ return;
+
if (peer->conf.passive) {
change_state(peer, STATE_ACTIVE, event);
peer->ConnectRetryTimer = 0;
@@ -646,6 +650,7 @@ change_state(struct peer *peer, enum session_state state,
msgbuf_clear(&peer->wbuf);
free(peer->rbuf);
peer->rbuf = NULL;
+ pfkey_auth_remove(peer);
if (peer->state == STATE_ESTABLISHED)
session_down(peer);
if (event != EVNT_STOP) {