Commit 2462e3e 1 parent 426c2c3 commit 2462e3e Copy full SHA for 2462e3e
File tree 1 file changed +22
-0
lines changed
1 file changed +22
-0
lines changed Original file line number Diff line number Diff line change @@ -1248,6 +1248,28 @@ pub(crate) mod tests {
1248
1248
) ) ;
1249
1249
}
1250
1250
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
+
1251
1273
#[ test]
1252
1274
fn request_cancel ( ) {
1253
1275
let local_addr = "10.0.0.1:12345" . parse ( ) . unwrap ( ) ;
You can’t perform that action at this time.
0 commit comments