aboutsummaryrefslogtreecommitdiff
path: root/src/net
diff options
context:
space:
mode:
authorMichael Brown <mcb30@ipxe.org>2015-09-01 16:52:27 +0100
committerMichael Brown <mcb30@ipxe.org>2015-09-01 21:24:02 +0100
commitbe51713474e015eea2ed268348d26fb6b06e3105 (patch)
tree78c0f2ba2a2f6cae362e9c90b827f09513d955a2 /src/net
parent355da7b1336114564ce442b7d9bc4485f86d0be5 (diff)
downloadipxe-be51713474e015eea2ed268348d26fb6b06e3105.zip
ipxe-be51713474e015eea2ed268348d26fb6b06e3105.tar.gz
ipxe-be51713474e015eea2ed268348d26fb6b06e3105.tar.bz2
[pxe] Populate ciaddr in fake PXE Boot Server ACK packet
We currently do not populate the ciaddr field in the constructed PXE Boot Server ACK packet. This causes a WDS server to respond with a broadcast packet, which is then ignored by wdsmgfw.efi since it does not match the specified IP address filter. Fix by populating ciaddr within the constructed PXE Boot Server ACK packet. Signed-off-by: Michael Brown <mcb30@ipxe.org>
Diffstat (limited to 'src/net')
-rw-r--r--src/net/fakedhcp.c4
1 files changed, 4 insertions, 0 deletions
diff --git a/src/net/fakedhcp.c b/src/net/fakedhcp.c
index b6c456a..009b12c 100644
--- a/src/net/fakedhcp.c
+++ b/src/net/fakedhcp.c
@@ -199,6 +199,10 @@ int create_fakepxebsack ( struct net_device *netdev,
return rc;
}
+ /* Populate ciaddr */
+ fetch_ipv4_setting ( netdev_settings ( netdev ), &ip_setting,
+ &dhcppkt.dhcphdr->ciaddr );
+
/* Merge in ProxyDHCP options */
if ( proxy_settings &&
( ( rc = copy_settings ( &dhcppkt, proxy_settings ) ) != 0 ) ) {