Make sure representation emission covers every octet of the buffer.
Also fix a bug where TcpRepr::emit would not clear the urgent pointer.
This commit is contained in:
parent
050dd788c1
commit
0f0c545755
|
@ -392,7 +392,7 @@ mod test {
|
|||
|
||||
#[test]
|
||||
fn test_construct() {
|
||||
let mut bytes = vec![0; 28];
|
||||
let mut bytes = vec![0xa5; 28];
|
||||
let mut packet = Packet::new(&mut bytes);
|
||||
packet.set_hardware_type(Hardware::Ethernet);
|
||||
packet.set_protocol_type(Protocol::Ipv4);
|
||||
|
@ -429,7 +429,7 @@ mod test {
|
|||
|
||||
#[test]
|
||||
fn test_emit() {
|
||||
let mut bytes = vec![0; 28];
|
||||
let mut bytes = vec![0xa5; 28];
|
||||
let mut packet = Packet::new(&mut bytes);
|
||||
packet_repr().emit(&mut packet);
|
||||
assert_eq!(&packet.into_inner()[..], &PACKET_BYTES[..]);
|
||||
|
|
|
@ -262,7 +262,7 @@ mod test {
|
|||
|
||||
#[test]
|
||||
fn test_construct() {
|
||||
let mut bytes = vec![0; 64];
|
||||
let mut bytes = vec![0xa5; 64];
|
||||
let mut frame = Frame::new(&mut bytes);
|
||||
frame.set_dst_addr(Address([0x01, 0x02, 0x03, 0x04, 0x05, 0x06]));
|
||||
frame.set_src_addr(Address([0x11, 0x12, 0x13, 0x14, 0x15, 0x16]));
|
||||
|
|
|
@ -558,7 +558,7 @@ mod test {
|
|||
|
||||
#[test]
|
||||
fn test_echo_construct() {
|
||||
let mut bytes = vec![0; 12];
|
||||
let mut bytes = vec![0xa5; 12];
|
||||
let mut packet = Packet::new(&mut bytes);
|
||||
packet.set_msg_type(Message::EchoRequest);
|
||||
packet.set_msg_code(0);
|
||||
|
@ -587,7 +587,7 @@ mod test {
|
|||
#[test]
|
||||
fn test_echo_emit() {
|
||||
let repr = echo_packet_repr();
|
||||
let mut bytes = vec![0; repr.buffer_len()];
|
||||
let mut bytes = vec![0xa5; repr.buffer_len()];
|
||||
let mut packet = Packet::new(&mut bytes);
|
||||
repr.emit(&mut packet);
|
||||
assert_eq!(&packet.into_inner()[..], &ECHO_PACKET_BYTES[..]);
|
||||
|
|
|
@ -590,10 +590,11 @@ mod test {
|
|||
|
||||
#[test]
|
||||
fn test_construct() {
|
||||
let mut bytes = vec![0; 30];
|
||||
let mut bytes = vec![0xa5; 30];
|
||||
let mut packet = Packet::new(&mut bytes);
|
||||
packet.set_version(4);
|
||||
packet.set_header_len(20);
|
||||
packet.clear_flags();
|
||||
packet.set_dscp(0);
|
||||
packet.set_ecn(0);
|
||||
packet.set_total_len(30);
|
||||
|
@ -651,7 +652,7 @@ mod test {
|
|||
#[test]
|
||||
fn test_emit() {
|
||||
let repr = packet_repr();
|
||||
let mut bytes = vec![0; repr.buffer_len() + REPR_PAYLOAD_BYTES.len()];
|
||||
let mut bytes = vec![0xa5; repr.buffer_len() + REPR_PAYLOAD_BYTES.len()];
|
||||
let mut packet = Packet::new(&mut bytes);
|
||||
repr.emit(&mut packet);
|
||||
packet.payload_mut().copy_from_slice(&REPR_PAYLOAD_BYTES);
|
||||
|
|
|
@ -723,6 +723,7 @@ impl<'a> Repr<'a> {
|
|||
TcpOption::EndOfList.emit(options);
|
||||
}
|
||||
}
|
||||
packet.set_urgent_at(0);
|
||||
packet.payload_mut().copy_from_slice(self.payload);
|
||||
packet.fill_checksum(src_addr, dst_addr)
|
||||
}
|
||||
|
@ -858,13 +859,14 @@ mod test {
|
|||
|
||||
#[test]
|
||||
fn test_construct() {
|
||||
let mut bytes = vec![0; PACKET_BYTES.len()];
|
||||
let mut bytes = vec![0xa5; PACKET_BYTES.len()];
|
||||
let mut packet = Packet::new(&mut bytes);
|
||||
packet.set_src_port(48896);
|
||||
packet.set_dst_port(80);
|
||||
packet.set_seq_number(SeqNumber(0x01234567));
|
||||
packet.set_ack_number(SeqNumber(0x89abcdefu32 as i32));
|
||||
packet.set_header_len(24);
|
||||
packet.clear_flags();
|
||||
packet.set_fin(true);
|
||||
packet.set_syn(false);
|
||||
packet.set_rst(true);
|
||||
|
@ -926,7 +928,7 @@ mod test {
|
|||
#[test]
|
||||
fn test_emit() {
|
||||
let repr = packet_repr();
|
||||
let mut bytes = vec![0; repr.buffer_len()];
|
||||
let mut bytes = vec![0xa5; repr.buffer_len()];
|
||||
let mut packet = Packet::new(&mut bytes);
|
||||
repr.emit(&mut packet, &SRC_ADDR.into(), &DST_ADDR.into());
|
||||
assert_eq!(&packet.into_inner()[..], &SYN_PACKET_BYTES[..]);
|
||||
|
|
|
@ -298,7 +298,7 @@ mod test {
|
|||
|
||||
#[test]
|
||||
fn test_construct() {
|
||||
let mut bytes = vec![0; 12];
|
||||
let mut bytes = vec![0xa5; 12];
|
||||
let mut packet = Packet::new(&mut bytes);
|
||||
packet.set_src_port(48896);
|
||||
packet.set_dst_port(53);
|
||||
|
@ -335,7 +335,7 @@ mod test {
|
|||
#[test]
|
||||
fn test_emit() {
|
||||
let repr = packet_repr();
|
||||
let mut bytes = vec![0; repr.buffer_len()];
|
||||
let mut bytes = vec![0xa5; repr.buffer_len()];
|
||||
let mut packet = Packet::new(&mut bytes);
|
||||
repr.emit(&mut packet, &SRC_ADDR.into(), &DST_ADDR.into());
|
||||
assert_eq!(&packet.into_inner()[..], &PACKET_BYTES[..]);
|
||||
|
|
Loading…
Reference in New Issue