NAK from any other DHCP server ends transaction
I found an issue with NetworkManager in a very specific (and rare but plausible) scenario : two DHCP servers operating on a same broadcast domain, with only one configured to lease an IP address to the NM client.
The issue is, when NM performs its Request after receiving the (relevant) Offer, the second DHCP server (which did not emit any Offer) logically sends a NAK while the first server sends its ACK.
This NAK should be ignored, as it does not come from the Offering server. But for some reason NM considers it relevant and stops the whole DHCP transaction, instead of just holding to the ACK sent by the server that made the initial Offer.
Also, debug logs show the NAK coming from 0.0.0.0 even though the IP source header is clearly set by the second DHCP server.
Thank you by advance for your analysis. I started reading the DHCP implementation from sources but I can't yet pin down the exact line where this lack of distinction between NAK sources should be made.