[UDP]: Make full use of proto.h.udp_hash innovation.
[deliverable/linux.git] / net / ipv4 / ip_sockglue.c
index 82817e5543638e93299e017262693da28bf1bff8..bb3cbe5ec36ddeae6b825df339a75ba68adfd452 100644 (file)
@@ -57,7 +57,7 @@
 static void ip_cmsg_recv_pktinfo(struct msghdr *msg, struct sk_buff *skb)
 {
        struct in_pktinfo info;
-       struct rtable *rt = (struct rtable *)skb->dst;
+       struct rtable *rt = skb->rtable;
 
        info.ipi_addr.s_addr = ip_hdr(skb)->daddr;
        if (rt) {
@@ -514,11 +514,6 @@ static int do_ip_setsockopt(struct sock *sk, int level,
                        val &= ~3;
                        val |= inet->tos & 3;
                }
-               if (IPTOS_PREC(val) >= IPTOS_PREC_CRITIC_ECP &&
-                   !capable(CAP_NET_ADMIN)) {
-                       err = -EPERM;
-                       break;
-               }
                if (inet->tos != val) {
                        inet->tos = val;
                        sk->sk_priority = rt_tos2priority(val);
@@ -588,13 +583,13 @@ static int do_ip_setsockopt(struct sock *sk, int level,
                }
 
                if (!mreq.imr_ifindex) {
-                       if (mreq.imr_address.s_addr == INADDR_ANY) {
+                       if (mreq.imr_address.s_addr == htonl(INADDR_ANY)) {
                                inet->mc_index = 0;
                                inet->mc_addr  = 0;
                                err = 0;
                                break;
                        }
-                       dev = ip_dev_find(mreq.imr_address.s_addr);
+                       dev = ip_dev_find(&init_net, mreq.imr_address.s_addr);
                        if (dev) {
                                mreq.imr_ifindex = dev->ifindex;
                                dev_put(dev);
This page took 0.02651 seconds and 5 git commands to generate.