]> git.karo-electronics.de Git - mv-sheeva.git/blobdiff - net/ipv4/af_inet.c
ipv4: Create and use route lookup helpers.
[mv-sheeva.git] / net / ipv4 / af_inet.c
index 35a50205501887775b6edb52aa2ed0e43a9a67e8..807d83c02ef6b666b307169647cab6a05e3cd5f9 100644 (file)
@@ -1157,22 +1157,10 @@ int inet_sk_rebuild_header(struct sock *sk)
        daddr = inet->inet_daddr;
        if (inet->opt && inet->opt->srr)
                daddr = inet->opt->faddr;
-       {
-       struct flowi fl = {
-               .oif = sk->sk_bound_dev_if,
-               .mark = sk->sk_mark,
-               .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,
-       };
-
-       security_sk_classify_flow(sk, &fl);
-       rt = ip_route_output_flow(sock_net(sk), &fl, sk);
-       }
+       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)) {
                err = 0;
                sk_setup_caps(sk, &rt->dst);