diff options
author | David S. Miller <davem@sunset.davemloft.net> | 2007-02-08 02:09:21 -0800 |
---|---|---|
committer | David S. Miller <davem@sunset.davemloft.net> | 2007-02-08 12:38:45 -0800 |
commit | 8eb9086f21c73b38b5ca27558db4c91d62d0e70b (patch) | |
tree | 1fa2694f1e5eac966cc8db2fb8d5f3d684b09803 /include/net | |
parent | ba7808eac17360dda459f82222859b0e3879854b (diff) | |
download | op-kernel-dev-8eb9086f21c73b38b5ca27558db4c91d62d0e70b.zip op-kernel-dev-8eb9086f21c73b38b5ca27558db4c91d62d0e70b.tar.gz |
[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 486e37a..1440bdb 100644 --- a/include/net/route.h +++ b/include/net/route.h @@ -146,7 +146,8 @@ static inline char rt_tos2priority(u8 tos) static inline int ip_route_connect(struct rtable **rp, __be32 dst, __be32 src, u32 tos, int oif, u8 protocol, - __be16 sport, __be16 dport, struct sock *sk) + __be16 sport, __be16 dport, struct sock *sk, + int flags) { struct flowi fl = { .oif = oif, .nl_u = { .ip4_u = { .daddr = dst, @@ -168,7 +169,7 @@ static inline int ip_route_connect(struct rtable **rp, __be32 dst, *rp = NULL; } security_sk_classify_flow(sk, &fl); - return ip_route_output_flow(rp, &fl, sk, 0); + return ip_route_output_flow(rp, &fl, sk, flags); } static inline int ip_route_newports(struct rtable **rp, u8 protocol, |