diff --git a/bgpd/bgp_packet.c b/bgpd/bgp_packet.c index 0ff74a5ade..02ea92a4d1 100644 --- a/bgpd/bgp_packet.c +++ b/bgpd/bgp_packet.c @@ -2202,10 +2202,9 @@ static int bgp_write(struct peer *peer) num = write(peer->fd, STREAM_PNT(s), writenum); if (num < 0) { - if (ERRNO_IO_RETRY(errno)) - continue; + if (!ERRNO_IO_RETRY(errno)) + BGP_EVENT_ADD(peer, TCP_fatal_error); - BGP_EVENT_ADD(peer, TCP_fatal_error); goto done; } else if (num != writenum) // incomplete write stream_forward_getp(s, num);