diff options
author | 2014-11-26 19:25:31 +0000 | |
---|---|---|
committer | 2014-11-26 19:25:31 +0000 | |
commit | 3ea4cbbe3178c7e86211d7fdeb7f19ddbd711b03 (patch) | |
tree | a32aa591af5b3d96b27f2b42785b8bc3092591eb | |
parent | remove an unreachable warning about .Sm arguments (diff) | |
download | wireguard-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.c | 12 |
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; |