summaryrefslogtreecommitdiff
path: root/pimd/pim_msdp.c
diff options
context:
space:
mode:
authoranuradhak <anuradhak@cumulusnetworks.com>2016-12-02 16:12:35 -0800
committerDonald Sharp <sharpd@cumulusnetworks.com>2016-12-21 20:26:18 -0500
commit3e5e42252e269f52dbdbd8c9866cb0c63b5cfcd5 (patch)
tree92d077bf848edaabdece8cf403b6f64f221f8583 /pimd/pim_msdp.c
parent489e06bbcfaab04d4589fb316c7f3a9c0197ce16 (diff)
pimd: reset packet size on tcp connection reset
If we were in the middle of a partial read when the tcp connection is reset we were clearing the buffers but not the packet size. This can be problematic when the connection is re-established. There is no easy way to repro and test this without scale (and a timing pattern that is hard to predict). So this change is mostly untested. Ticket: CM-13852 Signed-off-by: Anuradha Karuppiah <anuradhak@cumulusnetworks.com>
Diffstat (limited to 'pimd/pim_msdp.c')
-rw-r--r--pimd/pim_msdp.c1
1 files changed, 1 insertions, 0 deletions
diff --git a/pimd/pim_msdp.c b/pimd/pim_msdp.c
index c90a7e1e2a..93141f39de 100644
--- a/pimd/pim_msdp.c
+++ b/pimd/pim_msdp.c
@@ -850,6 +850,7 @@ pim_msdp_peer_stop_tcp_conn(struct pim_msdp_peer *mp, bool chg_state)
PIM_MSDP_PEER_WRITE_OFF(mp);
/* reset buffers */
+ mp->packet_size = 0;
if (mp->ibuf)
stream_reset(mp->ibuf);
if (mp->obuf)