|
@@ -296,8 +296,9 @@ static void dhcp_set_state ( struct dhcp_session *dhcp,
|
296
|
296
|
*/
|
297
|
297
|
static int dhcp_has_pxeopts ( struct dhcp_packet *dhcppkt ) {
|
298
|
298
|
|
299
|
|
- /* Check for a boot filename */
|
300
|
|
- if ( dhcppkt_fetch ( dhcppkt, DHCP_BOOTFILE_NAME, NULL, 0 ) > 0 )
|
|
299
|
+ /* Check for a next-server and boot filename */
|
|
300
|
+ if ( dhcppkt->dhcphdr->siaddr.s_addr &&
|
|
301
|
+ ( dhcppkt_fetch ( dhcppkt, DHCP_BOOTFILE_NAME, NULL, 0 ) > 0 ) )
|
301
|
302
|
return 1;
|
302
|
303
|
|
303
|
304
|
/* Check for a PXE boot menu */
|