aboutsummaryrefslogtreecommitdiff
path: root/src/testing/test_testing_large_topology.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/testing/test_testing_large_topology.c')
-rw-r--r--src/testing/test_testing_large_topology.c190
1 files changed, 79 insertions, 111 deletions
diff --git a/src/testing/test_testing_large_topology.c b/src/testing/test_testing_large_topology.c
index 62922e9e8..9581dc9b2 100644
--- a/src/testing/test_testing_large_topology.c
+++ b/src/testing/test_testing_large_topology.c
@@ -185,9 +185,9 @@ gather_log_data ()
185 185
186 GNUNET_asprintf (&peer_number, "%llu", num_peers); 186 GNUNET_asprintf (&peer_number, "%llu", num_peers);
187 GNUNET_asprintf (&connect_number, "%llu", expected_connections); 187 GNUNET_asprintf (&connect_number, "%llu", expected_connections);
188 mem_process = GNUNET_OS_start_process (NULL, NULL, "./memsize.pl", 188 mem_process =
189 "memsize.pl", "totals.txt", 189 GNUNET_OS_start_process (NULL, NULL, "./memsize.pl", "memsize.pl",
190 peer_number, connect_number, NULL); 190 "totals.txt", peer_number, connect_number, NULL);
191 GNUNET_OS_process_wait (mem_process); 191 GNUNET_OS_process_wait (mem_process);
192 GNUNET_OS_process_close (mem_process); 192 GNUNET_OS_process_close (mem_process);
193 mem_process = NULL; 193 mem_process = NULL;
@@ -257,15 +257,13 @@ disconnect_cores (void *cls, const struct GNUNET_SCHEDULER_TaskContext *tc)
257 257
258 /* Disconnect from the respective cores */ 258 /* Disconnect from the respective cores */
259#if VERBOSE > 1 259#if VERBOSE > 1
260 GNUNET_log (GNUNET_ERROR_TYPE_DEBUG, 260 GNUNET_log (GNUNET_ERROR_TYPE_DEBUG, "Disconnecting from peer 1 `%4s'\n",
261 "Disconnecting from peer 1 `%4s'\n",
262 GNUNET_i2s (&pos->peer1->id)); 261 GNUNET_i2s (&pos->peer1->id));
263#endif 262#endif
264 if (pos->peer1handle != NULL) 263 if (pos->peer1handle != NULL)
265 GNUNET_CORE_disconnect (pos->peer1handle); 264 GNUNET_CORE_disconnect (pos->peer1handle);
266#if VERBOSE > 1 265#if VERBOSE > 1
267 GNUNET_log (GNUNET_ERROR_TYPE_DEBUG, 266 GNUNET_log (GNUNET_ERROR_TYPE_DEBUG, "Disconnecting from peer 2 `%4s'\n",
268 "Disconnecting from peer 2 `%4s'\n",
269 GNUNET_i2s (&pos->peer2->id)); 267 GNUNET_i2s (&pos->peer2->id));
270#endif 268#endif
271 if (pos->peer2handle != NULL) 269 if (pos->peer2handle != NULL)
@@ -280,8 +278,7 @@ disconnect_cores (void *cls, const struct GNUNET_SCHEDULER_TaskContext *tc)
280 278
281 279
282static void 280static void
283topology_cb (void *cls, 281topology_cb (void *cls, const struct GNUNET_PeerIdentity *first,
284 const struct GNUNET_PeerIdentity *first,
285 const struct GNUNET_PeerIdentity *second, const char *emsg) 282 const struct GNUNET_PeerIdentity *second, const char *emsg)
286{ 283{
287 FILE *outfile = cls; 284 FILE *outfile = cls;
@@ -310,8 +307,7 @@ topology_cb (void *cls,
310} 307}
311 308
312static int 309static int
313process_mtype (void *cls, 310process_mtype (void *cls, const struct GNUNET_PeerIdentity *peer,
314 const struct GNUNET_PeerIdentity *peer,
315 const struct GNUNET_MessageHeader *message, 311 const struct GNUNET_MessageHeader *message,
316 const struct GNUNET_TRANSPORT_ATS_Information *atsi) 312 const struct GNUNET_TRANSPORT_ATS_Information *atsi)
317{ 313{
@@ -330,8 +326,8 @@ process_mtype (void *cls,
330 fprintf (stdout, "0%%"); 326 fprintf (stdout, "0%%");
331 else 327 else
332 fprintf (stdout, "%d%%", 328 fprintf (stdout, "%d%%",
333 (int) (((float) total_messages_received / 329 (int) (((float) total_messages_received / expected_messages) *
334 expected_messages) * 100)); 330 100));
335 331
336 } 332 }
337 else if (total_messages_received % dotnum == 0) 333 else if (total_messages_received % dotnum == 0)
@@ -462,8 +458,7 @@ static struct GNUNET_CORE_MessageHandler handlers[] = {
462}; 458};
463 459
464static void 460static void
465init_notify_peer2 (void *cls, 461init_notify_peer2 (void *cls, struct GNUNET_CORE_Handle *server,
466 struct GNUNET_CORE_Handle *server,
467 const struct GNUNET_PeerIdentity *my_identity, 462 const struct GNUNET_PeerIdentity *my_identity,
468 const struct GNUNET_CRYPTO_RsaPublicKeyBinaryEncoded 463 const struct GNUNET_CRYPTO_RsaPublicKeyBinaryEncoded
469 *publicKey) 464 *publicKey)
@@ -481,13 +476,11 @@ init_notify_peer2 (void *cls,
481 GNUNET_i2s (my_identity), 476 GNUNET_i2s (my_identity),
482 GNUNET_h2s (&pos->peer1->id.hashPubKey)); 477 GNUNET_h2s (&pos->peer1->id.hashPubKey));
483#endif 478#endif
484 if (NULL == GNUNET_CORE_notify_transmit_ready (pos->peer1handle, 479 if (NULL ==
485 0, 480 GNUNET_CORE_notify_transmit_ready (pos->peer1handle, 0, timeout,
486 timeout, 481 &pos->peer2->id,
487 &pos->peer2->id, 482 sizeof (struct GNUNET_TestMessage),
488 sizeof (struct 483 &transmit_ready, pos))
489 GNUNET_TestMessage),
490 &transmit_ready, pos))
491 { 484 {
492 GNUNET_log (GNUNET_ERROR_TYPE_DEBUG, 485 GNUNET_log (GNUNET_ERROR_TYPE_DEBUG,
493 "RECEIVED NULL when asking core (1) for transmission to peer `%4s'\n", 486 "RECEIVED NULL when asking core (1) for transmission to peer `%4s'\n",
@@ -509,9 +502,7 @@ init_notify_peer2 (void *cls,
509 * @param atsi performance data for the connection 502 * @param atsi performance data for the connection
510 */ 503 */
511static void 504static void
512connect_notify_peers (void *cls, 505connect_notify_peers (void *cls, const struct GNUNET_PeerIdentity *peer,
513 const struct
514 GNUNET_PeerIdentity *peer,
515 const struct GNUNET_TRANSPORT_ATS_Information *atsi) 506 const struct GNUNET_TRANSPORT_ATS_Information *atsi)
516{ 507{
517 struct TestMessageContext *pos = cls; 508 struct TestMessageContext *pos = cls;
@@ -536,13 +527,11 @@ connect_notify_peers (void *cls,
536 GNUNET_i2s (&pos->peer2->id), 527 GNUNET_i2s (&pos->peer2->id),
537 GNUNET_h2s (&pos->peer1->id.hashPubKey)); 528 GNUNET_h2s (&pos->peer1->id.hashPubKey));
538#endif 529#endif
539 if (NULL == GNUNET_CORE_notify_transmit_ready (pos->peer1handle, 530 if (NULL ==
540 0, 531 GNUNET_CORE_notify_transmit_ready (pos->peer1handle, 0, timeout,
541 timeout, 532 &pos->peer2->id,
542 &pos->peer2->id, 533 sizeof (struct GNUNET_TestMessage),
543 sizeof (struct 534 &transmit_ready, pos))
544 GNUNET_TestMessage),
545 &transmit_ready, pos))
546 { 535 {
547 GNUNET_log (GNUNET_ERROR_TYPE_DEBUG, 536 GNUNET_log (GNUNET_ERROR_TYPE_DEBUG,
548 "RECEIVED NULL when asking core (1) for transmission to peer `%4s'\n", 537 "RECEIVED NULL when asking core (1) for transmission to peer `%4s'\n",
@@ -557,8 +546,7 @@ connect_notify_peers (void *cls,
557} 546}
558 547
559static void 548static void
560init_notify_peer1 (void *cls, 549init_notify_peer1 (void *cls, struct GNUNET_CORE_Handle *server,
561 struct GNUNET_CORE_Handle *server,
562 const struct GNUNET_PeerIdentity *my_identity, 550 const struct GNUNET_PeerIdentity *my_identity,
563 const struct GNUNET_CRYPTO_RsaPublicKeyBinaryEncoded 551 const struct GNUNET_CRYPTO_RsaPublicKeyBinaryEncoded
564 *publicKey) 552 *publicKey)
@@ -576,15 +564,10 @@ init_notify_peer1 (void *cls,
576 /* 564 /*
577 * Connect to the receiving peer 565 * Connect to the receiving peer
578 */ 566 */
579 pos->peer2handle = GNUNET_CORE_connect (pos->peer2->cfg, 567 pos->peer2handle =
580 1, 568 GNUNET_CORE_connect (pos->peer2->cfg, 1, pos, &init_notify_peer2, NULL,
581 pos, 569 NULL, NULL, NULL, GNUNET_YES, NULL, GNUNET_YES,
582 &init_notify_peer2, 570 handlers);
583 NULL,
584 NULL,
585 NULL, NULL,
586 GNUNET_YES, NULL, GNUNET_YES,
587 handlers);
588 571
589} 572}
590 573
@@ -604,9 +587,9 @@ send_test_messages (void *cls, const struct GNUNET_SCHEDULER_TaskContext *tc)
604 587
605 if (die_task == GNUNET_SCHEDULER_NO_TASK) 588 if (die_task == GNUNET_SCHEDULER_NO_TASK)
606 { 589 {
607 die_task = GNUNET_SCHEDULER_add_delayed (test_timeout, 590 die_task =
608 &end_badly, 591 GNUNET_SCHEDULER_add_delayed (test_timeout, &end_badly,
609 "from send test messages (timeout)"); 592 "from send test messages (timeout)");
610 } 593 }
611 594
612 if (total_server_connections >= MAX_OUTSTANDING_CONNECTIONS) 595 if (total_server_connections >= MAX_OUTSTANDING_CONNECTIONS)
@@ -620,15 +603,10 @@ send_test_messages (void *cls, const struct GNUNET_SCHEDULER_TaskContext *tc)
620 /* 603 /*
621 * Connect to the sending peer 604 * Connect to the sending peer
622 */ 605 */
623 pos->peer1handle = GNUNET_CORE_connect (pos->peer1->cfg, 606 pos->peer1handle =
624 1, 607 GNUNET_CORE_connect (pos->peer1->cfg, 1, pos, &init_notify_peer1,
625 pos, 608 &connect_notify_peers, NULL, NULL, NULL, GNUNET_NO,
626 &init_notify_peer1, 609 NULL, GNUNET_NO, no_handlers);
627 &connect_notify_peers, NULL,
628 NULL,
629 NULL,
630 GNUNET_NO, NULL, GNUNET_NO,
631 no_handlers);
632 610
633 GNUNET_assert (pos->peer1handle != NULL); 611 GNUNET_assert (pos->peer1handle != NULL);
634 612
@@ -646,10 +624,8 @@ send_test_messages (void *cls, const struct GNUNET_SCHEDULER_TaskContext *tc)
646 624
647 625
648void 626void
649topology_callback (void *cls, 627topology_callback (void *cls, const struct GNUNET_PeerIdentity *first,
650 const struct GNUNET_PeerIdentity *first, 628 const struct GNUNET_PeerIdentity *second, uint32_t distance,
651 const struct GNUNET_PeerIdentity *second,
652 uint32_t distance,
653 const struct GNUNET_CONFIGURATION_Handle *first_cfg, 629 const struct GNUNET_CONFIGURATION_Handle *first_cfg,
654 const struct GNUNET_CONFIGURATION_Handle *second_cfg, 630 const struct GNUNET_CONFIGURATION_Handle *second_cfg,
655 struct GNUNET_TESTING_Daemon *first_daemon, 631 struct GNUNET_TESTING_Daemon *first_daemon,
@@ -667,8 +643,8 @@ topology_callback (void *cls,
667 fprintf (stdout, "0%%"); 643 fprintf (stdout, "0%%");
668 else 644 else
669 fprintf (stdout, "%d%%", 645 fprintf (stdout, "%d%%",
670 (int) (((float) total_connections / 646 (int) (((float) total_connections / expected_connections) *
671 expected_connections) * 100)); 647 100));
672 648
673 } 649 }
674 else if (total_connections % dotnum == 0) 650 else if (total_connections % dotnum == 0)
@@ -787,12 +763,11 @@ connect_topology ()
787 GNUNET_TESTING_connect_topology (pg, connection_topology, 763 GNUNET_TESTING_connect_topology (pg, connection_topology,
788 connect_topology_option, 764 connect_topology_option,
789 connect_topology_option_modifier, 765 connect_topology_option_modifier,
790 connect_timeout, 766 connect_timeout, connect_attempts,
791 connect_attempts,
792 &topology_creation_finished, NULL); 767 &topology_creation_finished, NULL);
793#if VERBOSE > 1 768#if VERBOSE > 1
794 GNUNET_log (GNUNET_ERROR_TYPE_DEBUG, 769 GNUNET_log (GNUNET_ERROR_TYPE_DEBUG, "Have %d expected connections\n",
795 "Have %d expected connections\n", expected_connections); 770 expected_connections);
796#endif 771#endif
797 } 772 }
798 773
@@ -804,9 +779,9 @@ connect_topology ()
804 "from connect topology (bad return)"); 779 "from connect topology (bad return)");
805 } 780 }
806 781
807 die_task = GNUNET_SCHEDULER_add_delayed (test_timeout, 782 die_task =
808 &end_badly, 783 GNUNET_SCHEDULER_add_delayed (test_timeout, &end_badly,
809 "from connect topology (timeout)"); 784 "from connect topology (timeout)");
810 modnum = expected_connections / 4; 785 modnum = expected_connections / 4;
811 dotnum = (expected_connections / 50) + 1; 786 dotnum = (expected_connections / 50) + 1;
812#if VERBOSE 787#if VERBOSE
@@ -836,15 +811,14 @@ create_topology ()
836 "from create topology (bad return)"); 811 "from create topology (bad return)");
837 } 812 }
838 GNUNET_SCHEDULER_cancel (die_task); 813 GNUNET_SCHEDULER_cancel (die_task);
839 die_task = GNUNET_SCHEDULER_add_delayed (test_timeout, 814 die_task =
840 &end_badly, 815 GNUNET_SCHEDULER_add_delayed (test_timeout, &end_badly,
841 "from continue startup (timeout)"); 816 "from continue startup (timeout)");
842} 817}
843 818
844 819
845static void 820static void
846peers_started_callback (void *cls, 821peers_started_callback (void *cls, const struct GNUNET_PeerIdentity *id,
847 const struct GNUNET_PeerIdentity *id,
848 const struct GNUNET_CONFIGURATION_Handle *cfg, 822 const struct GNUNET_CONFIGURATION_Handle *cfg,
849 struct GNUNET_TESTING_Daemon *d, const char *emsg) 823 struct GNUNET_TESTING_Daemon *d, const char *emsg)
850{ 824{
@@ -888,9 +862,9 @@ peers_started_callback (void *cls,
888 GNUNET_SCHEDULER_cancel (die_task); 862 GNUNET_SCHEDULER_cancel (die_task);
889 /* Set up task in case topology creation doesn't finish 863 /* Set up task in case topology creation doesn't finish
890 * within a reasonable amount of time */ 864 * within a reasonable amount of time */
891 die_task = GNUNET_SCHEDULER_add_delayed (timeout, 865 die_task =
892 &end_badly, 866 GNUNET_SCHEDULER_add_delayed (timeout, &end_badly,
893 "from peers_started_callback"); 867 "from peers_started_callback");
894#if DELAY_FOR_LOGGING 868#if DELAY_FOR_LOGGING
895 fprintf (stdout, "Connecting topology in 10 seconds\n"); 869 fprintf (stdout, "Connecting topology in 10 seconds\n");
896 gather_log_data (); 870 gather_log_data ();
@@ -913,8 +887,7 @@ peers_started_callback (void *cls,
913 * @param emsg non-null on failure 887 * @param emsg non-null on failure
914 */ 888 */
915void 889void
916hostkey_callback (void *cls, 890hostkey_callback (void *cls, const struct GNUNET_PeerIdentity *id,
917 const struct GNUNET_PeerIdentity *id,
918 struct GNUNET_TESTING_Daemon *d, const char *emsg) 891 struct GNUNET_TESTING_Daemon *d, const char *emsg)
919{ 892{
920 if (emsg != NULL) 893 if (emsg != NULL)
@@ -925,8 +898,8 @@ hostkey_callback (void *cls,
925 898
926#if VERBOSE > 1 899#if VERBOSE > 1
927 GNUNET_log (GNUNET_ERROR_TYPE_DEBUG, 900 GNUNET_log (GNUNET_ERROR_TYPE_DEBUG,
928 "Hostkey (%d/%d) created for peer `%s'\n", 901 "Hostkey (%d/%d) created for peer `%s'\n", num_peers - peers_left,
929 num_peers - peers_left, num_peers, GNUNET_i2s (id)); 902 num_peers, GNUNET_i2s (id));
930#endif 903#endif
931 904
932#if VERBOSE 905#if VERBOSE
@@ -956,18 +929,17 @@ hostkey_callback (void *cls,
956 GNUNET_SCHEDULER_cancel (die_task); 929 GNUNET_SCHEDULER_cancel (die_task);
957 /* Set up task in case topology creation doesn't finish 930 /* Set up task in case topology creation doesn't finish
958 * within a reasonable amount of time */ 931 * within a reasonable amount of time */
959 die_task = GNUNET_SCHEDULER_add_delayed (test_timeout, 932 die_task =
960 &end_badly, 933 GNUNET_SCHEDULER_add_delayed (test_timeout, &end_badly,
961 "from create_topology"); 934 "from create_topology");
962 GNUNET_SCHEDULER_add_now (&create_topology, NULL); 935 GNUNET_SCHEDULER_add_now (&create_topology, NULL);
963 ok = 0; 936 ok = 0;
964 } 937 }
965} 938}
966 939
967static void 940static void
968run (void *cls, 941run (void *cls, char *const *args, const char *cfgfile,
969 char *const *args, 942 const struct GNUNET_CONFIGURATION_Handle *cfg)
970 const char *cfgfile, const struct GNUNET_CONFIGURATION_Handle *cfg)
971{ 943{
972 char *topology_str; 944 char *topology_str;
973 char *connect_topology_str; 945 char *connect_topology_str;
@@ -999,8 +971,8 @@ run (void *cls,
999 971
1000 if ((GNUNET_YES == 972 if ((GNUNET_YES ==
1001 GNUNET_CONFIGURATION_get_value_string (cfg, "testing", "topology", 973 GNUNET_CONFIGURATION_get_value_string (cfg, "testing", "topology",
1002 &topology_str)) 974 &topology_str)) &&
1003 && (GNUNET_NO == GNUNET_TESTING_topology_get (&topology, topology_str))) 975 (GNUNET_NO == GNUNET_TESTING_topology_get (&topology, topology_str)))
1004 { 976 {
1005 GNUNET_log (GNUNET_ERROR_TYPE_WARNING, 977 GNUNET_log (GNUNET_ERROR_TYPE_WARNING,
1006 "Invalid topology `%s' given for section %s option %s\n", 978 "Invalid topology `%s' given for section %s option %s\n",
@@ -1011,10 +983,10 @@ run (void *cls,
1011 if ((GNUNET_YES == 983 if ((GNUNET_YES ==
1012 GNUNET_CONFIGURATION_get_value_string (cfg, "testing", 984 GNUNET_CONFIGURATION_get_value_string (cfg, "testing",
1013 "connect_topology", 985 "connect_topology",
1014 &connect_topology_str)) 986 &connect_topology_str)) &&
1015 && (GNUNET_NO == 987 (GNUNET_NO ==
1016 GNUNET_TESTING_topology_get (&connection_topology, 988 GNUNET_TESTING_topology_get (&connection_topology,
1017 connect_topology_str))) 989 connect_topology_str)))
1018 { 990 {
1019 GNUNET_log (GNUNET_ERROR_TYPE_WARNING, 991 GNUNET_log (GNUNET_ERROR_TYPE_WARNING,
1020 "Invalid connect topology `%s' given for section %s option %s\n", 992 "Invalid connect topology `%s' given for section %s option %s\n",
@@ -1024,10 +996,10 @@ run (void *cls,
1024 if ((GNUNET_YES == 996 if ((GNUNET_YES ==
1025 GNUNET_CONFIGURATION_get_value_string (cfg, "testing", 997 GNUNET_CONFIGURATION_get_value_string (cfg, "testing",
1026 "connect_topology_option", 998 "connect_topology_option",
1027 &connect_topology_option_str)) 999 &connect_topology_option_str)) &&
1028 && (GNUNET_NO == 1000 (GNUNET_NO ==
1029 GNUNET_TESTING_topology_option_get (&connect_topology_option, 1001 GNUNET_TESTING_topology_option_get (&connect_topology_option,
1030 connect_topology_option_str))) 1002 connect_topology_option_str)))
1031 { 1003 {
1032 GNUNET_log (GNUNET_ERROR_TYPE_WARNING, 1004 GNUNET_log (GNUNET_ERROR_TYPE_WARNING,
1033 "Invalid connect topology option `%s' given for section %s option %s\n", 1005 "Invalid connect topology option `%s' given for section %s option %s\n",
@@ -1063,10 +1035,10 @@ run (void *cls,
1063 if ((GNUNET_YES == 1035 if ((GNUNET_YES ==
1064 GNUNET_CONFIGURATION_get_value_string (cfg, "testing", 1036 GNUNET_CONFIGURATION_get_value_string (cfg, "testing",
1065 "blacklist_topology", 1037 "blacklist_topology",
1066 &blacklist_topology_str)) 1038 &blacklist_topology_str)) &&
1067 && (GNUNET_NO == 1039 (GNUNET_NO ==
1068 GNUNET_TESTING_topology_get (&blacklist_topology, 1040 GNUNET_TESTING_topology_get (&blacklist_topology,
1069 blacklist_topology_str))) 1041 blacklist_topology_str)))
1070 { 1042 {
1071 GNUNET_log (GNUNET_ERROR_TYPE_WARNING, 1043 GNUNET_log (GNUNET_ERROR_TYPE_WARNING,
1072 "Invalid topology `%s' given for section %s option %s\n", 1044 "Invalid topology `%s' given for section %s option %s\n",
@@ -1135,18 +1107,13 @@ run (void *cls,
1135#endif 1107#endif
1136 /* Set up a task to end testing if peer start fails */ 1108 /* Set up a task to end testing if peer start fails */
1137 die_task = 1109 die_task =
1138 GNUNET_SCHEDULER_add_delayed (timeout, 1110 GNUNET_SCHEDULER_add_delayed (timeout, &end_badly,
1139 &end_badly,
1140 "didn't generate all hostkeys within a reasonable amount of time!!!"); 1111 "didn't generate all hostkeys within a reasonable amount of time!!!");
1141 1112
1142 GNUNET_assert (num_peers > 0 && num_peers < (unsigned int) -1); 1113 GNUNET_assert (num_peers > 0 && num_peers < (unsigned int) -1);
1143 pg = GNUNET_TESTING_daemons_start (cfg, 1114 pg = GNUNET_TESTING_daemons_start (cfg, peers_left, peers_left / 2,
1144 peers_left, 1115 peers_left, timeout, &hostkey_callback,
1145 peers_left / 2, 1116 NULL, &peers_started_callback, NULL,
1146 peers_left,
1147 timeout,
1148 &hostkey_callback, NULL,
1149 &peers_started_callback, NULL,
1150 &topology_callback, NULL, NULL); 1117 &topology_callback, NULL, NULL);
1151 1118
1152} 1119}
@@ -1173,8 +1140,9 @@ check ()
1173 struct GNUNET_GETOPT_CommandLineOption options[] = { 1140 struct GNUNET_GETOPT_CommandLineOption options[] = {
1174 GNUNET_GETOPT_OPTION_END 1141 GNUNET_GETOPT_OPTION_END
1175 }; 1142 };
1176 ret = GNUNET_PROGRAM_run ((sizeof (argv) / sizeof (char *)) - 1, 1143 ret =
1177 argv, binary_name, "nohelp", options, &run, &ok); 1144 GNUNET_PROGRAM_run ((sizeof (argv) / sizeof (char *)) - 1, argv,
1145 binary_name, "nohelp", options, &run, &ok);
1178 if (ret != GNUNET_OK) 1146 if (ret != GNUNET_OK)
1179 { 1147 {
1180 GNUNET_log (GNUNET_ERROR_TYPE_WARNING, 1148 GNUNET_log (GNUNET_ERROR_TYPE_WARNING,