On Jul 13, 2013 9:00 AM, "Victor Sudakov" <vas at mpeks.tomsk.su> wrote:> > Gene Cumm wrote: > > >> pxelinux.0 since Syslinux-5.10 won't return the IP of a string like > > >> "192.0.2.1" (which is the source of the issue). > > > > > > Which means the correct syntax for the pxechn.c32 command line > > > should be like what? > > > > > > The example in doc/pxechn.txt is probably incorrect then? > > > > It's a bug. Either pxe_dns() should have returned the IP or I should > > be checking that it's an IP first. > > Do you mean to say, it should work if I replace the TFTP server's IP > address with its DNS name?At this time, yes. However, I'd need to test to confirm. We had a quick discussion yesterday and the consensus was that pxe_dns() should handle it and I recommended that it attempt to convert it first before querying DNS. In previous versions, it'd query DNS, fail, then attempt the conversion. -- -Gene
On Sat, Jul 13, 2013 at 9:18 AM, Gene Cumm <gene.cumm at gmail.com> wrote:> On Jul 13, 2013 9:00 AM, "Victor Sudakov" <vas at mpeks.tomsk.su> wrote: >> >> Gene Cumm wrote: >> > >> pxelinux.0 since Syslinux-5.10 won't return the IP of a string like >> > >> "192.0.2.1" (which is the source of the issue). >> > > >> > > Which means the correct syntax for the pxechn.c32 command line >> > > should be like what? >> > > >> > > The example in doc/pxechn.txt is probably incorrect then? >> > >> > It's a bug. Either pxe_dns() should have returned the IP or I should >> > be checking that it's an IP first. >> >> Do you mean to say, it should work if I replace the TFTP server's IP >> address with its DNS name? > > At this time, yes. However, I'd need to test to confirm. > > We had a quick discussion yesterday and the consensus was that > pxe_dns() should handle it and I recommended that it attempt to > convert it first before querying DNS. In previous versions, it'd > query DNS, fail, then attempt the conversion.pxe_dns() should be doing this already but either there's a bug there or in my code. Looks like I'll dig further. -- -Gene
Digging more, loadfile("192.0.2.1::pxe.0", &file.data, &file.size), queries DNS, which sounds like it doesn't follow the same call path as a COM32 calling pxe_dns(). If the DNS won't resolve the IP, things won't load properly. pxechn.c32 sets sname in the intended packet to "192.0.2.1" which may be confusing something. More debugging needed. -- -Gene