diff options
Diffstat (limited to 'main/quagga/quagga-0.99.11-zombie.patch')
-rw-r--r-- | main/quagga/quagga-0.99.11-zombie.patch | 29 |
1 files changed, 29 insertions, 0 deletions
diff --git a/main/quagga/quagga-0.99.11-zombie.patch b/main/quagga/quagga-0.99.11-zombie.patch new file mode 100644 index 0000000000..ad562df000 --- /dev/null +++ b/main/quagga/quagga-0.99.11-zombie.patch @@ -0,0 +1,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 + |