summaryrefslogtreecommitdiffstats
path: root/src/usr/pxemenu.c
diff options
context:
space:
mode:
authorMichael Brown2009-02-03 03:44:15 +0100
committerMichael Brown2009-02-03 03:44:15 +0100
commit4b276b8df9de6909c3f3ac7034d6a97454d466d5 (patch)
tree0d37eedc31644a8ae4556366a50719ccabb0b74e /src/usr/pxemenu.c
parent[iobuf] Add iob_disown() and use it where it simplifies code (diff)
downloadipxe-4b276b8df9de6909c3f3ac7034d6a97454d466d5.tar.gz
ipxe-4b276b8df9de6909c3f3ac7034d6a97454d466d5.tar.xz
ipxe-4b276b8df9de6909c3f3ac7034d6a97454d466d5.zip
[pxe] Fall back to broadcast if no boot server multicast address exists
fetch_ipv4_setting() will zero its IPv4 address argument if no such setting exists, rather than leaving it untouched.
Diffstat (limited to 'src/usr/pxemenu.c')
-rw-r--r--src/usr/pxemenu.c3
1 files changed, 2 insertions, 1 deletions
diff --git a/src/usr/pxemenu.c b/src/usr/pxemenu.c
index 3f5bfc88..ae971088 100644
--- a/src/usr/pxemenu.c
+++ b/src/usr/pxemenu.c
@@ -95,8 +95,9 @@ static int pxe_menu_parse ( struct pxe_menu **menu ) {
/* Fetch relevant settings */
tmp_setting.tag = DHCP_PXE_BOOT_SERVER_MCAST;
- server.s_addr = INADDR_BROADCAST;
fetch_ipv4_setting ( NULL, &tmp_setting, &server );
+ if ( ! server.s_addr )
+ server.s_addr = INADDR_BROADCAST;
tmp_setting.tag = DHCP_PXE_BOOT_MENU_PROMPT;
fetch_setting ( NULL, &tmp_setting, &prompt, sizeof ( prompt ) );
tmp_setting.tag = DHCP_PXE_BOOT_MENU;