From f9ab315e0243a142c9728e357dd82f048e7a4f0c Mon Sep 17 00:00:00 2001 From: Augustin Cavalier Date: Wed, 29 Jul 2015 15:06:04 -0400 Subject: [PATCH] DHCPClient: Check return code of SetAddress(). This should break DHCP for everyone it currently works for (according to our analysis). If it doesn't, we have yet another (set of) bug(s). --- src/servers/net/DHCPClient.cpp | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) diff --git a/src/servers/net/DHCPClient.cpp b/src/servers/net/DHCPClient.cpp index b3d4c1ab5c..35c5887a68 100644 --- a/src/servers/net/DHCPClient.cpp +++ b/src/servers/net/DHCPClient.cpp @@ -763,10 +763,17 @@ DHCPClient::_ParseOptions(dhcp_message& message, BMessage& address, break; } case OPTION_SERVER_ADDRESS: + { syslog(LOG_DEBUG, " server: %s\n", _AddressToString(data).String()); - fServer.SetAddress(*(in_addr_t*)data); + status_t status = fServer.SetAddress(*(in_addr_t*)data); + if (status != B_OK) { + syslog(LOG_ERR, " BNetworkAddress::SetAddress failed with %s!\n", + strerror(status)); + fServer.Unset(); + } break; + } case OPTION_ADDRESS_LEASE_TIME: syslog(LOG_DEBUG, " lease time: %lu seconds\n",