Skip to content

CONFIG_LWIP_DHCP_RESTORE_LAST_IP fails to compile: dhcp_network_changed not defined (IDFGH-13710) #14582

Closed
@xobs

Description

@xobs

Answers checklist.

  • I have read the documentation ESP-IDF Programming Guide and the issue is not addressed there.
  • I have updated my IDF branch (master or release) to the latest version and checked that the issue is present there.
  • I have searched the issue tracker for a similar issue and not found a similar issue.

IDF version.

v5.4-dev-3023-g3c99557eee

Operating System used.

Windows

How did you build your project?

Command line with Make

If you are using Windows, please specify command line type.

PowerShell

What is the expected behavior?

Previously, CONFIG_LWIP_DHCP_RESTORE_LAST_IP compiled just fine.

What is the actual behavior?

As of tonight, CONFIG_LWIP_DHCP_RESTORE_LAST_IP fails to compile. This is because it invokes a macro defined as:

#ifdef CONFIG_LWIP_DHCP_RESTORE_LAST_IP
/*
 * Make the post-init hook check if we could restore the previously bound address
 * - if yes reset the state to bound and mark result as ERR_OK (which skips discovery state)
 * - if no, return false to continue normally to the discovery state
 */
#define LWIP_HOOK_DHCP_POST_INIT(netif, result) \
    (dhcp_ip_addr_restore(netif) ? ( dhcp_set_state(dhcp, DHCP_STATE_BOUND), \
                                     dhcp_network_changed(netif), \
                                     (result) = ERR_OK , \
        true ) : \
        false)
#else
#define LWIP_HOOK_DHCP_PRE_DISCOVERY(netif, result) (false)
#endif /* CONFIG_LWIP_DHCP_RESTORE_LAST_IP */

However, dhcp_network_changed() no longer exists.

Steps to reproduce.

  1. Enable CONFIG_LWIP_DHCP_RESTORE_LAST_IP

Build or installation Logs.

In file included from C:/Users/Sean/esp/esp-idf/components/lwip/lwip/src/include/lwip/opt.h:51,
                 from C:/Users/Sean/esp/esp-idf/components/lwip/lwip/src/core/ipv4/dhcp.c:66:
C:/Users/Sean/esp/esp-idf/components/lwip/lwip/src/core/ipv4/dhcp.c: In function 'dhcp_start':
C:/Users/Sean/esp/esp-idf/components/lwip/port/include/lwipopts.h:365:38: error: implicit declaration of function 'dhcp_network_changed'; did you mean 'dhcp_network_changed_link_up'? [-Wimplicit-function-declaration]
  365 |                                      dhcp_network_changed(netif), \
      |                                      ^~~~~~~~~~~~~~~~~~~~
C:/Users/Sean/esp/esp-idf/components/lwip/lwip/src/core/ipv4/dhcp.c:945:7: note: in expansion of macro 'LWIP_HOOK_DHCP_POST_INIT'
  945 |   if (LWIP_HOOK_DHCP_POST_INIT(netif, result)) {
      |       ^~~~~~~~~~~~~~~~~~~~~~~~


### More Information.

This started failing this evening.

Metadata

Metadata

Labels

Type

No type

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions