|
@@ -323,7 +323,7 @@ void icmpv6_send(struct sk_buff *skb, u8 type, u8 code, __u32 info,
|
|
int iif = 0;
|
|
int iif = 0;
|
|
int addr_type = 0;
|
|
int addr_type = 0;
|
|
int len;
|
|
int len;
|
|
- int hlimit, tclass;
|
|
|
|
|
|
+ int hlimit;
|
|
int err = 0;
|
|
int err = 0;
|
|
|
|
|
|
if ((u8 *)hdr < skb->head ||
|
|
if ((u8 *)hdr < skb->head ||
|
|
@@ -469,10 +469,6 @@ route_done:
|
|
if (hlimit < 0)
|
|
if (hlimit < 0)
|
|
hlimit = ip6_dst_hoplimit(dst);
|
|
hlimit = ip6_dst_hoplimit(dst);
|
|
|
|
|
|
- tclass = np->tclass;
|
|
|
|
- if (tclass < 0)
|
|
|
|
- tclass = 0;
|
|
|
|
-
|
|
|
|
msg.skb = skb;
|
|
msg.skb = skb;
|
|
msg.offset = skb_network_offset(skb);
|
|
msg.offset = skb_network_offset(skb);
|
|
msg.type = type;
|
|
msg.type = type;
|
|
@@ -488,8 +484,8 @@ route_done:
|
|
|
|
|
|
err = ip6_append_data(sk, icmpv6_getfrag, &msg,
|
|
err = ip6_append_data(sk, icmpv6_getfrag, &msg,
|
|
len + sizeof(struct icmp6hdr),
|
|
len + sizeof(struct icmp6hdr),
|
|
- sizeof(struct icmp6hdr),
|
|
|
|
- hlimit, tclass, NULL, &fl, (struct rt6_info*)dst,
|
|
|
|
|
|
+ sizeof(struct icmp6hdr), hlimit,
|
|
|
|
+ np->tclass, NULL, &fl, (struct rt6_info*)dst,
|
|
MSG_DONTWAIT);
|
|
MSG_DONTWAIT);
|
|
if (err) {
|
|
if (err) {
|
|
ip6_flush_pending_frames(sk);
|
|
ip6_flush_pending_frames(sk);
|
|
@@ -522,7 +518,6 @@ static void icmpv6_echo_reply(struct sk_buff *skb)
|
|
struct dst_entry *dst;
|
|
struct dst_entry *dst;
|
|
int err = 0;
|
|
int err = 0;
|
|
int hlimit;
|
|
int hlimit;
|
|
- int tclass;
|
|
|
|
|
|
|
|
saddr = &ipv6_hdr(skb)->daddr;
|
|
saddr = &ipv6_hdr(skb)->daddr;
|
|
|
|
|
|
@@ -562,10 +557,6 @@ static void icmpv6_echo_reply(struct sk_buff *skb)
|
|
if (hlimit < 0)
|
|
if (hlimit < 0)
|
|
hlimit = ip6_dst_hoplimit(dst);
|
|
hlimit = ip6_dst_hoplimit(dst);
|
|
|
|
|
|
- tclass = np->tclass;
|
|
|
|
- if (tclass < 0)
|
|
|
|
- tclass = 0;
|
|
|
|
-
|
|
|
|
idev = in6_dev_get(skb->dev);
|
|
idev = in6_dev_get(skb->dev);
|
|
|
|
|
|
msg.skb = skb;
|
|
msg.skb = skb;
|
|
@@ -573,7 +564,7 @@ static void icmpv6_echo_reply(struct sk_buff *skb)
|
|
msg.type = ICMPV6_ECHO_REPLY;
|
|
msg.type = ICMPV6_ECHO_REPLY;
|
|
|
|
|
|
err = ip6_append_data(sk, icmpv6_getfrag, &msg, skb->len + sizeof(struct icmp6hdr),
|
|
err = ip6_append_data(sk, icmpv6_getfrag, &msg, skb->len + sizeof(struct icmp6hdr),
|
|
- sizeof(struct icmp6hdr), hlimit, tclass, NULL, &fl,
|
|
|
|
|
|
+ sizeof(struct icmp6hdr), hlimit, np->tclass, NULL, &fl,
|
|
(struct rt6_info*)dst, MSG_DONTWAIT);
|
|
(struct rt6_info*)dst, MSG_DONTWAIT);
|
|
|
|
|
|
if (err) {
|
|
if (err) {
|