]> git.hungrycats.org Git - linux/commitdiff
[IPV4]: Always set hoplimit metric, even for non-unicast routes.
authorHerbert Xu <herbert@gondor.apana.org.au>
Tue, 18 Nov 2003 09:11:02 +0000 (01:11 -0800)
committerPatrick McHardy <kaber@coreworks.de>
Tue, 18 Nov 2003 09:11:02 +0000 (01:11 -0800)
net/ipv4/route.c

index e846f0d54969e68b232a126cbd4d5673813e2c6a..641d907a34c7d4560c7250e353870c61bc71d9f5 100644 (file)
@@ -1399,9 +1399,6 @@ static void rt_set_nexthop(struct rtable *rt, struct fib_result *res, u32 itag)
                        rt->rt_gateway = FIB_RES_GW(*res);
                memcpy(rt->u.dst.metrics, fi->fib_metrics,
                       sizeof(rt->u.dst.metrics));
-               if (rt->u.dst.metrics[RTAX_HOPLIMIT-1] == 0)
-                       rt->u.dst.metrics[RTAX_HOPLIMIT-1] =
-                               sysctl_ip_default_ttl;
                if (fi->fib_mtu == 0) {
                        rt->u.dst.metrics[RTAX_MTU-1] = rt->u.dst.dev->mtu;
                        if (rt->u.dst.metrics[RTAX_LOCK-1] & (1 << RTAX_MTU) &&
@@ -1415,6 +1412,8 @@ static void rt_set_nexthop(struct rtable *rt, struct fib_result *res, u32 itag)
        } else
                rt->u.dst.metrics[RTAX_MTU-1]= rt->u.dst.dev->mtu;
 
+       if (rt->u.dst.metrics[RTAX_HOPLIMIT-1] == 0)
+               rt->u.dst.metrics[RTAX_HOPLIMIT-1] = sysctl_ip_default_ttl;
        if (rt->u.dst.metrics[RTAX_MTU-1] > IP_MAX_MTU)
                rt->u.dst.metrics[RTAX_MTU-1] = IP_MAX_MTU;
        if (rt->u.dst.metrics[RTAX_ADVMSS-1] == 0)