• E
    tcp: tcp_synack_options() fix · de213e5e
    Eric Dumazet 提交于
    Commit 33ad798c (tcp: options clean up) introduced a problem
    if MD5+SACK+timestamps were used in initial SYN message.
    
    Some stacks (old linux for example) try to negotiate MD5+SACK+TSTAMP
    sessions, but since 40 bytes of tcp options space are not enough to
    store all the bits needed, we chose to disable timestamps in this case.
    
    We send a SYN-ACK _without_ timestamp option, but socket has timestamps
    enabled and all further outgoing messages contain a TS block, all with
    the initial timestamp of the remote peer.
    
    Fix is to really disable timestamps option for the whole session.
    Reported-by: NBijay Singh <Bijay.Singh@guavus.com>
    Signed-off-by: NEric Dumazet <eric.dumazet@gmail.com>
    Signed-off-by: NDavid S. Miller <davem@davemloft.net>
    de213e5e
tcp_output.c 81.2 KB