On 15/05/16 14:39, Dreamcat4 wrote: > Hi, > Tried the 2.76rc2 this morning. Seems fine / OK for me. >
Great. Thanks for that. Cheers, Simon. > Have uploaded the binary here again (same place as before): > > https://dl.bintray.com/dreamcat4/linux/dnsmasq/ > > > > On Sun, May 15, 2016 at 9:03 AM, Michael Kuron < > michael-li...@physcip.uni-stuttgart.de> wrote: > >> Hi Simon, >> >> thanks, it’s working fine for me now. Before releasing 2.76, it would be >> good if more people could test this on actual hardware. >> Also, there’s one more item that needs to go into the release notes: we >> now redirect all clients to port 4011, including the BIOS clients. This is >> a change in behavior over the previous release, where the option 43 menu >> was sent on port 68. This could potentially break things for some very old >> and broken PXE implementations. It’s unlikely, since the port 4011 stuff >> has always been part of the PXE spec, but possible. I don’t think it’s >> really necessary, but I have included a patch below that restricts the port >> 4011 redirect to CSA >= 6. With that patch, the PXE behavior for BIOS >> clients is exactly what it was in older releases. >> >> Michael >> >> >> --- a/src/rfc2131.c >> +++ b/src/rfc2131.c >> @@ -882,8 +882,13 @@ size_t dhcp_reply(struct dhcp_context *context, char >> *iface_name, int int_index, >> >> clear_packet(mess, end); >> >> - /* Redirect the client to port 4011 */ >> - mess->siaddr = tmp->local; >> + /* Redirect EFI clients to port 4011 */ >> + int redirect4011 = 0; >> + if (pxearch >= 6) >> + { >> + redirect4011 = 1; >> + mess->siaddr = tmp->local; >> + } >> /* Returns true if only one matching service is >> available. On port 4011, >> it also inserts the boot file and server name. */ >> workaround = pxe_uefi_workaround(pxearch, tagif_netid, >> mess, tmp->local, now, pxe); >> @@ -906,7 +911,7 @@ size_t dhcp_reply(struct dhcp_context *context, char >> *iface_name, int int_index, >> option_put(mess, end, OPTION_SERVER_IDENTIFIER, >> INADDRSZ, htonl(tmp->local.s_addr)); >> pxe_misc(mess, end, uuid); >> prune_vendor_opts(tagif_netid); >> - if (pxe && !workaround) >> + if ((pxe && !workaround) || !redirect4011) >> do_encap_opts(pxe_opts(pxearch, tagif_netid, >> tmp->local, now), OPTION_VENDOR_CLASS_OPT, DHOPT_VENDOR_MATCH, mess, end, >> 0); >> >> log_packet("PXE", NULL, emac, emac_len, iface_name, >> ignore ? "proxy-ignored" : "proxy", NULL, mess->xid); >> >> >> _______________________________________________ >> Dnsmasq-discuss mailing list >> Dnsmasq-discuss@lists.thekelleys.org.uk >> http://lists.thekelleys.org.uk/mailman/listinfo/dnsmasq-discuss >> > > > > _______________________________________________ > Dnsmasq-discuss mailing list > Dnsmasq-discuss@lists.thekelleys.org.uk > http://lists.thekelleys.org.uk/mailman/listinfo/dnsmasq-discuss > _______________________________________________ Dnsmasq-discuss mailing list Dnsmasq-discuss@lists.thekelleys.org.uk http://lists.thekelleys.org.uk/mailman/listinfo/dnsmasq-discuss