[syslinux] pxelinux tries to load ldlinux.c32 from DHCP server, instead of next-server

Geert Stappers stappers at stappers.nl
Sun Sep 13 12:46:58 PDT 2015


On Sat, Sep 12, 2015 at 06:56:04PM -0400, Gene Cumm via Syslinux wrote:
> On Sat, Sep 12, 2015 at 6:37 PM, Gene Cumm wrote:
> > On Sat, Sep 12, 2015 at 10:23 AM, Geert Stappers wrote:
> >> diff --git a/core/fs/pxe/dhcp_option.c b/core/fs/pxe/dhcp_option.c
> >> index 8d93a6a..b82e944 100644
> >> --- a/core/fs/pxe/dhcp_option.c
> >> +++ b/core/fs/pxe/dhcp_option.c
> >> @@ -252,4 +252,6 @@ void parse_dhcp(const void *pkt, size_t pkt_len, int pkt_type)
> >>
> >>      if (over_load & 2)
> >>          parse_dhcp_options(dhcp->sname, 64, 0);
> >> +
> >> +    /* What about option 66, tftserver_name ?   FIXME */
> >>  }
> >
> > Something like this would be preferable except it's not quite so
> > simple.  We'd need to not store BOOTP siaddr before parsing.  Store a
> > pointer to the string during parsing if serverip is unset.  After all
> > parsing, if the pointer is set, attempt to resolve then set serverip.
> > Last, if serverip is not set, copy siaddr to serverip.
> 
> Perhaps a more important question is if ANY PXE implementation uses
> DHCP option 66 over BOOTP field siaddr.

Quoting the spec ( I used http://www.pix.net/software/pxeboot/archive/pxespec.pdf )

  sname, 64 bytes, Can be overloaded if using Opt 66

Hope this helps


Groeten
Geert Stappers
-- 
Leven en laten leven


More information about the Syslinux mailing list