@@ -35,7 +35,7 @@ const CLIENT_CHANNEL_SIZE: usize = 2;
3535#[ derive( Debug , PartialEq , Clone ) ]
3636pub enum IncomingPacket {
3737 /// Data packet with sender's `PublicKey`.
38- Data ( PublicKey , Vec < u8 > ) ,
38+ Data ( PublicKey , DataPayload ) ,
3939 /// Oob packet with sender's `PublicKey`.
4040 Oob ( PublicKey , Vec < u8 > ) ,
4141 /// Onion response packet.
@@ -370,7 +370,7 @@ impl Client {
370370 }
371371
372372 /// Send `Data` packet to a node via relay.
373- pub fn send_data ( & self , destination_pk : PublicKey , data : Vec < u8 > ) -> impl Future < Item = ( ) , Error = Error > + Send {
373+ pub fn send_data ( & self , destination_pk : PublicKey , data : DataPayload ) -> impl Future < Item = ( ) , Error = Error > + Send {
374374 // it is important that the result future succeeds only if packet is
375375 // sent since we take only one successful future from several relays
376376 // when send data packet
@@ -529,6 +529,7 @@ pub mod tests {
529529 use tokio:: net:: TcpListener ;
530530 use tokio:: timer:: Interval ;
531531
532+ use crate :: toxcore:: dht:: packet:: CryptoData ;
532533 use crate :: toxcore:: ip_port:: * ;
533534 use crate :: toxcore:: onion:: packet:: * ;
534535 use crate :: toxcore:: tcp:: server:: { Server , ServerExt } ;
@@ -797,7 +798,10 @@ pub mod tests {
797798 client. links . write ( ) . insert_by_id ( & sender_pk, index) ;
798799 client. links . write ( ) . upgrade ( index) ;
799800
800- let data = vec ! [ 42 ; 123 ] ;
801+ let data = DataPayload :: CryptoData ( CryptoData {
802+ nonce_last_bytes : 42 ,
803+ payload : vec ! [ 42 ; 123 ] ,
804+ } ) ;
801805 let data_packet = Packet :: Data ( Data {
802806 connection_id : ConnectionId :: from_index ( index) ,
803807 data : data. clone ( ) ,
@@ -819,7 +823,10 @@ pub mod tests {
819823
820824 let data_packet = Packet :: Data ( Data {
821825 connection_id : ConnectionId :: from_index ( 42 ) ,
822- data : vec ! [ 42 ; 123 ] ,
826+ data : DataPayload :: CryptoData ( CryptoData {
827+ nonce_last_bytes : 42 ,
828+ payload : vec ! [ 42 ; 123 ] ,
829+ } ) ,
823830 } ) ;
824831
825832 assert ! ( client. handle_packet( data_packet) . wait( ) . is_err( ) ) ;
@@ -836,7 +843,10 @@ pub mod tests {
836843
837844 let data_packet = Packet :: Data ( Data {
838845 connection_id : ConnectionId :: zero ( ) ,
839- data : vec ! [ 42 ; 123 ] ,
846+ data : DataPayload :: CryptoData ( CryptoData {
847+ nonce_last_bytes : 42 ,
848+ payload : vec ! [ 42 ; 123 ] ,
849+ } ) ,
840850 } ) ;
841851
842852 assert ! ( client. handle_packet( data_packet) . wait( ) . is_err( ) ) ;
@@ -892,7 +902,10 @@ pub mod tests {
892902 let ( _incoming_rx, outgoing_rx, client) = create_client ( ) ;
893903
894904 let ( destination_pk, _destination_sk) = gen_keypair ( ) ;
895- let data = vec ! [ 42 ; 123 ] ;
905+ let data = DataPayload :: CryptoData ( CryptoData {
906+ nonce_last_bytes : 42 ,
907+ payload : vec ! [ 42 ; 123 ] ,
908+ } ) ;
896909
897910 let index = 42 ;
898911 client. links . write ( ) . insert_by_id ( & destination_pk, index) ;
@@ -911,7 +924,10 @@ pub mod tests {
911924 let ( _incoming_rx, outgoing_rx, client) = create_client ( ) ;
912925
913926 let ( destination_pk, _destination_sk) = gen_keypair ( ) ;
914- let data = vec ! [ 42 ; 123 ] ;
927+ let data = DataPayload :: CryptoData ( CryptoData {
928+ nonce_last_bytes : 42 ,
929+ payload : vec ! [ 42 ; 123 ] ,
930+ } ) ;
915931
916932 assert ! ( client. send_data( destination_pk, data. clone( ) ) . wait( ) . is_err( ) ) ;
917933
@@ -926,7 +942,10 @@ pub mod tests {
926942 let ( _incoming_rx, outgoing_rx, client) = create_client ( ) ;
927943
928944 let ( destination_pk, _destination_sk) = gen_keypair ( ) ;
929- let data = vec ! [ 42 ; 123 ] ;
945+ let data = DataPayload :: CryptoData ( CryptoData {
946+ nonce_last_bytes : 42 ,
947+ payload : vec ! [ 42 ; 123 ] ,
948+ } ) ;
930949
931950 let connection_id = 42 ;
932951 client. links . write ( ) . insert_by_id ( & destination_pk, connection_id - 16 ) ;
@@ -1185,8 +1204,14 @@ pub mod tests {
11851204 client_1_c. add_connection ( client_pk_2)
11861205 } ) ;
11871206
1188- let data_1 = vec ! [ 42 ; 123 ] ;
1189- let data_2 = vec ! [ 43 ; 123 ] ;
1207+ let data_1 = DataPayload :: CryptoData ( CryptoData {
1208+ nonce_last_bytes : 42 ,
1209+ payload : vec ! [ 42 ; 123 ] ,
1210+ } ) ;
1211+ let data_2 = DataPayload :: CryptoData ( CryptoData {
1212+ nonce_last_bytes : 42 ,
1213+ payload : vec ! [ 43 ; 123 ] ,
1214+ } ) ;
11901215
11911216 // wait until links become online
11921217 let client_1_c = client_1. clone ( ) ;
0 commit comments