netif_set_link_up/down: only do something if the link state actually changes

This commit is contained in:
goldsimon 2010-02-12 16:50:23 +00:00
parent 2e795d2706
commit 29eb56a2f6
2 changed files with 27 additions and 19 deletions

View File

@ -119,6 +119,10 @@ HISTORY
++ Bugfixes: ++ Bugfixes:
2010-02-12: Simon Goldschmidt
* netif.c: netif_set_link_up/down: only do something if the link state
actually changes
2010-02-12: Simon Goldschmidt/Stephane Lesage 2010-02-12: Simon Goldschmidt/Stephane Lesage
* api_msg.c: Fixed bug #28865 (Cannot close socket/netconn in non-blocking * api_msg.c: Fixed bug #28865 (Cannot close socket/netconn in non-blocking
connect) connect)

View File

@ -506,6 +506,7 @@ void netif_set_status_callback(struct netif *netif, netif_status_callback_fn sta
*/ */
void netif_set_link_up(struct netif *netif ) void netif_set_link_up(struct netif *netif )
{ {
if (!(netif->flags & NETIF_FLAG_LINK_UP)) {
netif->flags |= NETIF_FLAG_LINK_UP; netif->flags |= NETIF_FLAG_LINK_UP;
#if LWIP_DHCP #if LWIP_DHCP
@ -536,6 +537,7 @@ void netif_set_link_up(struct netif *netif )
#endif /* LWIP_IGMP */ #endif /* LWIP_IGMP */
} }
NETIF_LINK_CALLBACK(netif); NETIF_LINK_CALLBACK(netif);
}
} }
/** /**
@ -543,8 +545,10 @@ void netif_set_link_up(struct netif *netif )
*/ */
void netif_set_link_down(struct netif *netif ) void netif_set_link_down(struct netif *netif )
{ {
if (netif->flags & NETIF_FLAG_LINK_UP) {
netif->flags &= ~NETIF_FLAG_LINK_UP; netif->flags &= ~NETIF_FLAG_LINK_UP;
NETIF_LINK_CALLBACK(netif); NETIF_LINK_CALLBACK(netif);
}
} }
/** /**