ipv4: Create and use route lookup helpers.
[pandora-kernel.git] / net / l2tp / l2tp_ip.c
index 2a698ff..fce9bd3 100644 (file)
@@ -475,25 +475,17 @@ static int l2tp_ip_sendmsg(struct kiocb *iocb, struct sock *sk, struct msghdr *m
                if (opt && opt->srr)
                        daddr = opt->faddr;
 
-               {
-                       struct flowi fl = { .oif = sk->sk_bound_dev_if,
-                                           .fl4_dst = daddr,
-                                           .fl4_src = inet->inet_saddr,
-                                           .fl4_tos = RT_CONN_FLAGS(sk),
-                                           .proto = sk->sk_protocol,
-                                           .flags = inet_sk_flowi_flags(sk),
-                                           .fl_ip_sport = inet->inet_sport,
-                                           .fl_ip_dport = inet->inet_dport };
-
-                       /* If this fails, retransmit mechanism of transport layer will
-                        * keep trying until route appears or the connection times
-                        * itself out.
-                        */
-                       security_sk_classify_flow(sk, &fl);
-                       rt = ip_route_output_flow(sock_net(sk), &fl, sk);
-                       if (IS_ERR(rt))
-                               goto no_route;
-               }
+               /* If this fails, retransmit mechanism of transport layer will
+                * keep trying until route appears or the connection times
+                * itself out.
+                */
+               rt = ip_route_output_ports(sock_net(sk), sk,
+                                          daddr, inet->inet_saddr,
+                                          inet->inet_dport, inet->inet_sport,
+                                          sk->sk_protocol, RT_CONN_FLAGS(sk),
+                                          sk->sk_bound_dev_if);
+               if (IS_ERR(rt))
+                       goto no_route;
                sk_setup_caps(sk, &rt->dst);
        }
        skb_dst_set(skb, dst_clone(&rt->dst));