When a DHCP reply cached by the firmware is available, bootp() sends a
DHCPREQUEST for the cached address and falls back to DISCOVER if that
fails. A DHCPNAK was dropped like any other unexpected reply, though, and
a server with no record of the client is allowed to stay silent, so in
both cases the loader kept retransmitting for MAXWAIT (300 seconds) before
it fell back. That is as long as the UEFI boot watchdog: a netbooted
loader.efi printed nothing after the console banner and the firmware then
reset the machine.
Report a DHCPNAK to sendrecv() as an error so that the exchange ends at
once, and give an INIT-REBOOT request 10 seconds (three transmissions)
to be answered. Say in the fallback message which of the two happened.
Fixes: 88229544807f ("stand: Cleanup use of cached DHCP response packet")
Sponsored by: Rubicon Communications, LLC ("Netgate")