Apply by doing:
cd /usr/src
patch -p0 < 001_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.326
diff -u -p -u -r1.326 session.c
--- usr.sbin/bgpd/session.c 1 Dec 2012 10:35:17 -0000 1.326
+++ usr.sbin/bgpd/session.c 16 Mar 2013 03:31:30 -0000
@@ -1034,13 +1034,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);