Merge to Fedora Core 2 kernel-2.6.8-1.521
[linux-2.6.git] / net / ipv4 / raw.c
index 41aaa7c..1f7364a 100644 (file)
@@ -320,7 +320,7 @@ error_fault:
        err = -EFAULT;
        kfree_skb(skb);
 error:
-       IP_INC_STATS(OutDiscards);
+       IP_INC_STATS(IPSTATS_MIB_OUTDISCARDS);
        return err; 
 }
 
@@ -556,9 +556,11 @@ int raw_recvmsg(struct kiocb *iocb, struct sock *sk, struct msghdr *msg,
        }
        if (inet->cmsg_flags)
                ip_cmsg_recv(msg, skb);
+       if (flags & MSG_TRUNC)
+               copied = skb->len;
 done:
        skb_free_datagram(sk, skb);
-out:   return err ? : copied;
+out:   return err ? err : copied;
 }
 
 static int raw_init(struct sock *sk)
@@ -658,7 +660,7 @@ static int raw_ioctl(struct sock *sk, int cmd, unsigned long arg)
 struct proto raw_prot = {
        .name =         "RAW",
        .close =        raw_close,
-       .connect =      udp_connect,
+       .connect =      ip4_datagram_connect,
        .disconnect =   udp_disconnect,
        .ioctl =        raw_ioctl,
        .init =         raw_init,