Skip to content

Commit 2462e3e

Browse files
committed
agent/tests: add test for split TCP packets receive
1 parent 426c2c3 commit 2462e3e

File tree

1 file changed

+22
-0
lines changed

1 file changed

+22
-0
lines changed

stun-proto/src/agent.rs

+22
Original file line numberDiff line numberDiff line change
@@ -1248,6 +1248,28 @@ pub(crate) mod tests {
12481248
));
12491249
}
12501250

1251+
#[test]
1252+
fn tcp_split_recv() {
1253+
init();
1254+
let local_addr = "127.0.0.1:2000".parse().unwrap();
1255+
let remote_addr = "127.0.0.1:1000".parse().unwrap();
1256+
let mut agent = StunAgent::builder(TransportType::Tcp, local_addr)
1257+
.remote_addr(remote_addr)
1258+
.build();
1259+
let msg = Message::new_request(BINDING);
1260+
1261+
let msg_data = msg.to_bytes();
1262+
let mut data = Vec::with_capacity(msg_data.len() + 2);
1263+
data.resize(2, 0);
1264+
BigEndian::write_u16(&mut data[..2], msg_data.len() as u16);
1265+
data.extend(msg_data);
1266+
1267+
let ret = agent.handle_incoming_data(&data[..8], remote_addr).unwrap();
1268+
assert!(ret.is_empty());
1269+
let ret = agent.handle_incoming_data(&data[8..], remote_addr).unwrap();
1270+
assert!(matches!(ret[0], HandleStunReply::IncomingStun(_)));
1271+
}
1272+
12511273
#[test]
12521274
fn request_cancel() {
12531275
let local_addr = "10.0.0.1:12345".parse().unwrap();

0 commit comments

Comments
 (0)