diff options
-rw-r--r-- | src/testing/Makefile.am | 8 | ||||
-rw-r--r-- | src/testing/test_testing_data_remote.conf | 3 | ||||
-rw-r--r-- | src/testing/test_testing_peergroup_data.conf | 57 | ||||
-rw-r--r-- | src/testing/testing_group.c | 6 | ||||
-rw-r--r-- | src/testing/testing_peergroup.c | 206 |
5 files changed, 237 insertions, 43 deletions
diff --git a/src/testing/Makefile.am b/src/testing/Makefile.am index 1d7806a2a..fb78fbeb8 100644 --- a/src/testing/Makefile.am +++ b/src/testing/Makefile.am | |||
@@ -27,6 +27,7 @@ check_PROGRAMS = \ | |||
27 | test_testing_connect \ | 27 | test_testing_connect \ |
28 | test_testing_reconnect \ | 28 | test_testing_reconnect \ |
29 | test_testing_group \ | 29 | test_testing_group \ |
30 | test_testing_peergroup \ | ||
30 | test_testing_topology_stability \ | 31 | test_testing_topology_stability \ |
31 | test_testing_topology_clique \ | 32 | test_testing_topology_clique \ |
32 | test_testing_topology_clique_random \ | 33 | test_testing_topology_clique_random \ |
@@ -51,6 +52,7 @@ TESTS = \ | |||
51 | test_testing_connect \ | 52 | test_testing_connect \ |
52 | test_testing_reconnect \ | 53 | test_testing_reconnect \ |
53 | test_testing_group \ | 54 | test_testing_group \ |
55 | test_testing_peergroup \ | ||
54 | test_testing_topology_clique | 56 | test_testing_topology_clique |
55 | # test_testing_topology_stability \ | 57 | # test_testing_topology_stability \ |
56 | # test_testing_topology_clique_random \ | 58 | # test_testing_topology_clique_random \ |
@@ -92,6 +94,12 @@ test_testing_group_SOURCES = \ | |||
92 | test_testing_group_LDADD = \ | 94 | test_testing_group_LDADD = \ |
93 | $(top_builddir)/src/testing/libgnunettesting.la \ | 95 | $(top_builddir)/src/testing/libgnunettesting.la \ |
94 | $(top_builddir)/src/util/libgnunetutil.la | 96 | $(top_builddir)/src/util/libgnunetutil.la |
97 | |||
98 | test_testing_peergroup_SOURCES = \ | ||
99 | test_testing_peergroup.c | ||
100 | test_testing_peergroup_LDADD = \ | ||
101 | $(top_builddir)/src/testing/libgnunettesting.la \ | ||
102 | $(top_builddir)/src/util/libgnunetutil.la | ||
95 | 103 | ||
96 | test_testing_topology_clique_SOURCES = \ | 104 | test_testing_topology_clique_SOURCES = \ |
97 | test_testing_topology.c | 105 | test_testing_topology.c |
diff --git a/src/testing/test_testing_data_remote.conf b/src/testing/test_testing_data_remote.conf index 5bc179823..0f76fb862 100644 --- a/src/testing/test_testing_data_remote.conf +++ b/src/testing/test_testing_data_remote.conf | |||
@@ -32,8 +32,9 @@ PORT = 2570 | |||
32 | CONTROL_HOST = 131.159.20.42 | 32 | CONTROL_HOST = 131.159.20.42 |
33 | HOSTFILE = remote_hosts.txt | 33 | HOSTFILE = remote_hosts.txt |
34 | WEAKRANDOM = YES | 34 | WEAKRANDOM = YES |
35 | NUM_PEERS = 2 | 35 | NUM_PEERS = 5 |
36 | HOSTKEYSFILE = ../../contrib/testing_hostkeys.dat | 36 | HOSTKEYSFILE = ../../contrib/testing_hostkeys.dat |
37 | MAX_OUTSTANDING_SSH = 5 | ||
37 | 38 | ||
38 | [dht] | 39 | [dht] |
39 | AUTOSTART = NO | 40 | AUTOSTART = NO |
diff --git a/src/testing/test_testing_peergroup_data.conf b/src/testing/test_testing_peergroup_data.conf new file mode 100644 index 000000000..d03d391f9 --- /dev/null +++ b/src/testing/test_testing_peergroup_data.conf | |||
@@ -0,0 +1,57 @@ | |||
1 | [PATHS] | ||
2 | SERVICEHOME = /tmp/test-gnunet-testing/ | ||
3 | DEFAULTCONFIG = test_testing_peergroup_data.conf | ||
4 | |||
5 | [resolver] | ||
6 | PORT = 2564 | ||
7 | |||
8 | [transport] | ||
9 | PORT = 2565 | ||
10 | PLUGINS = tcp | ||
11 | #PREFIX = xterm -e xterm -T transport -e gdb -x cmd --args | ||
12 | #PREFIX = valgrind --tool=memcheck --log-file=logs%p | ||
13 | |||
14 | [arm] | ||
15 | PORT = 2566 | ||
16 | DEFAULTSERVICES = core | ||
17 | |||
18 | [statistics] | ||
19 | PORT = 2567 | ||
20 | |||
21 | [transport-tcp] | ||
22 | PORT = 2568 | ||
23 | |||
24 | [peerinfo] | ||
25 | PORT = 2569 | ||
26 | |||
27 | [core] | ||
28 | PORT = 2570 | ||
29 | |||
30 | [testing] | ||
31 | WEAKRANDOM = YES | ||
32 | HOSTKEYSFILE = ../../contrib/testing_hostkeys.dat | ||
33 | #The following options are REQUIRED for peergroup convenience usage! | ||
34 | MAX_OUTSTANDING_CONNECTIONS = 20 | ||
35 | MAX_CONCURRENT_SSH = 1 | ||
36 | CONNECT_ATTEMPTS = 2 | ||
37 | PEERGROUP_TIMEOUT = 300 | ||
38 | TOPOLOGY = CLIQUE | ||
39 | PERCENTAGE = 0.5 | ||
40 | PROBABILITY = 0.5 | ||
41 | CONNECT_TOPOLOGY = CLIQUE | ||
42 | CONNECT_TOPOLOGY_OPTION = CONNECT_NONE | ||
43 | CONNECT_TOPOLOGY_OPTION_MODIFIER = 0.0 | ||
44 | BLACKLIST_TOPOLOGY = NONE | ||
45 | BLACKLIST_TRANSPORTS = tcp udp | ||
46 | |||
47 | |||
48 | [fs] | ||
49 | AUTOSTART = NO | ||
50 | |||
51 | [datastore] | ||
52 | AUTOSTART = NO | ||
53 | |||
54 | [dht] | ||
55 | AUTOSTART = NO | ||
56 | |||
57 | |||
diff --git a/src/testing/testing_group.c b/src/testing/testing_group.c index e7ae32f01..9f319ca61 100644 --- a/src/testing/testing_group.c +++ b/src/testing/testing_group.c | |||
@@ -2361,7 +2361,7 @@ create_clique(struct GNUNET_TESTING_PeerGroup *pg, | |||
2361 | connect_attempts = 0; | 2361 | connect_attempts = 0; |
2362 | 2362 | ||
2363 | conn_meter = create_meter ((((pg->total * pg->total) + pg->total) / 2) | 2363 | conn_meter = create_meter ((((pg->total * pg->total) + pg->total) / 2) |
2364 | - pg->total, "Create Clique ", GNUNET_YES); | 2364 | - pg->total, "Create Clique ", GNUNET_NO); |
2365 | for (outer_count = 0; outer_count < pg->total - 1; outer_count++) | 2365 | for (outer_count = 0; outer_count < pg->total - 1; outer_count++) |
2366 | { | 2366 | { |
2367 | for (inner_count = outer_count + 1; inner_count < pg->total; inner_count++) | 2367 | for (inner_count = outer_count + 1; inner_count < pg->total; inner_count++) |
@@ -2375,8 +2375,6 @@ create_clique(struct GNUNET_TESTING_PeerGroup *pg, | |||
2375 | update_meter (conn_meter); | 2375 | update_meter (conn_meter); |
2376 | } | 2376 | } |
2377 | } | 2377 | } |
2378 | GNUNET_log (GNUNET_ERROR_TYPE_WARNING, "Meter has %d left\n", | ||
2379 | conn_meter->total - conn_meter->completed); | ||
2380 | reset_meter (conn_meter); | 2378 | reset_meter (conn_meter); |
2381 | free_meter (conn_meter); | 2379 | free_meter (conn_meter); |
2382 | return connect_attempts; | 2380 | return connect_attempts; |
@@ -5922,7 +5920,7 @@ GNUNET_TESTING_daemons_start(const struct GNUNET_CONFIGURATION_Handle *cfg, | |||
5922 | else | 5920 | else |
5923 | { | 5921 | { |
5924 | total_hostkeys = fs / HOSTKEYFILESIZE; | 5922 | total_hostkeys = fs / HOSTKEYFILESIZE; |
5925 | GNUNET_log (GNUNET_ERROR_TYPE_WARNING, | 5923 | GNUNET_log (GNUNET_ERROR_TYPE_DEBUG, |
5926 | "Will read %llu hostkeys from file\n", total_hostkeys); | 5924 | "Will read %llu hostkeys from file\n", total_hostkeys); |
5927 | pg->hostkey_data = GNUNET_malloc_large (fs); | 5925 | pg->hostkey_data = GNUNET_malloc_large (fs); |
5928 | GNUNET_assert (fs == GNUNET_DISK_file_read (fd, pg->hostkey_data, fs)); | 5926 | GNUNET_assert (fs == GNUNET_DISK_file_read (fd, pg->hostkey_data, fs)); |
diff --git a/src/testing/testing_peergroup.c b/src/testing/testing_peergroup.c index bd725fedc..b9b6cd313 100644 --- a/src/testing/testing_peergroup.c +++ b/src/testing/testing_peergroup.c | |||
@@ -44,8 +44,9 @@ struct PeerGroupStartupContext | |||
44 | const struct GNUNET_CONFIGURATION_Handle *cfg; | 44 | const struct GNUNET_CONFIGURATION_Handle *cfg; |
45 | unsigned int total; | 45 | unsigned int total; |
46 | unsigned int peers_left; | 46 | unsigned int peers_left; |
47 | unsigned int max_concurrent_connections; | 47 | unsigned long long max_concurrent_connections; |
48 | unsigned int max_concurrent_ssh; | 48 | unsigned long long connect_attempts; |
49 | unsigned long long max_concurrent_ssh; | ||
49 | struct GNUNET_TIME_Absolute timeout; | 50 | struct GNUNET_TIME_Absolute timeout; |
50 | GNUNET_TESTING_NotifyConnection connect_cb; | 51 | GNUNET_TESTING_NotifyConnection connect_cb; |
51 | void *connect_cb_cls; | 52 | void *connect_cb_cls; |
@@ -53,8 +54,13 @@ struct PeerGroupStartupContext | |||
53 | void *peergroup_cb_cls; | 54 | void *peergroup_cb_cls; |
54 | const struct GNUNET_TESTING_Host *hostnames; | 55 | const struct GNUNET_TESTING_Host *hostnames; |
55 | enum GNUNET_TESTING_Topology topology; | 56 | enum GNUNET_TESTING_Topology topology; |
57 | |||
58 | float topology_percentage; | ||
59 | |||
60 | float topology_probability; | ||
61 | |||
56 | enum GNUNET_TESTING_Topology restrict_topology; | 62 | enum GNUNET_TESTING_Topology restrict_topology; |
57 | const char *restrict_transports; | 63 | char *restrict_transports; |
58 | enum GNUNET_TESTING_Topology connect_topology; | 64 | enum GNUNET_TESTING_Topology connect_topology; |
59 | enum GNUNET_TESTING_TopologyOption connect_topology_option; | 65 | enum GNUNET_TESTING_TopologyOption connect_topology_option; |
60 | double connect_topology_option_modifier; | 66 | double connect_topology_option_modifier; |
@@ -401,6 +407,8 @@ internal_topology_callback( | |||
401 | GNUNET_SCHEDULER_cancel (pg_start_ctx->die_task); | 407 | GNUNET_SCHEDULER_cancel (pg_start_ctx->die_task); |
402 | 408 | ||
403 | /* Call final callback, signifying that the peer group has been started and connected */ | 409 | /* Call final callback, signifying that the peer group has been started and connected */ |
410 | if (pg_start_ctx->peergroup_cb != NULL) | ||
411 | pg_start_ctx->peergroup_cb(pg_start_ctx->peergroup_cb_cls, NULL); | ||
404 | } | 412 | } |
405 | } | 413 | } |
406 | 414 | ||
@@ -446,7 +454,7 @@ internal_peers_started_callback(void *cls, const struct GNUNET_PeerIdentity *id, | |||
446 | pg_start_ctx->connect_topology_option, | 454 | pg_start_ctx->connect_topology_option, |
447 | pg_start_ctx->connect_topology_option_modifier, | 455 | pg_start_ctx->connect_topology_option_modifier, |
448 | DEFAULT_CONNECT_TIMEOUT, | 456 | DEFAULT_CONNECT_TIMEOUT, |
449 | DEFAULT_CONNECT_ATTEMPTS, | 457 | pg_start_ctx->connect_attempts, |
450 | NULL, NULL); | 458 | NULL, NULL); |
451 | 459 | ||
452 | pg_start_ctx->connect_meter | 460 | pg_start_ctx->connect_meter |
@@ -506,9 +514,6 @@ internal_hostkey_callback(void *cls, const struct GNUNET_PeerIdentity *id, | |||
506 | pg_start_ctx->peers_left--; | 514 | pg_start_ctx->peers_left--; |
507 | if (GNUNET_YES == update_meter (pg_start_ctx->hostkey_meter)) | 515 | if (GNUNET_YES == update_meter (pg_start_ctx->hostkey_meter)) |
508 | { | 516 | { |
509 | GNUNET_log (GNUNET_ERROR_TYPE_WARNING, | ||
510 | "All %d hostkeys created, now creating topology!\n", | ||
511 | pg_start_ctx->total); | ||
512 | GNUNET_SCHEDULER_cancel (pg_start_ctx->die_task); | 517 | GNUNET_SCHEDULER_cancel (pg_start_ctx->die_task); |
513 | /* Set up task in case topology creation doesn't finish | 518 | /* Set up task in case topology creation doesn't finish |
514 | * within a reasonable amount of time */ | 519 | * within a reasonable amount of time */ |
@@ -549,10 +554,6 @@ internal_hostkey_callback(void *cls, const struct GNUNET_PeerIdentity *id, | |||
549 | * | 554 | * |
550 | * @param cfg configuration template to use | 555 | * @param cfg configuration template to use |
551 | * @param total number of daemons to start | 556 | * @param total number of daemons to start |
552 | * @param max_concurrent_connections for testing, how many peers can | ||
553 | * we connect to simultaneously | ||
554 | * @param max_concurrent_ssh when starting with ssh, how many ssh | ||
555 | * connections will we allow at once (based on remote hosts allowed!) | ||
556 | * @param timeout total time allowed for peers to start | 557 | * @param timeout total time allowed for peers to start |
557 | * @param connect_cb function to call each time two daemons are connected | 558 | * @param connect_cb function to call each time two daemons are connected |
558 | * @param connect_cb_cls closure for connect_callback | 559 | * @param connect_cb_cls closure for connect_callback |
@@ -560,58 +561,188 @@ internal_hostkey_callback(void *cls, const struct GNUNET_PeerIdentity *id, | |||
560 | * @param peergroup_cb_cls closure for peergroup_cb | 561 | * @param peergroup_cb_cls closure for peergroup_cb |
561 | * @param hostnames linked list of host structs to use to start peers on | 562 | * @param hostnames linked list of host structs to use to start peers on |
562 | * (NULL to run on localhost only) | 563 | * (NULL to run on localhost only) |
563 | * @param topology allowed overlay topology | ||
564 | * @param restrict_topology blacklist connections to this topology | ||
565 | * @param restrict_transports specific transports to blacklist | ||
566 | * @param connect_topology topology to connect peers in (defaults to allowed | ||
567 | * topology) | ||
568 | * @param connect_topology_options options for connect topology | ||
569 | * @param connect_topology_option_modifier option modifier for connect topology | ||
570 | * @param verbose GNUNET_YES to print progress bars, GNUNET_NO otherwise | 564 | * @param verbose GNUNET_YES to print progress bars, GNUNET_NO otherwise |
571 | * | 565 | * |
572 | * @return NULL on error, otherwise handle to control peer group | 566 | * @return NULL on error, otherwise handle to control peer group |
573 | */ | 567 | */ |
574 | struct GNUNET_TESTING_PeerGroup * | 568 | struct GNUNET_TESTING_PeerGroup * |
575 | GNUNET_TESTING_PeerGroup_start( | 569 | GNUNET_TESTING_peergroup_start( |
576 | const struct GNUNET_CONFIGURATION_Handle *cfg, | 570 | const struct GNUNET_CONFIGURATION_Handle *cfg, |
577 | unsigned int total, | 571 | unsigned int total, |
578 | unsigned int max_concurrent_connections, | ||
579 | unsigned int max_concurrent_ssh, | ||
580 | struct GNUNET_TIME_Relative timeout, | 572 | struct GNUNET_TIME_Relative timeout, |
581 | GNUNET_TESTING_NotifyConnection connect_cb, | 573 | GNUNET_TESTING_NotifyConnection connect_cb, |
582 | void *connect_cb_cls, | 574 | void *connect_cb_cls, |
583 | GNUNET_TESTING_NotifyCompletion peergroup_cb, | 575 | GNUNET_TESTING_NotifyCompletion peergroup_cb, |
584 | void *peergroup_cb_cls, | 576 | void *peergroup_cb_cls, |
585 | const struct GNUNET_TESTING_Host *hostnames, | 577 | const struct GNUNET_TESTING_Host *hostnames, |
586 | enum GNUNET_TESTING_Topology topology, | 578 | int verbose) |
587 | enum GNUNET_TESTING_Topology restrict_topology, | ||
588 | const char *restrict_transports, | ||
589 | enum GNUNET_TESTING_Topology connect_topology, | ||
590 | enum GNUNET_TESTING_TopologyOption connect_topology_options, | ||
591 | double connect_topology_option_modifier, int verbose) | ||
592 | { | 579 | { |
593 | struct PeerGroupStartupContext *pg_start_ctx; | 580 | struct PeerGroupStartupContext *pg_start_ctx; |
594 | 581 | unsigned long long temp_config_number; | |
582 | char *temp_str; | ||
595 | GNUNET_assert(total > 0); | 583 | GNUNET_assert(total > 0); |
596 | GNUNET_assert(cfg != NULL); | 584 | GNUNET_assert(cfg != NULL); |
597 | 585 | ||
598 | pg_start_ctx = GNUNET_malloc(sizeof(struct PeerGroupStartupContext)); | 586 | pg_start_ctx = GNUNET_malloc(sizeof(struct PeerGroupStartupContext)); |
587 | |||
588 | if (GNUNET_OK != GNUNET_CONFIGURATION_get_value_number (cfg, "testing", | ||
589 | "connect_attempts", | ||
590 | &pg_start_ctx->connect_attempts)) | ||
591 | { | ||
592 | GNUNET_log (GNUNET_ERROR_TYPE_ERROR, "Must provide option %s:%s!\n", | ||
593 | "testing", "connect_attempts"); | ||
594 | GNUNET_free(pg_start_ctx); | ||
595 | return NULL; | ||
596 | } | ||
597 | |||
598 | if (GNUNET_OK | ||
599 | != GNUNET_CONFIGURATION_get_value_number (cfg, "testing", | ||
600 | "max_outstanding_connections", | ||
601 | &pg_start_ctx->max_concurrent_connections)) | ||
602 | { | ||
603 | GNUNET_log (GNUNET_ERROR_TYPE_ERROR, "Must provide option %s:%s!\n", | ||
604 | "testing", "max_outstanding_connections"); | ||
605 | GNUNET_free(pg_start_ctx); | ||
606 | return NULL; | ||
607 | } | ||
608 | |||
609 | if (GNUNET_OK != GNUNET_CONFIGURATION_get_value_number (cfg, "testing", | ||
610 | "max_concurrent_ssh", | ||
611 | &pg_start_ctx->max_concurrent_ssh)) | ||
612 | { | ||
613 | GNUNET_log (GNUNET_ERROR_TYPE_ERROR, "Must provide option %s:%s!\n", | ||
614 | "testing", "max_concurrent_ssh"); | ||
615 | GNUNET_free(pg_start_ctx); | ||
616 | return NULL; | ||
617 | } | ||
618 | |||
619 | if (GNUNET_OK == GNUNET_CONFIGURATION_get_value_number (cfg, "testing", | ||
620 | "peergroup_timeout", | ||
621 | &temp_config_number)) | ||
622 | pg_start_ctx->timeout = GNUNET_TIME_relative_to_absolute(GNUNET_TIME_relative_multiply (GNUNET_TIME_UNIT_SECONDS, | ||
623 | temp_config_number)); | ||
624 | else | ||
625 | { | ||
626 | GNUNET_log (GNUNET_ERROR_TYPE_ERROR, "Must provide option %s:%s!\n", | ||
627 | "testing", "peergroup_timeout"); | ||
628 | GNUNET_free(pg_start_ctx); | ||
629 | return NULL; | ||
630 | } | ||
631 | |||
632 | |||
633 | /* Read topology related options from the configuration file */ | ||
634 | temp_str = NULL; | ||
635 | if ((GNUNET_YES == GNUNET_CONFIGURATION_get_value_string (cfg, "testing", | ||
636 | "topology", | ||
637 | &temp_str)) | ||
638 | && (GNUNET_NO == GNUNET_TESTING_topology_get (&pg_start_ctx->topology, temp_str))) | ||
639 | { | ||
640 | GNUNET_log (GNUNET_ERROR_TYPE_WARNING, | ||
641 | "Invalid topology `%s' given for section %s option %s\n", | ||
642 | temp_str, "TESTING", "TOPOLOGY"); | ||
643 | pg_start_ctx->topology = GNUNET_TESTING_TOPOLOGY_CLIQUE; /* Defaults to NONE, so set better default here */ | ||
644 | } | ||
645 | GNUNET_free_non_null(temp_str); | ||
646 | |||
647 | if (GNUNET_OK | ||
648 | != GNUNET_CONFIGURATION_get_value_string (cfg, "testing", "percentage", | ||
649 | &temp_str)) | ||
650 | pg_start_ctx->topology_percentage = 0.5; | ||
651 | else | ||
652 | { | ||
653 | pg_start_ctx->topology_percentage = atof (temp_str); | ||
654 | GNUNET_free(temp_str); | ||
655 | } | ||
656 | |||
657 | if (GNUNET_OK | ||
658 | != GNUNET_CONFIGURATION_get_value_string (cfg, "testing", "probability", | ||
659 | &temp_str)) | ||
660 | pg_start_ctx->topology_probability = 0.5; | ||
661 | else | ||
662 | { | ||
663 | pg_start_ctx->topology_probability = atof (temp_str); | ||
664 | GNUNET_free(temp_str); | ||
665 | } | ||
666 | |||
667 | if ((GNUNET_YES | ||
668 | == GNUNET_CONFIGURATION_get_value_string (cfg, "testing", | ||
669 | "connect_topology", | ||
670 | &temp_str)) | ||
671 | && (GNUNET_NO == GNUNET_TESTING_topology_get (&pg_start_ctx->connect_topology, | ||
672 | temp_str))) | ||
673 | { | ||
674 | GNUNET_log ( | ||
675 | GNUNET_ERROR_TYPE_WARNING, | ||
676 | "Invalid connect topology `%s' given for section %s option %s\n", | ||
677 | temp_str, "TESTING", "CONNECT_TOPOLOGY"); | ||
678 | } | ||
679 | GNUNET_free_non_null(temp_str); | ||
680 | |||
681 | if ((GNUNET_YES | ||
682 | == GNUNET_CONFIGURATION_get_value_string (cfg, "testing", | ||
683 | "connect_topology_option", | ||
684 | &temp_str)) | ||
685 | && (GNUNET_NO | ||
686 | == GNUNET_TESTING_topology_option_get (&pg_start_ctx->connect_topology_option, | ||
687 | temp_str))) | ||
688 | { | ||
689 | GNUNET_log ( | ||
690 | GNUNET_ERROR_TYPE_WARNING, | ||
691 | "Invalid connect topology option `%s' given for section %s option %s\n", | ||
692 | temp_str, "TESTING", | ||
693 | "CONNECT_TOPOLOGY_OPTION"); | ||
694 | pg_start_ctx->connect_topology_option = GNUNET_TESTING_TOPOLOGY_OPTION_ALL; /* Defaults to NONE, set to ALL */ | ||
695 | } | ||
696 | GNUNET_free_non_null(temp_str); | ||
697 | |||
698 | if (GNUNET_YES | ||
699 | == GNUNET_CONFIGURATION_get_value_string ( | ||
700 | cfg, | ||
701 | "testing", | ||
702 | "connect_topology_option_modifier", | ||
703 | &temp_str)) | ||
704 | { | ||
705 | if (sscanf (temp_str, "%lf", | ||
706 | &pg_start_ctx->connect_topology_option_modifier) != 1) | ||
707 | { | ||
708 | GNUNET_log ( | ||
709 | GNUNET_ERROR_TYPE_WARNING, | ||
710 | _("Invalid value `%s' for option `%s' in section `%s': expected float\n"), | ||
711 | temp_str, | ||
712 | "connect_topology_option_modifier", "TESTING"); | ||
713 | GNUNET_free (temp_str); | ||
714 | GNUNET_free(pg_start_ctx); | ||
715 | return NULL; | ||
716 | } | ||
717 | GNUNET_free (temp_str); | ||
718 | } | ||
719 | |||
720 | if (GNUNET_YES | ||
721 | != GNUNET_CONFIGURATION_get_value_string (cfg, "testing", | ||
722 | "blacklist_transports", | ||
723 | &pg_start_ctx->restrict_transports)) | ||
724 | pg_start_ctx->restrict_transports = NULL; | ||
725 | |||
726 | if ((GNUNET_YES | ||
727 | == GNUNET_CONFIGURATION_get_value_string (cfg, "testing", | ||
728 | "blacklist_topology", | ||
729 | &temp_str)) | ||
730 | && (GNUNET_NO == GNUNET_TESTING_topology_get (&pg_start_ctx->restrict_topology, | ||
731 | temp_str))) | ||
732 | { | ||
733 | GNUNET_log (GNUNET_ERROR_TYPE_WARNING, | ||
734 | "Invalid topology `%s' given for section %s option %s\n", | ||
735 | temp_str, "TESTING", "BLACKLIST_TOPOLOGY"); | ||
736 | } | ||
737 | GNUNET_free_non_null(temp_str); | ||
738 | |||
599 | pg_start_ctx->cfg = cfg; | 739 | pg_start_ctx->cfg = cfg; |
600 | pg_start_ctx->total = total; | 740 | pg_start_ctx->total = total; |
601 | pg_start_ctx->peers_left = total; | 741 | pg_start_ctx->peers_left = total; |
602 | pg_start_ctx->max_concurrent_connections = max_concurrent_connections; | ||
603 | pg_start_ctx->max_concurrent_ssh = max_concurrent_ssh; | ||
604 | pg_start_ctx->timeout = GNUNET_TIME_relative_to_absolute(timeout); | ||
605 | pg_start_ctx->connect_cb = connect_cb_cls; | 742 | pg_start_ctx->connect_cb = connect_cb_cls; |
606 | pg_start_ctx->peergroup_cb = peergroup_cb; | 743 | pg_start_ctx->peergroup_cb = peergroup_cb; |
607 | pg_start_ctx->peergroup_cb_cls = peergroup_cb_cls; | 744 | pg_start_ctx->peergroup_cb_cls = peergroup_cb_cls; |
608 | pg_start_ctx->hostnames = hostnames; | 745 | pg_start_ctx->hostnames = hostnames; |
609 | pg_start_ctx->topology = topology; | ||
610 | pg_start_ctx->restrict_topology = restrict_topology; | ||
611 | pg_start_ctx->restrict_transports = restrict_transports; | ||
612 | pg_start_ctx->connect_topology = connect_topology; | ||
613 | pg_start_ctx->connect_topology_option = connect_topology_options; | ||
614 | pg_start_ctx->connect_topology_option_modifier = connect_topology_option_modifier; | ||
615 | pg_start_ctx->verbose = verbose; | 746 | pg_start_ctx->verbose = verbose; |
616 | pg_start_ctx->hostkey_meter = create_meter (pg_start_ctx->peers_left, "Hostkeys created ", pg_start_ctx->verbose); | 747 | pg_start_ctx->hostkey_meter = create_meter (pg_start_ctx->peers_left, "Hostkeys created ", pg_start_ctx->verbose); |
617 | pg_start_ctx->peer_start_meter = create_meter (pg_start_ctx->peers_left, "Peers started ", pg_start_ctx->verbose); | 748 | pg_start_ctx->peer_start_meter = create_meter (pg_start_ctx->peers_left, "Peers started ", pg_start_ctx->verbose); |
@@ -640,5 +771,4 @@ GNUNET_TESTING_PeerGroup_start( | |||
640 | return pg_start_ctx->pg; | 771 | return pg_start_ctx->pg; |
641 | } | 772 | } |
642 | 773 | ||
643 | |||
644 | /* end of testing_peergroup.c */ | 774 | /* end of testing_peergroup.c */ |