Fix an incorrect payload length when sending TCP MSS option.

This commit is contained in:
whitequark 2017-01-27 03:35:22 +00:00
parent be9699e814
commit da4900a02b
1 changed files with 6 additions and 0 deletions

View File

@ -965,6 +965,12 @@ impl<'a> TcpSocket<'a> {
repr.ack_number = Some(ack_number);
self.remote_last_ack = ack_number;
if repr.control == TcpControl::Syn {
// First enable the option, without assigning any value, to get a correct
// result for (ip_repr:Unspecified).payload_len below.
repr.max_seg_size = Some(0);
}
let ip_repr = IpRepr::Unspecified {
src_addr: self.local_endpoint.addr,
dst_addr: self.remote_endpoint.addr,