diff options
Diffstat (limited to 'bgpd/bgp_fsm.c')
| -rw-r--r-- | bgpd/bgp_fsm.c | 29 | 
1 files changed, 22 insertions, 7 deletions
| diff --git a/bgpd/bgp_fsm.c b/bgpd/bgp_fsm.c index 89195862..7327db0c 100644 --- a/bgpd/bgp_fsm.c +++ b/bgpd/bgp_fsm.c @@ -367,6 +367,9 @@ bgp_stop (struct peer *peer)        /* Need of clear of peer. */        bgp_clear_route_all (peer); + +      /* Reset peer synctime */ +      peer->synctime = 0;      }    /* Stop read and write threads when exists. */ @@ -491,6 +494,8 @@ bgp_stop_with_error (struct peer *peer)  int  bgp_connect_success (struct peer *peer)  { +  char buf1[BUFSIZ]; +    if (peer->fd < 0)      {        zlog_err ("bgp_connect_success peer's fd is negative value %d", @@ -499,7 +504,17 @@ bgp_connect_success (struct peer *peer)      }    BGP_READ_ON (peer->t_read, bgp_read, peer->fd); -  /* bgp_getsockname (peer); */ +  if (! CHECK_FLAG (peer->sflags, PEER_STATUS_ACCEPT_PEER)) +    bgp_getsockname (peer); + +  if (BGP_DEBUG (normal, NORMAL)) +    { +      if (! CHECK_FLAG (peer->sflags, PEER_STATUS_ACCEPT_PEER)) +	zlog_debug ("%s open active, local address %s", peer->host, +		    sockunion2str (peer->su_local, buf1, SU_ADDRSTRLEN)); +      else +	zlog_debug ("%s passive open", peer->host); +    }    if (! CHECK_FLAG (peer->sflags, PEER_STATUS_ACCEPT_PEER))      bgp_open_send (peer); @@ -594,6 +609,12 @@ bgp_fsm_change_status (struct peer *peer, int status)    /* Preserve old status and change into new status. */    peer->ostatus = peer->status;    peer->status = status; + +  if (BGP_DEBUG (normal, NORMAL)) +    zlog_debug ("%s went from %s to %s", +		peer->host, +		LOOKUP (bgp_status_msg, peer->ostatus), +		LOOKUP (bgp_status_msg, peer->status));  }  /* Keepalive send to peer. */ @@ -866,12 +887,6 @@ bgp_event (struct thread *thread)  	       bgp_event_str[event],  	       LOOKUP (bgp_status_msg, peer->status),  	       LOOKUP (bgp_status_msg, next)); -  if (BGP_DEBUG (normal, NORMAL) -      && strcmp (LOOKUP (bgp_status_msg, peer->status), LOOKUP (bgp_status_msg, next))) -    zlog_debug ("%s went from %s to %s", -	       peer->host, -	       LOOKUP (bgp_status_msg, peer->status), -	       LOOKUP (bgp_status_msg, next));    /* Call function. */    ret = (*(FSM [peer->status - 1][event - 1].func))(peer); | 
