--- a/bgpd/bgp_network.c
+++ b/bgpd/bgp_network.c
-@@ -257,8 +257,7 @@ bgp_accept (struct thread *thread)
- peer->fd = bgp_sock;
- peer->status = Active;
+@@ -255,8 +255,7 @@ bgp_accept (struct thread *thread)
+
+ /* Config state that should affect OPEN packet must be copied over */
peer->local_id = peer1->local_id;
- peer->v_holdtime = peer1->v_holdtime;
- peer->v_keepalive = peer1->v_keepalive;
+ peer->v_holdtime = BGP_LARGE_HOLDTIME;
-
- /* Make peer's address string. */
- sockunion2str (&su, buf, SU_ADDRSTRLEN);
+ peer->local_as = peer1->local_as;
+ peer->change_local_as = peer1->change_local_as;
+ peer->flags = peer1->flags;
--- a/bgpd/bgpd.h
+++ b/bgpd/bgpd.h
-@@ -752,6 +752,7 @@ struct bgp_nlri
+@@ -754,6 +754,7 @@ struct bgp_nlri
/* BGP timers default value. */
#define BGP_INIT_START_TIMER 1
+#define BGP_LARGE_HOLDTIME 240
#define BGP_DEFAULT_HOLDTIME 180
#define BGP_DEFAULT_KEEPALIVE 60
- #define BGP_DEFAULT_EBGP_ROUTEADV 30
+ #define BGP_DEFAULT_EBGP_ROUTEADV 3