[ipxe-devel] Manual IP config does no pass 209:string to chain pxelinux.0
Michael Brown
mbrown at fensystems.co.uk
Mon Mar 28 19:53:17 UTC 2011
On Friday 25 Mar 2011 21:21:18 Marcus Grando wrote:
> >> Script is something like that:
> >>
> >> #!ipxe
> >> ifopen net0
> >> set net0/ip 192.168.0.10
> >> set net0/netmask 255.255.255.0
> >> set net0/gateway 192.168.0.1
> >> set net0/dns 8.8.8.8
> >> set 209:string pxelinux.cfg/default
> >> set 210:string http://some_server_elsewere/
> >> chain ${210:string}pxelinux.0
>
> pxelinux.0 loads but fail to load menu (pxelinux.cfg/default).
The following patch to syslinux for core/fs/pxe/pxe.c (also available at
http://git.ipxe.org/people/mcb30/syslinux.git/commitdiff/9126eb2) fixes this
problem for me. I am not 100% sure about the error handling in
__pxe_searchdir(), so would appreciate some review.
Michael
commit 9126eb27d1d9597eb8751a5ef75c9bdcf4e429a6
Author: Michael Brown <mcb30 at ipxe.org>
Date: Mon Mar 28 20:44:17 2011 +0100
pxe: allow TFTP server IP to be empty when not using TFTP
Reported-by: Marcus Grando <Marcus.Grando at corp.terra.com.br>
Signed-off-by: Michael Brown <mcb30 at ipxe.org>
diff --git a/core/fs/pxe/pxe.c b/core/fs/pxe/pxe.c
index aef2e7e..12bbdad 100644
--- a/core/fs/pxe/pxe.c
+++ b/core/fs/pxe/pxe.c
@@ -754,9 +754,6 @@ static void __pxe_searchdir(const char *filename, struct
file *file)
break;
}
- if (!ip)
- return; /* No server */
-
buf++; /* Point *past* the final NULL */
memcpy(buf, rrq_tail, sizeof rrq_tail);
buf += sizeof rrq_tail;
@@ -792,6 +789,9 @@ static void __pxe_searchdir(const char *filename, struct
file *file)
}
#endif /* GPXE */
+ if (!ip)
+ goto done; /* No server */
+
timeout_ptr = TimeoutTable; /* Reset timeout */
sendreq:
More information about the ipxe-devel
mailing list