summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorkrw <krw@openbsd.org>2014-11-26 19:25:31 +0000
committerkrw <krw@openbsd.org>2014-11-26 19:25:31 +0000
commit3ea4cbbe3178c7e86211d7fdeb7f19ddbd711b03 (patch)
treea32aa591af5b3d96b27f2b42785b8bc3092591eb
parentremove an unreachable warning about .Sm arguments (diff)
downloadwireguard-openbsd-3ea4cbbe3178c7e86211d7fdeb7f19ddbd711b03.tar.xz
wireguard-openbsd-3ea4cbbe3178c7e86211d7fdeb7f19ddbd711b03.zip
Reset ifi->errors after a successful receive_packet(), rather than
incrementing sporadic errors until the limit is exceeded. i.e. only exit dhclient when enough consecutive errors occur. Tweak error messages. Don't bother checking interface_status() when receive_packet() fails. Let other status checks function on their own.
-rw-r--r--sbin/dhclient/dispatch.c12
1 files changed, 6 insertions, 6 deletions
diff --git a/sbin/dhclient/dispatch.c b/sbin/dhclient/dispatch.c
index b4cb665ea0b..26c30c4cd4f 100644
--- a/sbin/dhclient/dispatch.c
+++ b/sbin/dhclient/dispatch.c
@@ -1,4 +1,4 @@
-/* $OpenBSD: dispatch.c,v 1.96 2014/11/26 17:34:36 krw Exp $ */
+/* $OpenBSD: dispatch.c,v 1.97 2014/11/26 19:25:31 krw Exp $ */
/*
* Copyright 2004 Henning Brauer <henning@openbsd.org>
@@ -191,17 +191,17 @@ packethandler(void)
ssize_t result;
if ((result = receive_packet(&from, &hfrom)) == -1) {
- warning("receive_packet failed on %s: %s", ifi->name,
+ warning("%s receive_packet failed: %s", ifi->name,
strerror(errno));
ifi->errors++;
- if ((!interface_status(ifi->name)) ||
- ((ifi->flags & IFI_NOMEDIA) && ifi->errors > 20)) {
- /* our interface has gone away. */
- error("Interface %s no longer appears valid.",
+ if (ifi->errors > 20) {
+ error("%s too many receive_packet failures; exiting",
ifi->name);
}
return;
}
+ ifi->errors = 0;
+
if (result == 0)
return;