]> git.neil.brown.name Git - history.git/commitdiff
[TCP]: Initialize socket route on move to established state.
authorDavid S. Miller <davem@nuts.ninka.net>
Wed, 9 Jul 2003 12:51:06 +0000 (05:51 -0700)
committerStephen Hemminger <shemminger@osdl.org>
Wed, 9 Jul 2003 12:51:06 +0000 (05:51 -0700)
net/ipv4/tcp_input.c

index f29eaafc4c0d3891ad92fab6c1e0f4dc283ef930..f629bffd0e62c04c4c5fc984c1146567726bc2db 100644 (file)
@@ -3693,6 +3693,10 @@ static int tcp_rcv_synsent_state_process(struct sock *sk, struct sk_buff *skb,
 
                tcp_sync_mss(sk, tp->pmtu_cookie);
                tcp_initialize_rcv_mss(sk);
+
+               /* Make sure socket is routed, for correct metrics.  */
+               tp->af_specific->rebuild_header(sk);
+
                tcp_init_metrics(sk);
                tcp_init_buffer_space(sk);
 
@@ -3959,6 +3963,11 @@ int tcp_rcv_state_process(struct sock *sk, struct sk_buff *skb,
                                if (tp->tstamp_ok)
                                        tp->advmss -= TCPOLEN_TSTAMP_ALIGNED;
 
+                               /* Make sure socket is routed, for
+                                * correct metrics.
+                                */
+                               tp->af_specific->rebuild_header(sk);
+
                                tcp_init_metrics(sk);
                                tcp_initialize_rcv_mss(sk);
                                tcp_init_buffer_space(sk);