git.openpandora.org
/
pandora-kernel.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
tcp: fix TCP_MAXSEG for established IPv6 passive sockets
[pandora-kernel.git]
/
net
/
ipv6
/
tcp_ipv6.c
diff --git
a/net/ipv6/tcp_ipv6.c
b/net/ipv6/tcp_ipv6.c
index
2dea4bb
..
4a56574
100644
(file)
--- a/
net/ipv6/tcp_ipv6.c
+++ b/
net/ipv6/tcp_ipv6.c
@@
-1084,7
+1084,7
@@
static void tcp_v6_send_reset(struct sock *sk, struct sk_buff *skb)
#ifdef CONFIG_TCP_MD5SIG
if (sk)
#ifdef CONFIG_TCP_MD5SIG
if (sk)
- key = tcp_v6_md5_do_lookup(sk, &ipv6_hdr(skb)->
d
addr);
+ key = tcp_v6_md5_do_lookup(sk, &ipv6_hdr(skb)->
s
addr);
#endif
if (th->ack)
#endif
if (th->ack)
@@
-1494,6
+1494,10
@@
static struct sock * tcp_v6_syn_recv_sock(struct sock *sk, struct sk_buff *skb,
tcp_mtup_init(newsk);
tcp_sync_mss(newsk, dst_mtu(dst));
newtp->advmss = dst_metric_advmss(dst);
tcp_mtup_init(newsk);
tcp_sync_mss(newsk, dst_mtu(dst));
newtp->advmss = dst_metric_advmss(dst);
+ if (tcp_sk(sk)->rx_opt.user_mss &&
+ tcp_sk(sk)->rx_opt.user_mss < newtp->advmss)
+ newtp->advmss = tcp_sk(sk)->rx_opt.user_mss;
+
tcp_initialize_rcv_mss(newsk);
if (tcp_rsk(req)->snt_synack)
tcp_valid_rtt_meas(newsk,
tcp_initialize_rcv_mss(newsk);
if (tcp_rsk(req)->snt_synack)
tcp_valid_rtt_meas(newsk,