summaryrefslogtreecommitdiff
path: root/usr.sbin/bgpd
diff options
context:
space:
mode:
Diffstat (limited to 'usr.sbin/bgpd')
-rw-r--r--usr.sbin/bgpd/bgpd.c4
-rw-r--r--usr.sbin/bgpd/bgpd.h3
-rw-r--r--usr.sbin/bgpd/mrt.c9
-rw-r--r--usr.sbin/bgpd/rde.c4
4 files changed, 10 insertions, 10 deletions
diff --git a/usr.sbin/bgpd/bgpd.c b/usr.sbin/bgpd/bgpd.c
index 1140446b90a..bf227599622 100644
--- a/usr.sbin/bgpd/bgpd.c
+++ b/usr.sbin/bgpd/bgpd.c
@@ -1,4 +1,4 @@
-/* $OpenBSD: bgpd.c,v 1.208 2019/02/11 15:44:25 claudio Exp $ */
+/* $OpenBSD: bgpd.c,v 1.209 2019/02/14 10:34:54 claudio Exp $ */
/*
* Copyright (c) 2003, 2004 Henning Brauer <henning@openbsd.org>
@@ -262,7 +262,7 @@ BROKEN if (pledge("stdio rpath wpath cpath fattr unix route recvfd sendfd",
pfd[PFD_SOCK_ROUTE].events = POLLIN;
timeout = mrt_timeout(conf->mrt);
- if (timeout > MAX_TIMEOUT)
+ if (timeout == -1 || timeout > MAX_TIMEOUT)
timeout = MAX_TIMEOUT;
if (poll(pfd, POLL_MAX, timeout * 1000) == -1)
diff --git a/usr.sbin/bgpd/bgpd.h b/usr.sbin/bgpd/bgpd.h
index 882ee119c25..21ad953d3ef 100644
--- a/usr.sbin/bgpd/bgpd.h
+++ b/usr.sbin/bgpd/bgpd.h
@@ -1,4 +1,4 @@
-/* $OpenBSD: bgpd.h,v 1.365 2019/02/11 15:44:25 claudio Exp $ */
+/* $OpenBSD: bgpd.h,v 1.366 2019/02/14 10:34:54 claudio Exp $ */
/*
* Copyright (c) 2003, 2004 Henning Brauer <henning@openbsd.org>
@@ -1093,7 +1093,6 @@ struct rde_hashstats {
#define MRT_FILE_LEN 512
#define MRT2MC(x) ((struct mrt_config *)(x))
-#define MRT_MAX_TIMEOUT 7200
enum mrt_type {
MRT_NONE,
diff --git a/usr.sbin/bgpd/mrt.c b/usr.sbin/bgpd/mrt.c
index c309c28a4b8..1d29a20602f 100644
--- a/usr.sbin/bgpd/mrt.c
+++ b/usr.sbin/bgpd/mrt.c
@@ -1,4 +1,4 @@
-/* $OpenBSD: mrt.c,v 1.89 2019/01/21 02:07:56 claudio Exp $ */
+/* $OpenBSD: mrt.c,v 1.90 2019/02/14 10:34:54 claudio Exp $ */
/*
* Copyright (c) 2003, 2004 Claudio Jeker <claudio@openbsd.org>
@@ -914,7 +914,7 @@ mrt_timeout(struct mrt_head *mrt)
{
struct mrt *m;
time_t now;
- int timeout = MRT_MAX_TIMEOUT;
+ int timeout = -1;
now = time(NULL);
LIST_FOREACH(m, mrt, entry) {
@@ -925,11 +925,12 @@ mrt_timeout(struct mrt_head *mrt)
MRT2MC(m)->ReopenTimer =
now + MRT2MC(m)->ReopenTimerInterval;
}
- if (MRT2MC(m)->ReopenTimer - now < timeout)
+ if (timeout == -1 ||
+ MRT2MC(m)->ReopenTimer - now < timeout)
timeout = MRT2MC(m)->ReopenTimer - now;
}
}
- return (timeout > 0 ? timeout : 0);
+ return (timeout);
}
void
diff --git a/usr.sbin/bgpd/rde.c b/usr.sbin/bgpd/rde.c
index e6740487597..00ec75364b7 100644
--- a/usr.sbin/bgpd/rde.c
+++ b/usr.sbin/bgpd/rde.c
@@ -1,4 +1,4 @@
-/* $OpenBSD: rde.c,v 1.462 2019/02/11 15:44:25 claudio Exp $ */
+/* $OpenBSD: rde.c,v 1.463 2019/02/14 10:34:54 claudio Exp $ */
/*
* Copyright (c) 2003, 2004 Henning Brauer <henning@openbsd.org>
@@ -250,7 +250,7 @@ rde_main(int debug, int verbose)
pfd = newp;
pfd_elms = PFD_PIPE_COUNT + rde_mrt_cnt;
}
- timeout = INFTIM;
+ timeout = -1;
bzero(pfd, sizeof(struct pollfd) * pfd_elms);
set_pollfd(&pfd[PFD_PIPE_MAIN], ibuf_main);