@@ -45,18 +45,22 @@ static uint16_t ports[NUM_PORTS] = {13215, 33445, 25643};
4545
4646static  void  test_basic (void )
4747{
48-     Mono_Time  * mono_time  =  mono_time_new (nullptr , nullptr );
4948    const  Random  * rng  =  system_random ();
5049    ck_assert (rng  !=  nullptr );
50+     const  Network  * ns  =  system_network ();
51+     ck_assert (ns  !=  nullptr );
52+     const  Memory  * mem  =  system_memory ();
53+     ck_assert (mem  !=  nullptr );
54+ 
55+     Mono_Time  * mono_time  =  mono_time_new (mem , nullptr , nullptr );
5156    Logger  * logger  =  logger_new ();
5257    logger_callback_log (logger , print_debug_logger , nullptr , nullptr );
5358
5459    // Attempt to create a new TCP_Server instance. 
5560    uint8_t  self_public_key [CRYPTO_PUBLIC_KEY_SIZE ];
5661    uint8_t  self_secret_key [CRYPTO_SECRET_KEY_SIZE ];
5762    crypto_new_keypair (rng , self_public_key , self_secret_key );
58-     const  Network  * ns  =  system_network ();
59-     TCP_Server  * tcp_s  =  new_TCP_server (logger , rng , ns , USE_IPV6 , NUM_PORTS , ports , self_secret_key , nullptr , nullptr );
63+     TCP_Server  * tcp_s  =  new_TCP_server (logger , mem , rng , ns , USE_IPV6 , NUM_PORTS , ports , self_secret_key , nullptr , nullptr );
6064    ck_assert_msg (tcp_s  !=  nullptr , "Failed to create a TCP relay server." );
6165    ck_assert_msg (tcp_server_listen_count (tcp_s ) ==  NUM_PORTS ,
6266                  "Failed to bind a TCP relay server to all %d attempted ports." , NUM_PORTS );
@@ -70,7 +74,7 @@ static void test_basic(void)
7074    for  (uint8_t  i  =  0 ; i  <  NUM_PORTS ; i ++ ) {
7175        sock  =  net_socket (ns , net_family_ipv6 (), TOX_SOCK_STREAM , TOX_PROTO_TCP );
7276        localhost .port  =  net_htons (ports [i ]);
73-         bool  ret  =  net_connect (logger , sock , & localhost );
77+         bool  ret  =  net_connect (mem ,  logger , sock , & localhost );
7478        ck_assert_msg (ret , "Failed to connect to created TCP relay server on port %d (%d)." , ports [i ], errno );
7579
7680        // Leave open one connection for the next test. 
@@ -184,30 +188,32 @@ static void test_basic(void)
184188    kill_TCP_server (tcp_s );
185189
186190    logger_kill (logger );
187-     mono_time_free (mono_time );
191+     mono_time_free (mem ,  mono_time );
188192}
189193
190194struct  sec_TCP_con  {
191195    Socket  sock ;
192196    const  Network  * ns ;
197+     const  Memory  * mem ;
193198    uint8_t  public_key [CRYPTO_PUBLIC_KEY_SIZE ];
194199    uint8_t  recv_nonce [CRYPTO_NONCE_SIZE ];
195200    uint8_t  sent_nonce [CRYPTO_NONCE_SIZE ];
196201    uint8_t  shared_key [CRYPTO_SHARED_KEY_SIZE ];
197202};
198203
199- static  struct  sec_TCP_con  * new_TCP_con (const  Logger  * logger , const  Random  * rng , const  Network  * ns , TCP_Server  * tcp_s , Mono_Time  * mono_time )
204+ static  struct  sec_TCP_con  * new_TCP_con (const  Logger  * logger , const  Memory   * mem ,  const   Random  * rng , const  Network  * ns , TCP_Server  * tcp_s , Mono_Time  * mono_time )
200205{
201206    struct  sec_TCP_con  * sec_c  =  (struct  sec_TCP_con  * )malloc (sizeof (struct  sec_TCP_con ));
202207    ck_assert (sec_c  !=  nullptr );
203208    sec_c -> ns  =  ns ;
209+     sec_c -> mem  =  mem ;
204210    Socket  sock  =  net_socket (ns , net_family_ipv6 (), TOX_SOCK_STREAM , TOX_PROTO_TCP );
205211
206212    IP_Port  localhost ;
207213    localhost .ip  =  get_loopback ();
208214    localhost .port  =  net_htons (ports [random_u32 (rng ) % NUM_PORTS ]);
209215
210-     bool  ok  =  net_connect (logger , sock , & localhost );
216+     bool  ok  =  net_connect (mem ,  logger , sock , & localhost );
211217    ck_assert_msg (ok , "Failed to connect to the test TCP relay server." );
212218
213219    uint8_t  f_secret_key [CRYPTO_SECRET_KEY_SIZE ];
@@ -297,22 +303,26 @@ static int read_packet_sec_TCP(const Logger *logger, struct sec_TCP_con *con, ui
297303
298304static  void  test_some (void )
299305{
300-     Mono_Time  * mono_time  =  mono_time_new (nullptr , nullptr );
301306    const  Random  * rng  =  system_random ();
302307    ck_assert (rng  !=  nullptr );
303-     Logger  * logger  =  logger_new ();
304308    const  Network  * ns  =  system_network ();
309+     ck_assert (ns  !=  nullptr );
310+     const  Memory  * mem  =  system_memory ();
311+     ck_assert (mem  !=  nullptr );
312+ 
313+     Mono_Time  * mono_time  =  mono_time_new (mem , nullptr , nullptr );
314+     Logger  * logger  =  logger_new ();
305315
306316    uint8_t  self_public_key [CRYPTO_PUBLIC_KEY_SIZE ];
307317    uint8_t  self_secret_key [CRYPTO_SECRET_KEY_SIZE ];
308318    crypto_new_keypair (rng , self_public_key , self_secret_key );
309-     TCP_Server  * tcp_s  =  new_TCP_server (logger , rng , ns , USE_IPV6 , NUM_PORTS , ports , self_secret_key , nullptr , nullptr );
319+     TCP_Server  * tcp_s  =  new_TCP_server (logger , mem ,  rng , ns , USE_IPV6 , NUM_PORTS , ports , self_secret_key , nullptr , nullptr );
310320    ck_assert_msg (tcp_s  !=  nullptr , "Failed to create TCP relay server" );
311321    ck_assert_msg (tcp_server_listen_count (tcp_s ) ==  NUM_PORTS , "Failed to bind to all ports." );
312322
313-     struct  sec_TCP_con  * con1  =  new_TCP_con (logger , rng , ns , tcp_s , mono_time );
314-     struct  sec_TCP_con  * con2  =  new_TCP_con (logger , rng , ns , tcp_s , mono_time );
315-     struct  sec_TCP_con  * con3  =  new_TCP_con (logger , rng , ns , tcp_s , mono_time );
323+     struct  sec_TCP_con  * con1  =  new_TCP_con (logger , mem ,  rng , ns , tcp_s , mono_time );
324+     struct  sec_TCP_con  * con2  =  new_TCP_con (logger , mem ,  rng , ns , tcp_s , mono_time );
325+     struct  sec_TCP_con  * con3  =  new_TCP_con (logger , mem ,  rng , ns , tcp_s , mono_time );
316326
317327    uint8_t  requ_p [1  +  CRYPTO_PUBLIC_KEY_SIZE ];
318328    requ_p [0 ] =  TCP_PACKET_ROUTING_REQUEST ;
@@ -402,7 +412,7 @@ static void test_some(void)
402412    kill_TCP_con (con3 );
403413
404414    logger_kill (logger );
405-     mono_time_free (mono_time );
415+     mono_time_free (mem ,  mono_time );
406416}
407417
408418static  int  response_callback_good ;
@@ -488,16 +498,20 @@ static int oob_data_callback(void *object, const uint8_t *public_key, const uint
488498
489499static  void  test_client (void )
490500{
491-     Mono_Time  * mono_time  =  mono_time_new (nullptr , nullptr );
492501    const  Random  * rng  =  system_random ();
493502    ck_assert (rng  !=  nullptr );
503+     const  Network  * ns  =  system_network ();
504+     ck_assert (ns  !=  nullptr );
505+     const  Memory  * mem  =  system_memory ();
506+     ck_assert (mem  !=  nullptr );
507+ 
494508    Logger  * logger  =  logger_new ();
509+     Mono_Time  * mono_time  =  mono_time_new (mem , nullptr , nullptr );
495510
496511    uint8_t  self_public_key [CRYPTO_PUBLIC_KEY_SIZE ];
497512    uint8_t  self_secret_key [CRYPTO_SECRET_KEY_SIZE ];
498513    crypto_new_keypair (rng , self_public_key , self_secret_key );
499-     const  Network  * ns  =  system_network ();
500-     TCP_Server  * tcp_s  =  new_TCP_server (logger , rng , ns , USE_IPV6 , NUM_PORTS , ports , self_secret_key , nullptr , nullptr );
514+     TCP_Server  * tcp_s  =  new_TCP_server (logger , mem , rng , ns , USE_IPV6 , NUM_PORTS , ports , self_secret_key , nullptr , nullptr );
501515    ck_assert_msg (tcp_s  !=  nullptr , "Failed to create a TCP relay server." );
502516    ck_assert_msg (tcp_server_listen_count (tcp_s ) ==  NUM_PORTS , "Failed to bind the relay server to all ports." );
503517
@@ -509,8 +523,7 @@ static void test_client(void)
509523    ip_port_tcp_s .port  =  net_htons (ports [random_u32 (rng ) % NUM_PORTS ]);
510524    ip_port_tcp_s .ip  =  get_loopback ();
511525
512-     TCP_Client_Connection  * conn  =  new_TCP_connection (logger , mono_time , rng , ns , & ip_port_tcp_s , self_public_key , f_public_key ,
513-                                   f_secret_key , nullptr );
526+     TCP_Client_Connection  * conn  =  new_TCP_connection (logger , mem , mono_time , rng , ns , & ip_port_tcp_s , self_public_key , f_public_key , f_secret_key , nullptr );
514527    do_TCP_connection (logger , mono_time , conn , nullptr );
515528    c_sleep (50 );
516529
@@ -544,7 +557,7 @@ static void test_client(void)
544557    uint8_t  f2_secret_key [CRYPTO_SECRET_KEY_SIZE ];
545558    crypto_new_keypair (rng , f2_public_key , f2_secret_key );
546559    ip_port_tcp_s .port  =  net_htons (ports [random_u32 (rng ) % NUM_PORTS ]);
547-     TCP_Client_Connection  * conn2  =  new_TCP_connection (logger , mono_time , rng , ns , & ip_port_tcp_s , self_public_key , f2_public_key ,
560+     TCP_Client_Connection  * conn2  =  new_TCP_connection (logger , mem ,  mono_time , rng , ns , & ip_port_tcp_s , self_public_key , f2_public_key ,
548561                                   f2_secret_key , nullptr );
549562
550563    // The client should call this function (defined earlier) during the routing process. 
@@ -613,17 +626,21 @@ static void test_client(void)
613626    kill_TCP_connection (conn2 );
614627
615628    logger_kill (logger );
616-     mono_time_free (mono_time );
629+     mono_time_free (mem ,  mono_time );
617630}
618631
619632// Test how the client handles servers that don't respond. 
620633static  void  test_client_invalid (void )
621634{
622-     Mono_Time  * mono_time  =  mono_time_new (nullptr , nullptr );
623635    const  Random  * rng  =  system_random ();
624636    ck_assert (rng  !=  nullptr );
625-     Logger  * logger  =  logger_new ();
626637    const  Network  * ns  =  system_network ();
638+     ck_assert (ns  !=  nullptr );
639+     const  Memory  * mem  =  system_memory ();
640+     ck_assert (mem  !=  nullptr );
641+ 
642+     Mono_Time  * mono_time  =  mono_time_new (mem , nullptr , nullptr );
643+     Logger  * logger  =  logger_new ();
627644
628645    uint8_t  self_public_key [CRYPTO_PUBLIC_KEY_SIZE ];
629646    uint8_t  self_secret_key [CRYPTO_SECRET_KEY_SIZE ];
@@ -636,7 +653,7 @@ static void test_client_invalid(void)
636653
637654    ip_port_tcp_s .port  =  net_htons (ports [random_u32 (rng ) % NUM_PORTS ]);
638655    ip_port_tcp_s .ip  =  get_loopback ();
639-     TCP_Client_Connection  * conn  =  new_TCP_connection (logger , mono_time , rng , ns , & ip_port_tcp_s ,
656+     TCP_Client_Connection  * conn  =  new_TCP_connection (logger , mem ,  mono_time , rng , ns , & ip_port_tcp_s ,
640657                                                     self_public_key , f_public_key , f_secret_key , nullptr );
641658
642659    // Run the client's main loop but not the server. 
@@ -663,7 +680,7 @@ static void test_client_invalid(void)
663680    kill_TCP_connection (conn );
664681
665682    logger_kill (logger );
666-     mono_time_free (mono_time );
683+     mono_time_free (mem ,  mono_time );
667684}
668685
669686#include  "../toxcore/TCP_connection.h" 
@@ -694,27 +711,31 @@ static int tcp_data_callback(void *object, int id, const uint8_t *data, uint16_t
694711
695712static  void  test_tcp_connection (void )
696713{
697-     Mono_Time  * mono_time  =  mono_time_new (nullptr , nullptr );
698-     Logger  * logger  =  logger_new ();
699714    const  Random  * rng  =  system_random ();
700715    ck_assert (rng  !=  nullptr );
701716    const  Network  * ns  =  system_network ();
717+     ck_assert (ns  !=  nullptr );
718+     const  Memory  * mem  =  system_memory ();
719+     ck_assert (mem  !=  nullptr );
720+ 
721+     Mono_Time  * mono_time  =  mono_time_new (mem , nullptr , nullptr );
722+     Logger  * logger  =  logger_new ();
702723
703724    tcp_data_callback_called  =  0 ;
704725    uint8_t  self_public_key [CRYPTO_PUBLIC_KEY_SIZE ];
705726    uint8_t  self_secret_key [CRYPTO_SECRET_KEY_SIZE ];
706727    crypto_new_keypair (rng , self_public_key , self_secret_key );
707-     TCP_Server  * tcp_s  =  new_TCP_server (logger , rng , ns , USE_IPV6 , NUM_PORTS , ports , self_secret_key , nullptr , nullptr );
728+     TCP_Server  * tcp_s  =  new_TCP_server (logger , mem ,  rng , ns , USE_IPV6 , NUM_PORTS , ports , self_secret_key , nullptr , nullptr );
708729    ck_assert_msg (pk_equal (tcp_server_public_key (tcp_s ), self_public_key ), "Wrong public key" );
709730
710731    TCP_Proxy_Info  proxy_info ;
711732    proxy_info .proxy_type  =  TCP_PROXY_NONE ;
712733    crypto_new_keypair (rng , self_public_key , self_secret_key );
713-     TCP_Connections  * tc_1  =  new_tcp_connections (logger , rng , ns , mono_time , self_secret_key , & proxy_info );
734+     TCP_Connections  * tc_1  =  new_tcp_connections (logger , mem ,  rng , ns , mono_time , self_secret_key , & proxy_info );
714735    ck_assert_msg (pk_equal (tcp_connections_public_key (tc_1 ), self_public_key ), "Wrong public key" );
715736
716737    crypto_new_keypair (rng , self_public_key , self_secret_key );
717-     TCP_Connections  * tc_2  =  new_tcp_connections (logger , rng , ns , mono_time , self_secret_key , & proxy_info );
738+     TCP_Connections  * tc_2  =  new_tcp_connections (logger , mem ,  rng , ns , mono_time , self_secret_key , & proxy_info );
718739    ck_assert_msg (pk_equal (tcp_connections_public_key (tc_2 ), self_public_key ), "Wrong public key" );
719740
720741    IP_Port  ip_port_tcp_s ;
@@ -777,7 +798,7 @@ static void test_tcp_connection(void)
777798    kill_tcp_connections (tc_2 );
778799
779800    logger_kill (logger );
780-     mono_time_free (mono_time );
801+     mono_time_free (mem ,  mono_time );
781802}
782803
783804static  bool  tcp_oobdata_callback_called ;
@@ -803,29 +824,33 @@ static int tcp_oobdata_callback(void *object, const uint8_t *public_key, unsigne
803824
804825static  void  test_tcp_connection2 (void )
805826{
806-     Mono_Time  * mono_time  =  mono_time_new (nullptr , nullptr );
807-     Logger  * logger  =  logger_new ();
808827    const  Random  * rng  =  system_random ();
809828    ck_assert (rng  !=  nullptr );
810829    const  Network  * ns  =  system_network ();
830+     ck_assert (ns  !=  nullptr );
831+     const  Memory  * mem  =  system_memory ();
832+     ck_assert (mem  !=  nullptr );
833+ 
834+     Mono_Time  * mono_time  =  mono_time_new (mem , nullptr , nullptr );
835+     Logger  * logger  =  logger_new ();
811836
812837    tcp_oobdata_callback_called  =  0 ;
813838    tcp_data_callback_called  =  0 ;
814839
815840    uint8_t  self_public_key [CRYPTO_PUBLIC_KEY_SIZE ];
816841    uint8_t  self_secret_key [CRYPTO_SECRET_KEY_SIZE ];
817842    crypto_new_keypair (rng , self_public_key , self_secret_key );
818-     TCP_Server  * tcp_s  =  new_TCP_server (logger , rng , ns , USE_IPV6 , NUM_PORTS , ports , self_secret_key , nullptr , nullptr );
843+     TCP_Server  * tcp_s  =  new_TCP_server (logger , mem ,  rng , ns , USE_IPV6 , NUM_PORTS , ports , self_secret_key , nullptr , nullptr );
819844    ck_assert_msg (pk_equal (tcp_server_public_key (tcp_s ), self_public_key ), "Wrong public key" );
820845
821846    TCP_Proxy_Info  proxy_info ;
822847    proxy_info .proxy_type  =  TCP_PROXY_NONE ;
823848    crypto_new_keypair (rng , self_public_key , self_secret_key );
824-     TCP_Connections  * tc_1  =  new_tcp_connections (logger , rng , ns , mono_time , self_secret_key , & proxy_info );
849+     TCP_Connections  * tc_1  =  new_tcp_connections (logger , mem ,  rng , ns , mono_time , self_secret_key , & proxy_info );
825850    ck_assert_msg (pk_equal (tcp_connections_public_key (tc_1 ), self_public_key ), "Wrong public key" );
826851
827852    crypto_new_keypair (rng , self_public_key , self_secret_key );
828-     TCP_Connections  * tc_2  =  new_tcp_connections (logger , rng , ns , mono_time , self_secret_key , & proxy_info );
853+     TCP_Connections  * tc_2  =  new_tcp_connections (logger , mem ,  rng , ns , mono_time , self_secret_key , & proxy_info );
829854    ck_assert_msg (pk_equal (tcp_connections_public_key (tc_2 ), self_public_key ), "Wrong public key" );
830855
831856    IP_Port  ip_port_tcp_s ;
@@ -881,7 +906,7 @@ static void test_tcp_connection2(void)
881906    kill_tcp_connections (tc_2 );
882907
883908    logger_kill (logger );
884-     mono_time_free (mono_time );
909+     mono_time_free (mem ,  mono_time );
885910}
886911
887912static  void  TCP_suite (void )
0 commit comments