In the request packet, we are supposed to copy the IP that the DHCP server
provided in the offer packet so that dhcp_extended can fill the option 50.
There is actually an error in barebox as the pointer to the packet currently
built is used as the source instead of the pointer to the offer packet.
With this patch, barebox now sends a request packet which includes the right
requested IP in option 50.

Signed-off-by: Eric Bénard <[email protected]>
---
v2 : remove 2 line suppressed by error.

 net/dhcp.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/net/dhcp.c b/net/dhcp.c
index 9551d60..a22fad0 100644
--- a/net/dhcp.c
+++ b/net/dhcp.c
@@ -579,7 +579,7 @@ static void dhcp_send_request_packet(struct bootp *bp_offer)
        /*
         * Copy options from OFFER packet if present
         */
-       net_copy_ip(&OfferedIP, &bp->bp_yiaddr);
+       net_copy_ip(&OfferedIP, &bp_offer->bp_yiaddr);
        extlen = dhcp_extended((u8 *)bp->bp_vend, DHCP_REQUEST, 
net_dhcp_server_ip,
                                OfferedIP);
 
-- 
1.9.3


_______________________________________________
barebox mailing list
[email protected]
http://lists.infradead.org/mailman/listinfo/barebox

Reply via email to