summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorhenning <henning@openbsd.org>2004-07-18 13:26:53 +0000
committerhenning <henning@openbsd.org>2004-07-18 13:26:53 +0000
commit01c645f0c65e4170a59c9a80922b485cb99b2029 (patch)
treef78339305377be2e02ab24a00fe4c5f1fcbb7eac
parentquery interval scaling, episode II (diff)
downloadwireguard-openbsd-01c645f0c65e4170a59c9a80922b485cb99b2029.tar.xz
wireguard-openbsd-01c645f0c65e4170a59c9a80922b485cb99b2029.zip
there are a few recvfrom(2) errors we do not want to panic on
-rw-r--r--usr.sbin/ntpd/client.c13
-rw-r--r--usr.sbin/ntpd/server.c13
2 files changed, 20 insertions, 6 deletions
diff --git a/usr.sbin/ntpd/client.c b/usr.sbin/ntpd/client.c
index 4ce0f19a1b0..e99ff71ecaf 100644
--- a/usr.sbin/ntpd/client.c
+++ b/usr.sbin/ntpd/client.c
@@ -1,4 +1,4 @@
-/* $OpenBSD: client.c,v 1.26 2004/07/18 12:59:41 henning Exp $ */
+/* $OpenBSD: client.c,v 1.27 2004/07/18 13:26:53 henning Exp $ */
/*
* Copyright (c) 2003, 2004 Henning Brauer <henning@openbsd.org>
@@ -133,8 +133,15 @@ client_dispatch(struct ntp_peer *p)
fsa_len = sizeof(fsa);
if ((size = recvfrom(p->query->fd, &buf, sizeof(buf), 0,
- (struct sockaddr *)&fsa, &fsa_len)) == -1)
- fatal("recvfrom");
+ (struct sockaddr *)&fsa, &fsa_len)) == -1) {
+ if (errno == EHOSTUNREACH || errno == EHOSTDOWN ||
+ errno == ENETDOWN) {
+ log_warn("recvfrom %s",
+ log_sockaddr((struct sockaddr *)&fsa));
+ return (0);
+ } else
+ fatal("recvfrom");
+ }
T4 = gettime();
diff --git a/usr.sbin/ntpd/server.c b/usr.sbin/ntpd/server.c
index 25fdb861b75..fc1525e51da 100644
--- a/usr.sbin/ntpd/server.c
+++ b/usr.sbin/ntpd/server.c
@@ -1,4 +1,4 @@
-/* $OpenBSD: server.c,v 1.11 2004/07/14 20:16:31 henning Exp $ */
+/* $OpenBSD: server.c,v 1.12 2004/07/18 13:26:53 henning Exp $ */
/*
* Copyright (c) 2003, 2004 Henning Brauer <henning@openbsd.org>
@@ -105,8 +105,15 @@ server_dispatch(int fd, struct ntpd_conf *conf)
fsa_len = sizeof(fsa);
if ((size = recvfrom(fd, &buf, sizeof(buf), 0,
- (struct sockaddr *)&fsa, &fsa_len)) == -1)
- fatal("recvfrom");
+ (struct sockaddr *)&fsa, &fsa_len)) == -1) {
+ if (errno == EHOSTUNREACH || errno == EHOSTDOWN ||
+ errno == ENETDOWN) {
+ log_warn("recvfrom %s",
+ log_sockaddr((struct sockaddr *)&fsa));
+ return (0);
+ } else
+ fatal("recvfrom");
+ }
rectime = gettime();