]> git.puffer.fish Git - matthieu/frr.git/commit
bgpd: transfer raw input buffer to new peer
authorQuentin Young <qlyoung@cumulusnetworks.com>
Fri, 3 Nov 2017 18:47:56 +0000 (14:47 -0400)
committerQuentin Young <qlyoung@cumulusnetworks.com>
Thu, 30 Nov 2017 21:18:05 +0000 (16:18 -0500)
commit7db44ec8fa9e2cf32007473a7cb2683b01d31692
tree02e7c28423bdb293bd67a0eabeb6938d1295e4c1
parent387f984e580f26ee382e9e7b50c1d5cbe1f6d2dd
bgpd: transfer raw input buffer to new peer

During initial session establishment, bgpd performs a "connection
transfer" to a new peer struct if the connection was initiated passively
(i.e. by the remote peer). With the addition of buffered input, I forgot
to transfer the raw input buffer to the new peer. This resulted in
infrequent failures during session handshaking whereby half of a packet
would be thrown away in the middle of a read causing us to send a NOTIFY
for an unsynchronized header. Usually the transfer coincided with a
clean input buffer, hence why it only showed up once in a while.
bgpd/bgp_fsm.c
bgpd/bgp_io.c