diff options
Diffstat (limited to 'net/dccp/ipv4.c')
-rw-r--r-- | net/dccp/ipv4.c | 10 |
1 files changed, 5 insertions, 5 deletions
diff --git a/net/dccp/ipv4.c b/net/dccp/ipv4.c index ae451c6d83ba..b92ab655d44e 100644 --- a/net/dccp/ipv4.c +++ b/net/dccp/ipv4.c | |||
@@ -40,12 +40,13 @@ | |||
40 | 40 | ||
41 | int dccp_v4_connect(struct sock *sk, struct sockaddr *uaddr, int addr_len) | 41 | int dccp_v4_connect(struct sock *sk, struct sockaddr *uaddr, int addr_len) |
42 | { | 42 | { |
43 | const struct sockaddr_in *usin = (struct sockaddr_in *)uaddr; | ||
43 | struct inet_sock *inet = inet_sk(sk); | 44 | struct inet_sock *inet = inet_sk(sk); |
44 | struct dccp_sock *dp = dccp_sk(sk); | 45 | struct dccp_sock *dp = dccp_sk(sk); |
45 | const struct sockaddr_in *usin = (struct sockaddr_in *)uaddr; | ||
46 | __be16 orig_sport, orig_dport; | 46 | __be16 orig_sport, orig_dport; |
47 | struct rtable *rt; | ||
48 | __be32 daddr, nexthop; | 47 | __be32 daddr, nexthop; |
48 | struct flowi4 fl4; | ||
49 | struct rtable *rt; | ||
49 | int err; | 50 | int err; |
50 | 51 | ||
51 | dp->dccps_role = DCCP_ROLE_CLIENT; | 52 | dp->dccps_role = DCCP_ROLE_CLIENT; |
@@ -65,7 +66,7 @@ int dccp_v4_connect(struct sock *sk, struct sockaddr *uaddr, int addr_len) | |||
65 | 66 | ||
66 | orig_sport = inet->inet_sport; | 67 | orig_sport = inet->inet_sport; |
67 | orig_dport = usin->sin_port; | 68 | orig_dport = usin->sin_port; |
68 | rt = ip_route_connect(nexthop, inet->inet_saddr, | 69 | rt = ip_route_connect(&fl4, nexthop, inet->inet_saddr, |
69 | RT_CONN_FLAGS(sk), sk->sk_bound_dev_if, | 70 | RT_CONN_FLAGS(sk), sk->sk_bound_dev_if, |
70 | IPPROTO_DCCP, | 71 | IPPROTO_DCCP, |
71 | orig_sport, orig_dport, sk, true); | 72 | orig_sport, orig_dport, sk, true); |
@@ -101,8 +102,7 @@ int dccp_v4_connect(struct sock *sk, struct sockaddr *uaddr, int addr_len) | |||
101 | if (err != 0) | 102 | if (err != 0) |
102 | goto failure; | 103 | goto failure; |
103 | 104 | ||
104 | rt = ip_route_newports(rt, IPPROTO_DCCP, | 105 | rt = ip_route_newports(&fl4, rt, orig_sport, orig_dport, |
105 | orig_sport, orig_dport, | ||
106 | inet->inet_sport, inet->inet_dport, sk); | 106 | inet->inet_sport, inet->inet_dport, sk); |
107 | if (IS_ERR(rt)) { | 107 | if (IS_ERR(rt)) { |
108 | rt = NULL; | 108 | rt = NULL; |