Apply by doing:
cd /usr/src
patch -p0 < 002_bgpd.patch
And then rebuild and install bgpd:
cd usr.sbin/bgpd/
make obj
make depend
make
make install
Index: usr.sbin/bgpd/session.c
===================================================================
RCS file: /cvs/src/usr.sbin/bgpd/session.c,v
retrieving revision 1.323
diff -u -p -u -r1.323 usr.sbin/bgpd/session.c
--- usr.sbin/bgpd/session.c 11 Jul 2012 09:43:10 -0000 1.323
+++ usr.sbin/bgpd/session.c 16 Mar 2013 03:34:00 -0000
@@ -1002,13 +1002,12 @@ session_accept(int listenfd)
len = sizeof(cliaddr);
if ((connfd = accept(listenfd,
(struct sockaddr *)&cliaddr, &len)) == -1) {
- if (errno == ENFILE || errno == EMFILE) {
+ if (errno == ENFILE || errno == EMFILE)
pauseaccept = getmonotime();
- return;
- } else if (errno == EWOULDBLOCK || errno == EINTR)
- return;
- else
+ else if (errno != EWOULDBLOCK && errno != EINTR &&
+ errno != ECONNABORTED)
log_warn("accept");
+ return;
}
p = getpeerbyip((struct sockaddr *)&cliaddr);