Skip to content

Commit

Permalink
Browse files Browse the repository at this point in the history
[dhcp] Do not skip ProxyDHCPREQUEST if next-server is empty
We attempt to mimic the behaviour of Intel's PXE ROM by skipping the
separate ProxyDHCPREQUEST if the ProxyDHCPOFFER already contains a
boot filename or a PXE boot menu.

Experimentation reveals that Intel's PXE ROM will also check for a
non-empty next-server address alongside the boot filename.  Update our
test to match this behaviour.

Reported-by: Wissam Shoukair <wissams@mellanox.com>
Tested-by: Wissam Shoukair <wissams@mellanox.com>
Signed-off-by: Michael Brown <mcb30@ipxe.org>
  • Loading branch information
mcb30 committed Aug 26, 2015
1 parent ba36953 commit f0c6c4e
Showing 1 changed file with 3 additions and 2 deletions.
5 changes: 3 additions & 2 deletions src/net/udp/dhcp.c
Expand Up @@ -296,8 +296,9 @@ static void dhcp_set_state ( struct dhcp_session *dhcp,
*/
static int dhcp_has_pxeopts ( struct dhcp_packet *dhcppkt ) {

/* Check for a boot filename */
if ( dhcppkt_fetch ( dhcppkt, DHCP_BOOTFILE_NAME, NULL, 0 ) > 0 )
/* Check for a next-server and boot filename */
if ( dhcppkt->dhcphdr->siaddr.s_addr &&
( dhcppkt_fetch ( dhcppkt, DHCP_BOOTFILE_NAME, NULL, 0 ) > 0 ) )
return 1;

/* Check for a PXE boot menu */
Expand Down

0 comments on commit f0c6c4e

Please sign in to comment.