raw.c (5a89770daad83df74d77a8d34a1ffaedae565ce9) | raw.c (3bd653c8455bc7991bae77968702b31c8f5df883) |
---|---|
1/* 2 * RAW sockets for IPv6 3 * Linux INET6 implementation 4 * 5 * Authors: 6 * Pedro Roque <roque@di.fc.ul.pt> 7 * 8 * Adapted from linux/net/ipv4/raw.c --- 624 unchanged lines hidden (view full) --- 633 634 skb->ip_summed = CHECKSUM_NONE; 635 636 skb->transport_header = skb->network_header; 637 err = memcpy_fromiovecend((void *)iph, from, 0, length); 638 if (err) 639 goto error_fault; 640 | 1/* 2 * RAW sockets for IPv6 3 * Linux INET6 implementation 4 * 5 * Authors: 6 * Pedro Roque <roque@di.fc.ul.pt> 7 * 8 * Adapted from linux/net/ipv4/raw.c --- 624 unchanged lines hidden (view full) --- 633 634 skb->ip_summed = CHECKSUM_NONE; 635 636 skb->transport_header = skb->network_header; 637 err = memcpy_fromiovecend((void *)iph, from, 0, length); 638 if (err) 639 goto error_fault; 640 |
641 IP6_INC_STATS(rt->rt6i_idev, IPSTATS_MIB_OUTREQUESTS); | 641 IP6_INC_STATS(sock_net(sk), rt->rt6i_idev, IPSTATS_MIB_OUTREQUESTS); |
642 err = NF_HOOK(PF_INET6, NF_INET_LOCAL_OUT, skb, NULL, rt->u.dst.dev, 643 dst_output); 644 if (err > 0) 645 err = np->recverr ? net_xmit_errno(err) : 0; 646 if (err) 647 goto error; 648out: 649 return 0; 650 651error_fault: 652 err = -EFAULT; 653 kfree_skb(skb); 654error: | 642 err = NF_HOOK(PF_INET6, NF_INET_LOCAL_OUT, skb, NULL, rt->u.dst.dev, 643 dst_output); 644 if (err > 0) 645 err = np->recverr ? net_xmit_errno(err) : 0; 646 if (err) 647 goto error; 648out: 649 return 0; 650 651error_fault: 652 err = -EFAULT; 653 kfree_skb(skb); 654error: |
655 IP6_INC_STATS(rt->rt6i_idev, IPSTATS_MIB_OUTDISCARDS); | 655 IP6_INC_STATS(sock_net(sk), rt->rt6i_idev, IPSTATS_MIB_OUTDISCARDS); |
656 return err; 657} 658 659static int rawv6_probe_proto_opt(struct flowi *fl, struct msghdr *msg) 660{ 661 struct iovec *iov; 662 u8 __user *type = NULL; 663 u8 __user *code = NULL; --- 696 unchanged lines hidden --- | 656 return err; 657} 658 659static int rawv6_probe_proto_opt(struct flowi *fl, struct msghdr *msg) 660{ 661 struct iovec *iov; 662 u8 __user *type = NULL; 663 u8 __user *code = NULL; --- 696 unchanged lines hidden --- |