Am 14. Oktober 2023 22:47:53 MESZ schrieb Sean Anderson <sean...@gmail.com>:
>If we sent a DHCP packet and get a BOOTP response from the server, we
>shouldn't try to send a DHCPREQUEST packet, since it won't be DHCPACKed.
>Transition straight to BIND. This is only enabled for UNIT_TEST to avoid
>bloat, since I suspect the number of BOOTP servers in the wild is
>vanishingly small.
>
>Signed-off-by: Sean Anderson <sean...@gmail.com>
>Reviewed-by: Simon Glass <s...@chromium.org>
>---
>
>(no changes since v1)
>
> net/bootp.c | 6 ++++++
> 1 file changed, 6 insertions(+)
>
>diff --git a/net/bootp.c b/net/bootp.c
>index 2053cce88c6..7b0f45e18a9 100644
>--- a/net/bootp.c
>+++ b/net/bootp.c
>@@ -1073,6 +1073,11 @@ static void dhcp_handler(uchar *pkt, unsigned dest, 
>struct in_addr sip,
>                           CONFIG_SYS_BOOTFILE_PREFIX,
>                           strlen(CONFIG_SYS_BOOTFILE_PREFIX)) == 0) {
> #endif        /* CONFIG_SYS_BOOTFILE_PREFIX */
>+                      if (CONFIG_IS_ENABLED(UNIT_TEST) &&
>+                          dhcp_message_type((u8 *)bp->bp_vend) == -1) {

As written before, please, do not add unit test specific code paths.

Best regards

Heinrich

>+                              debug("got BOOTP response; transitioning to 
>BOUND\n");
>+                              goto dhcp_got_bootp;
>+                      }
>                       dhcp_packet_process_options(bp);
>                       if (CONFIG_IS_ENABLED(EFI_LOADER) &&
>                           IS_ENABLED(CONFIG_NETDEVICES))
>@@ -1099,6 +1104,7 @@ static void dhcp_handler(uchar *pkt, unsigned dest, 
>struct in_addr sip,
>               debug("DHCP State: REQUESTING\n");
> 
>               if (dhcp_message_type((u8 *)bp->bp_vend) == DHCP_ACK) {
>+dhcp_got_bootp:
>                       dhcp_packet_process_options(bp);
>                       /* Store net params from reply */
>                       store_net_params(bp);

Reply via email to