summaryrefslogtreecommitdiff
path: root/bgpd
diff options
context:
space:
mode:
authorTimo Teräs <timo.teras@iki.fi>2009-02-17 12:14:23 +0200
committerPaul Jakma <paul@quagga.net>2009-07-21 13:15:32 +0100
commite8eb000e15e2bbe63467d7c056f2b21b72ba7bd6 (patch)
tree3e21cb6d66b0e1b8caaacc687ad30b83607d33a3 /bgpd
parente7cc3b383e5e9190aa7784554c605a3a661ebe2b (diff)
[bgpd] Avoid zombie accepted peer entries
Currently, when accepting the connection, it can be left as zombie, when the peer just initiates a connection, but never sends data (and the TCP connection end packets are lost). This happens because for accepted connections a temporary new peer entry is created until OPEN message is exchanged, and this temporary peer entry does not get the hold time parameter set at all. * bgp_network.c: (bgp_accept) Set hold time and keepalive values for ACCEPT peers.
Diffstat (limited to 'bgpd')
-rw-r--r--bgpd/bgp_network.c2
1 files changed, 2 insertions, 0 deletions
diff --git a/bgpd/bgp_network.c b/bgpd/bgp_network.c
index aa019be6..77847008 100644
--- a/bgpd/bgp_network.c
+++ b/bgpd/bgp_network.c
@@ -185,6 +185,8 @@ bgp_accept (struct thread *thread)
peer->fd = bgp_sock;
peer->status = Active;
peer->local_id = peer1->local_id;
+ peer->v_holdtime = peer1->v_holdtime;
+ peer->v_keepalive = peer1->v_keepalive;
/* Make peer's address string. */
sockunion2str (&su, buf, SU_ADDRSTRLEN);