[syslinux] Support DHCP sname field in PXELINUX

Chris Adams cmadams at hiwaay.net
Thu Jun 28 12:08:21 PDT 2007


I have discovered that the JUNOS DHCP server in Juniper J-series routers
doesn't support setting the next-server IP address field (I have filed a
bug report with Juniper and they are working on it).  Instead, it puts
the "boot server" in the sname field, which PXELINUX currently ignores.

Here's a simple patch (vs. 3.36) that will take an IP string in the
field.  My assembly is pretty rusty, and I couldn't quite figure out how
to use the DNS resolver, so it doesn't handle a hostname.  This does
work for me with an IP string.


diff -u syslinux-3.36-dist/pxelinux.asm syslinux-3.36/pxelinux.asm
--- syslinux-3.36-dist/pxelinux.asm	2007-02-10 14:47:08.000000000 -0600
+++ syslinux-3.36/pxelinux.asm	2007-06-28 13:54:15.000000000 -0500
@@ -2056,6 +2056,12 @@
 		mov cx,64
 		call parse_dhcp_options
 .nosnameoverload:
+		cmp byte [si], 0
+		jz .parsed_sname
+		call parse_dotquad
+		jc .parsed_sname
+		mov [ServerIP], eax
+.parsed_sname:
 		ret
 
 ;


-- 
Chris Adams <cmadams at hiwaay.net>
Systems and Network Administrator - HiWAAY Internet Services
I don't speak for anybody but myself - that's enough trouble.




More information about the Syslinux mailing list