mirror of
https://github.com/lwip-tcpip/lwip.git
synced 2024-10-01 04:12:07 +00:00
fixed bug #21643 (udp_send/raw_send don't fail if netif is down) by letting ip_route only use netifs that are up.
This commit is contained in:
parent
ce7c311ecf
commit
f07c1cf874
@ -499,6 +499,10 @@ HISTORY
|
|||||||
|
|
||||||
++ Bug fixes:
|
++ Bug fixes:
|
||||||
|
|
||||||
|
2007-11-27 Simon Goldschmidt
|
||||||
|
* ip.c: fixed bug #21643 (udp_send/raw_send don't fail if netif is down) by
|
||||||
|
letting ip_route only use netifs that are up.
|
||||||
|
|
||||||
2007-11-27 Simon Goldschmidt
|
2007-11-27 Simon Goldschmidt
|
||||||
* err.h, api_lib.c, api_msg.c, sockets.c: Changed error handling: ERR_MEM, ERR_BUF
|
* err.h, api_lib.c, api_msg.c, sockets.c: Changed error handling: ERR_MEM, ERR_BUF
|
||||||
and ERR_RTE are seen as non-fatal, all other errors are fatal. netconns and
|
and ERR_RTE are seen as non-fatal, all other errors are fatal. netconns and
|
||||||
|
@ -73,15 +73,18 @@ ip_route(struct ip_addr *dest)
|
|||||||
/* iterate through netifs */
|
/* iterate through netifs */
|
||||||
for(netif = netif_list; netif != NULL; netif = netif->next) {
|
for(netif = netif_list; netif != NULL; netif = netif->next) {
|
||||||
/* network mask matches? */
|
/* network mask matches? */
|
||||||
if (ip_addr_netcmp(dest, &(netif->ip_addr), &(netif->netmask))) {
|
if (netif_is_up(netif)) {
|
||||||
/* return netif on which to forward IP packet */
|
if (ip_addr_netcmp(dest, &(netif->ip_addr), &(netif->netmask))) {
|
||||||
return netif;
|
/* return netif on which to forward IP packet */
|
||||||
|
return netif;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
if (netif_default == NULL) {
|
if ((netif_default == NULL) || (!netif_is_up(netif_default))) {
|
||||||
LWIP_DEBUGF(IP_DEBUG | 2, ("ip_route: No route to 0x%"X32_F"\n", dest->addr));
|
LWIP_DEBUGF(IP_DEBUG | 2, ("ip_route: No route to 0x%"X32_F"\n", dest->addr));
|
||||||
IP_STATS_INC(ip.rterr);
|
IP_STATS_INC(ip.rterr);
|
||||||
snmp_inc_ipoutnoroutes();
|
snmp_inc_ipoutnoroutes();
|
||||||
|
return NULL;
|
||||||
}
|
}
|
||||||
/* no matching netif found, use default netif */
|
/* no matching netif found, use default netif */
|
||||||
return netif_default;
|
return netif_default;
|
||||||
|
Loading…
Reference in New Issue
Block a user