summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorkrw <krw@openbsd.org>2016-04-28 17:34:49 +0000
committerkrw <krw@openbsd.org>2016-04-28 17:34:49 +0000
commitb0c590f148d602248a24858199d4513ed0543ec9 (patch)
tree82284c73c6c6d135f46129d7889ea24f91fc1c1c
parentInclude the TLS configuration errors in log messages. Also set the (diff)
downloadwireguard-openbsd-b0c590f148d602248a24858199d4513ed0543ec9.tar.xz
wireguard-openbsd-b0c590f148d602248a24858199d4513ed0543ec9.zip
If the attempt to broadcast a DCHPDISCOVER packet returns EAFNOSUPPORT,
don't bother to keep trying to get a lease. It ain't gonna happen. Just print and error message and exit.
-rw-r--r--sbin/dhclient/dhclient.c12
1 files changed, 8 insertions, 4 deletions
diff --git a/sbin/dhclient/dhclient.c b/sbin/dhclient/dhclient.c
index b1cdaac6ba2..f4d98ac5200 100644
--- a/sbin/dhclient/dhclient.c
+++ b/sbin/dhclient/dhclient.c
@@ -1,4 +1,4 @@
-/* $OpenBSD: dhclient.c,v 1.372 2016/02/06 19:30:52 krw Exp $ */
+/* $OpenBSD: dhclient.c,v 1.373 2016/04/28 17:34:49 krw Exp $ */
/*
* Copyright 2004 Henning Brauer <henning@openbsd.org>
@@ -1346,6 +1346,7 @@ void
send_discover(void)
{
time_t cur_time;
+ ssize_t rslt;
int interval;
time(&cur_time);
@@ -1393,9 +1394,12 @@ send_discover(void)
note("DHCPDISCOVER on %s - interval %lld", ifi->name,
(long long)client->interval);
- send_packet(inaddr_any, inaddr_broadcast);
-
- set_timeout_interval(client->interval, send_discover);
+ rslt = send_packet(inaddr_any, inaddr_broadcast);
+ if (rslt == -1 && errno == EAFNOSUPPORT) {
+ warning("dhclient cannot be used on %s", ifi->name);
+ quit = INTERNALSIG;
+ } else
+ set_timeout_interval(client->interval, send_discover);
}
/*