diff options
Diffstat (limited to 'net/ipv4/route.c')
-rw-r--r-- | net/ipv4/route.c | 5 |
1 files changed, 4 insertions, 1 deletions
diff --git a/net/ipv4/route.c b/net/ipv4/route.c index c426dec6d579..d2bc6148a737 100644 --- a/net/ipv4/route.c +++ b/net/ipv4/route.c | |||
@@ -1161,7 +1161,7 @@ static struct dst_entry *ipv4_negative_advice(struct dst_entry *dst) | |||
1161 | unsigned hash = rt_hash(rt->fl.fl4_dst, rt->fl.fl4_src, | 1161 | unsigned hash = rt_hash(rt->fl.fl4_dst, rt->fl.fl4_src, |
1162 | rt->fl.oif); | 1162 | rt->fl.oif); |
1163 | #if RT_CACHE_DEBUG >= 1 | 1163 | #if RT_CACHE_DEBUG >= 1 |
1164 | printk(KERN_DEBUG "ip_rt_advice: redirect to " | 1164 | printk(KERN_DEBUG "ipv4_negative_advice: redirect to " |
1165 | "%u.%u.%u.%u/%02x dropped\n", | 1165 | "%u.%u.%u.%u/%02x dropped\n", |
1166 | NIPQUAD(rt->rt_dst), rt->fl.fl4_tos); | 1166 | NIPQUAD(rt->rt_dst), rt->fl.fl4_tos); |
1167 | #endif | 1167 | #endif |
@@ -1252,6 +1252,7 @@ static int ip_error(struct sk_buff *skb) | |||
1252 | break; | 1252 | break; |
1253 | case ENETUNREACH: | 1253 | case ENETUNREACH: |
1254 | code = ICMP_NET_UNREACH; | 1254 | code = ICMP_NET_UNREACH; |
1255 | IP_INC_STATS_BH(IPSTATS_MIB_INNOROUTES); | ||
1255 | break; | 1256 | break; |
1256 | case EACCES: | 1257 | case EACCES: |
1257 | code = ICMP_PKT_FILTERED; | 1258 | code = ICMP_PKT_FILTERED; |
@@ -1881,6 +1882,8 @@ no_route: | |||
1881 | RT_CACHE_STAT_INC(in_no_route); | 1882 | RT_CACHE_STAT_INC(in_no_route); |
1882 | spec_dst = inet_select_addr(dev, 0, RT_SCOPE_UNIVERSE); | 1883 | spec_dst = inet_select_addr(dev, 0, RT_SCOPE_UNIVERSE); |
1883 | res.type = RTN_UNREACHABLE; | 1884 | res.type = RTN_UNREACHABLE; |
1885 | if (err == -ESRCH) | ||
1886 | err = -ENETUNREACH; | ||
1884 | goto local_input; | 1887 | goto local_input; |
1885 | 1888 | ||
1886 | /* | 1889 | /* |