A few cosmetic changes to TCP socket trace messages.
No functional change.
This commit is contained in:
parent
32d720831a
commit
9c3534e452
|
@ -1104,7 +1104,7 @@ impl<'a> TcpSocket<'a> {
|
|||
Ok(()) => {
|
||||
debug_assert!(self.assembler.total_size() == self.rx_buffer.capacity());
|
||||
// Place payload octets into the buffer.
|
||||
net_trace!("[{}]{}:{}: rx buffer: writing {} octets at offset {}",
|
||||
net_trace!("[{}]{}:{}: rx buffer: receiving {} octets at offset {}",
|
||||
self.debug_id, self.local_endpoint, self.remote_endpoint,
|
||||
payload_len, payload_offset);
|
||||
self.rx_buffer.write_unallocated(payload_offset, repr.payload);
|
||||
|
@ -1292,7 +1292,7 @@ impl<'a> TcpSocket<'a> {
|
|||
match self.state {
|
||||
State::FinWait1 | State::LastAck =>
|
||||
repr.control = TcpControl::Fin,
|
||||
State::Established | State::CloseWait =>
|
||||
State::Established | State::CloseWait if repr.payload.len() > 0 =>
|
||||
repr.control = TcpControl::Psh,
|
||||
_ => ()
|
||||
}
|
||||
|
@ -1318,11 +1318,29 @@ impl<'a> TcpSocket<'a> {
|
|||
}
|
||||
}
|
||||
|
||||
if repr.payload.len() > 0 {
|
||||
net_trace!("[{}]{}:{}: tx buffer: reading {} octets at offset {}",
|
||||
// There might be more than one reason to send a packet. E.g. the keep-alive timer
|
||||
// has expired, and we also have data in transmit buffer. Since any packet that occupies
|
||||
// sequence space will elicit an ACK, we only need to send an explicit packet if we
|
||||
// couldn't fill the sequence space with anything.
|
||||
let is_keep_alive;
|
||||
if self.timer.should_keep_alive(timestamp) && repr.is_empty() {
|
||||
repr.seq_number = repr.seq_number - 1;
|
||||
repr.payload = b"\x00"; // RFC 1122 says we should do this
|
||||
is_keep_alive = true;
|
||||
} else {
|
||||
is_keep_alive = false;
|
||||
}
|
||||
|
||||
// Trace a summary of what will be sent.
|
||||
if is_keep_alive {
|
||||
net_trace!("[{}]{}:{}: sending a keep-alive",
|
||||
self.debug_id, self.local_endpoint, self.remote_endpoint);
|
||||
} else if repr.payload.len() > 0 {
|
||||
net_trace!("[{}]{}:{}: tx buffer: sending {} octets at offset {}",
|
||||
self.debug_id, self.local_endpoint, self.remote_endpoint,
|
||||
repr.payload.len(), self.remote_last_seq - self.local_seq_no);
|
||||
} else {
|
||||
}
|
||||
if repr.control != TcpControl::None || repr.payload.len() == 0 {
|
||||
let flags =
|
||||
match (repr.control, repr.ack_number) {
|
||||
(TcpControl::Syn, None) => "SYN",
|
||||
|
@ -1331,28 +1349,13 @@ impl<'a> TcpSocket<'a> {
|
|||
(TcpControl::Rst, Some(_)) => "RST|ACK",
|
||||
(TcpControl::Psh, Some(_)) => "PSH|ACK",
|
||||
(TcpControl::None, Some(_)) => "ACK",
|
||||
_ => unreachable!()
|
||||
_ => "<unreachable>"
|
||||
};
|
||||
net_trace!("[{}]{}:{}: sending {}",
|
||||
self.debug_id, self.local_endpoint, self.remote_endpoint,
|
||||
flags);
|
||||
}
|
||||
|
||||
// There might be more than one reason to send a packet. E.g. the keep-alive timer
|
||||
// has expired, and we also have data in transmit buffer. Since any packet that occupies
|
||||
// sequence space will elicit an ACK, we only need to send an explicit packet if we
|
||||
// couldn't fill the sequence space with anything.
|
||||
let is_keep_alive;
|
||||
if self.timer.should_keep_alive(timestamp) && repr.is_empty() {
|
||||
net_trace!("[{}]{}:{}: sending a keep-alive",
|
||||
self.debug_id, self.local_endpoint, self.remote_endpoint);
|
||||
repr.seq_number = repr.seq_number - 1;
|
||||
repr.payload = b"\x00"; // RFC 1122 says we should do this
|
||||
is_keep_alive = true;
|
||||
} else {
|
||||
is_keep_alive = false;
|
||||
}
|
||||
|
||||
if repr.control == TcpControl::Syn {
|
||||
// Fill the MSS option. See RFC 6691 for an explanation of this calculation.
|
||||
let mut max_segment_size = limits.max_transmission_unit;
|
||||
|
|
Loading…
Reference in New Issue