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
[email protected]
http://lists.thekelleys.org.uk/mailman/listinfo/dnsmasq-discuss