diff options
author | Claudio Jeker <claudio@cvs.openbsd.org> | 2013-06-01 18:21:46 +0000 |
---|---|---|
committer | Claudio Jeker <claudio@cvs.openbsd.org> | 2013-06-01 18:21:46 +0000 |
commit | 3585cd6d180749a95d7d73a0d91007ec72552324 (patch) | |
tree | 2f575d45a20b5b31e14a083883e8d80c58f43e46 /usr.sbin | |
parent | 2076baea62b2344c9604e5f404b38ac9f906efce (diff) |
After sending a keepalive message in the OPENSENT state, we must move to
the OPENREC state and wait for a keepalive before considering the
session as established
Another bug fix by Renato Westphal
Diffstat (limited to 'usr.sbin')
-rw-r--r-- | usr.sbin/ldpd/neighbor.c | 8 |
1 files changed, 2 insertions, 6 deletions
diff --git a/usr.sbin/ldpd/neighbor.c b/usr.sbin/ldpd/neighbor.c index b189ad6a2e9..f1958488b04 100644 --- a/usr.sbin/ldpd/neighbor.c +++ b/usr.sbin/ldpd/neighbor.c @@ -1,4 +1,4 @@ -/* $OpenBSD: neighbor.c,v 1.28 2013/06/01 18:16:35 claudio Exp $ */ +/* $OpenBSD: neighbor.c,v 1.29 2013/06/01 18:21:45 claudio Exp $ */ /* * Copyright (c) 2009 Michele Marchetto <michele@openbsd.org> @@ -103,7 +103,7 @@ struct { {NBR_STA_OPENREC, NBR_EVT_KEEPALIVE_RCVD, NBR_ACT_SESSION_EST, NBR_STA_OPER}, /* Active Role */ {NBR_STA_PRESENT, NBR_EVT_INIT_SENT, NBR_ACT_NOTHING, NBR_STA_OPENSENT}, - {NBR_STA_OPENSENT, NBR_EVT_INIT_RCVD, NBR_ACT_KEEPALIVE_SEND, NBR_STA_OPER}, + {NBR_STA_OPENSENT, NBR_EVT_INIT_RCVD, NBR_ACT_KEEPALIVE_SEND, NBR_STA_OPENREC}, /* Session Maintenance */ {NBR_STA_OPER, NBR_EVT_PDU_RCVD, NBR_ACT_RST_KTIMEOUT, 0}, /* Session Close */ @@ -193,12 +193,8 @@ nbr_fsm(struct nbr *nbr, enum nbr_event event) send_keepalive(nbr); break; case NBR_ACT_KEEPALIVE_SEND: - nbr_act_session_operational(nbr); - nbr_start_ktimer(nbr); nbr_start_ktimeout(nbr); send_keepalive(nbr); - send_address(nbr, NULL); - nbr_send_labelmappings(nbr); break; case NBR_ACT_CLOSE_SESSION: ldpe_imsg_compose_lde(IMSG_NEIGHBOR_DOWN, nbr->peerid, 0, |