diff options
author | 2004-01-28 17:29:46 +0000 | |
---|---|---|
committer | 2004-01-28 17:29:46 +0000 | |
commit | a00fc8cdb2142935d93abfc605db28f7af5e1dea (patch) | |
tree | 8a78da6d97ce5ff000e0c3ad4cccb3484906e4ca | |
parent | -struct peer_auth to store the SPIs, linked into struct peer (diff) | |
download | wireguard-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.c | 7 |
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) { |