diff options
author | 2016-04-28 17:34:49 +0000 | |
---|---|---|
committer | 2016-04-28 17:34:49 +0000 | |
commit | b0c590f148d602248a24858199d4513ed0543ec9 (patch) | |
tree | 82284c73c6c6d135f46129d7889ea24f91fc1c1c | |
parent | Include the TLS configuration errors in log messages. Also set the (diff) | |
download | wireguard-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.c | 12 |
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); } /* |