mirror of
https://github.com/lwip-tcpip/lwip.git
synced 2024-12-24 15:14:06 +00:00
netif: ensure link and admin states are up in issue reports (bug #52353)
This fixes a bug where some callers of netif_issue_reports were not checking that both link and admin states were up, leading to extraneous reports when calling one of the following 1) netif_set_ipaddr 2) netif_ip6_addr_set_parts 3) netif_ip6_addr_set_state The bug has been fixed by placing link and admin state checks in netif_issue_reports and not requiring the callers to perform this checking
This commit is contained in:
parent
d864f8c3a3
commit
637bce91b4
@ -81,6 +81,9 @@ HISTORY
|
|||||||
|
|
||||||
++ Bugfixes:
|
++ Bugfixes:
|
||||||
|
|
||||||
|
2017-11-08: Joel Cunningham
|
||||||
|
* netif: ensure link and admin states are up in issue reports (bug #52353)
|
||||||
|
|
||||||
2017-09-12: David Lockyer
|
2017-09-12: David Lockyer
|
||||||
* select: allocate select_cb from memp for LWIP_MPU_COMPATIBLE = 1 (bug #51990)
|
* select: allocate select_cb from memp for LWIP_MPU_COMPATIBLE = 1 (bug #51990)
|
||||||
|
|
||||||
|
@ -742,9 +742,7 @@ netif_set_up(struct netif *netif)
|
|||||||
}
|
}
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
if (netif->flags & NETIF_FLAG_LINK_UP) {
|
netif_issue_reports(netif, NETIF_REPORT_TYPE_IPV4 | NETIF_REPORT_TYPE_IPV6);
|
||||||
netif_issue_reports(netif, NETIF_REPORT_TYPE_IPV4 | NETIF_REPORT_TYPE_IPV6);
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -753,6 +751,12 @@ netif_set_up(struct netif *netif)
|
|||||||
static void
|
static void
|
||||||
netif_issue_reports(struct netif *netif, u8_t report_type)
|
netif_issue_reports(struct netif *netif, u8_t report_type)
|
||||||
{
|
{
|
||||||
|
/* Only send reports when both link and admin states are up */
|
||||||
|
if (!(netif->flags & NETIF_FLAG_LINK_UP) ||
|
||||||
|
!(netif->flags & NETIF_FLAG_UP)) {
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
#if LWIP_IPV4
|
#if LWIP_IPV4
|
||||||
if ((report_type & NETIF_REPORT_TYPE_IPV4) &&
|
if ((report_type & NETIF_REPORT_TYPE_IPV4) &&
|
||||||
!ip4_addr_isany_val(*netif_ip4_addr(netif))) {
|
!ip4_addr_isany_val(*netif_ip4_addr(netif))) {
|
||||||
@ -865,9 +869,8 @@ netif_set_link_up(struct netif *netif)
|
|||||||
autoip_network_changed(netif);
|
autoip_network_changed(netif);
|
||||||
#endif /* LWIP_AUTOIP */
|
#endif /* LWIP_AUTOIP */
|
||||||
|
|
||||||
if (netif->flags & NETIF_FLAG_UP) {
|
netif_issue_reports(netif, NETIF_REPORT_TYPE_IPV4 | NETIF_REPORT_TYPE_IPV6);
|
||||||
netif_issue_reports(netif, NETIF_REPORT_TYPE_IPV4 | NETIF_REPORT_TYPE_IPV6);
|
|
||||||
}
|
|
||||||
NETIF_LINK_CALLBACK(netif);
|
NETIF_LINK_CALLBACK(netif);
|
||||||
#if LWIP_NETIF_EXT_STATUS_CALLBACK
|
#if LWIP_NETIF_EXT_STATUS_CALLBACK
|
||||||
{
|
{
|
||||||
|
Loading…
Reference in New Issue
Block a user