Sure enough, both packets are in the hardware buffer which explains why the code doesn't stop when you would expect it
02
01 06 00 00 00 03 31 00 00 80 00 00 00 00 00 0A
02 EF 13 0A FE 01 1F 0A 02 E1 05 90 A2 DA 0D 02
6B 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00 00 00 00 00 00 00 00 00 00 00 63 82 53 63 35
01 02 01 04 FF FF E0 00 3A 04 00 13 C6 80 3B 04
00 22 9B 60 33 04 00 27 8D 00 36 04 0A FE 01 1F
03 04 0A 02 E1 01 06 0C 0A 02 C1 10 0A 01 0A 1E
0A FE 01 1F 0F 07 64 72 31 2E 65 69 00 FF 0A 02
E1 04 00 43 01 2F 02 01 06 00 00 00 03 31 00 00
80 00 00 00 00 00 0A 02 EF 13 0A FE 01 1F 0A 02
E1 04 90 A2 DA 0D 02 6B 00 00 00 00 00 00 00 00
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00 00 63 82 53 63 35 01 02 01 04 FF FF E0 00 3A
04 00 13 C6 80 3B 04 00 22 9B 60 33 04 00 27 8D
00 36 04 0A FE 01 1F 03 04 0A 02 E1 01 06 0C 0A
02 C1 10 0A 01 0A 1E 0A FE 01 1F 0F 07 64 72 31
2E 65 69 00 FF
My fix in Dhcp.cpp fixes the problem though I don't know if it is the best solution (perhaps it will also flush something it shouldn't):
case endOption :
Serial.println("end option hit");
_dhcpUdpSocket.flush(); // dwh
break;
Granted this problem is going to be rare, not many individuals/companies are running redundant DHCP servers, but should I try to notify someone of this problem and the possible fix? It has definitely burned up several hours of mine!
Dan