diff options
author | David S. Miller <davem@sunset.davemloft.net> | 2007-02-08 05:09:21 -0500 |
---|---|---|
committer | David S. Miller <davem@sunset.davemloft.net> | 2007-02-08 15:38:45 -0500 |
commit | 8eb9086f21c73b38b5ca27558db4c91d62d0e70b (patch) | |
tree | 1fa2694f1e5eac966cc8db2fb8d5f3d684b09803 /include/net | |
parent | ba7808eac17360dda459f82222859b0e3879854b (diff) |
[IPV4/IPV6]: Always wait for IPSEC SA resolution in socket contexts.
Do this even for non-blocking sockets. This avoids the silly -EAGAIN
that applications can see now, even for non-blocking sockets in some
cases (f.e. connect()).
With help from Venkat Tekkirala.
Signed-off-by: David S. Miller <davem@davemloft.net>
Diffstat (limited to 'include/net')
-rw-r--r-- | include/net/route.h | 5 |
1 files changed, 3 insertions, 2 deletions
diff --git a/include/net/route.h b/include/net/route.h index 486e37aff06c..1440bdb5a27d 100644 --- a/include/net/route.h +++ b/include/net/route.h | |||
@@ -146,7 +146,8 @@ static inline char rt_tos2priority(u8 tos) | |||
146 | 146 | ||
147 | static inline int ip_route_connect(struct rtable **rp, __be32 dst, | 147 | static inline int ip_route_connect(struct rtable **rp, __be32 dst, |
148 | __be32 src, u32 tos, int oif, u8 protocol, | 148 | __be32 src, u32 tos, int oif, u8 protocol, |
149 | __be16 sport, __be16 dport, struct sock *sk) | 149 | __be16 sport, __be16 dport, struct sock *sk, |
150 | int flags) | ||
150 | { | 151 | { |
151 | struct flowi fl = { .oif = oif, | 152 | struct flowi fl = { .oif = oif, |
152 | .nl_u = { .ip4_u = { .daddr = dst, | 153 | .nl_u = { .ip4_u = { .daddr = dst, |
@@ -168,7 +169,7 @@ static inline int ip_route_connect(struct rtable **rp, __be32 dst, | |||
168 | *rp = NULL; | 169 | *rp = NULL; |
169 | } | 170 | } |
170 | security_sk_classify_flow(sk, &fl); | 171 | security_sk_classify_flow(sk, &fl); |
171 | return ip_route_output_flow(rp, &fl, sk, 0); | 172 | return ip_route_output_flow(rp, &fl, sk, flags); |
172 | } | 173 | } |
173 | 174 | ||
174 | static inline int ip_route_newports(struct rtable **rp, u8 protocol, | 175 | static inline int ip_route_newports(struct rtable **rp, u8 protocol, |