On Thu, 6 Dec 2007 08:49:47 +0100 Jarek Poplawski <[EMAIL PROTECTED]> wrote:
> On 06-12-2007 07:31, Mitsuru Chinen wrote: > > IPv4 stack doesn't reply any ICMP destination unreachable message > > with net unreachable code when IP detagrams are being discarded > > because of no route could be found in the forwarding path. > > Incidentally, IPv6 stack replies such ICMPv6 message in the similar > > situation. > > > > Signed-off-by: Mitsuru Chinen <[EMAIL PROTECTED]> > > --- > > net/ipv4/route.c | 2 ++ > > 1 files changed, 2 insertions(+), 0 deletions(-) > > > > diff --git a/net/ipv4/route.c b/net/ipv4/route.c > > index 6714bbc..ba85ec9 100644 > > --- a/net/ipv4/route.c > > +++ b/net/ipv4/route.c > > @@ -1375,6 +1375,7 @@ static int ip_error(struct sk_buff *skb) > > break; > > case ENETUNREACH: > > code = ICMP_NET_UNREACH; > > + IP_INC_STATS_BH(IPSTATS_MIB_INNOROUTES); > > break; > > case EACCES: > > code = ICMP_PKT_FILTERED; > > @@ -2004,6 +2005,7 @@ no_route: > > RT_CACHE_STAT_INC(in_no_route); > > spec_dst = inet_select_addr(dev, 0, RT_SCOPE_UNIVERSE); > > res.type = RTN_UNREACHABLE; > > + err = -ENETUNREACH; > > goto local_input; > > > > /* > > This patch seems to be wrong. It overrides err codes from > fib_lookup, where such decisions should be made. fib_lookup() replies -ESRCH in this situation. It is necessary to override the variable by the suitable error number like the code under e_hostunreach label. Best Regards, ---- Mitsuru Chinen <[EMAIL PROTECTED]> -- To unsubscribe from this list: send the line "unsubscribe netdev" in the body of a message to [EMAIL PROTECTED] More majordomo info at http://vger.kernel.org/majordomo-info.html