]> git.puffer.fish Git - matthieu/frr.git/commit
bgpd: write NOTIFY non-blockingly
authorDavid Lamparter <equinox@opensourcerouting.org>
Wed, 31 Jul 2013 12:39:41 +0000 (14:39 +0200)
committerDavid Lamparter <equinox@opensourcerouting.org>
Wed, 31 Jul 2013 12:44:24 +0000 (14:44 +0200)
commit8ff202e2d3fa7ebbd6728fdd230f3ad1a20578cd
tree6f8ffd3a083bee4c8c8fa2b4e2eb5981b4af1cbe
parent9e47abd862f71847a85f330435c7b3a9b1f76099
bgpd: write NOTIFY non-blockingly

switching the socket to blocking may well block the entire bgpd process
for some time if our peer is overloaded (which may well be the original
reason for the NOTIFY)

The error handling is slightly different from the previous ML discussion
on this;  buffer exhaustion isn't technically a fatal TCP error, and we
should probably proceed with FSM actions according to a sent NOTIFY
(adjusting timers) even if we didn't manage to get the NOTIFY onto the
wire.

Acked-by: Leonid Rosenboim <lrosenbo@wrs.com>
Signed-off-by: David Lamparter <equinox@opensourcerouting.org>
bgpd/bgp_packet.c