summaryrefslogtreecommitdiffstats
path: root/extra/quagga/quagga-0.99.11-zombie.patch
blob: ad562df0002e2e75ceb9771d21644d67c073541c (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29

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.

Signed-off-by: Timo Teras <timo.teras@iki.fi>
---
 bgpd/bgp_network.c |    2 ++
 1 files changed, 2 insertions(+), 0 deletions(-)

diff --git a/bgpd/bgp_network.c b/bgpd/bgp_network.c
index 5dbd487..9a4c36d 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);
-- 
1.5.6.3