+ char * topology_str;
+ char * connect_topology_str;
+ char * blacklist_topology_str;
+ char * connect_topology_option_str;
+ char * connect_topology_option_modifier_string;
+ ok = 1;
+
+ dotOutFile = fopen (dotOutFileName, "w");
+ if (dotOutFile != NULL)
+ {
+ fprintf (dotOutFile, "strict graph G {\n");
+ }
+
+#if VERBOSE
+ GNUNET_log (GNUNET_ERROR_TYPE_DEBUG,
+ "Starting daemons based on config file %s\n", cfgfile);
+#endif
+
+ if (GNUNET_YES != GNUNET_CONFIGURATION_get_value_string(cfg, "paths", "servicehome", &test_directory))
+ {
+ ok = 404;
+ return;
+ }
+
+ if ((GNUNET_YES ==
+ GNUNET_CONFIGURATION_get_value_string(cfg, "testing", "topology",
+ &topology_str)) && (GNUNET_NO == GNUNET_TESTING_topology_get(&topology, topology_str)))
+ {
+ GNUNET_log (GNUNET_ERROR_TYPE_WARNING,
+ "Invalid topology `%s' given for section %s option %s\n", topology_str, "TESTING", "TOPOLOGY");
+ topology = GNUNET_TESTING_TOPOLOGY_CLIQUE; /* Defaults to NONE, so set better default here */
+ }
+
+ if ((GNUNET_YES ==
+ GNUNET_CONFIGURATION_get_value_string(cfg, "testing", "connect_topology",
+ &connect_topology_str)) && (GNUNET_NO == GNUNET_TESTING_topology_get(&connection_topology, connect_topology_str)))
+ {
+ GNUNET_log (GNUNET_ERROR_TYPE_WARNING,
+ "Invalid connect topology `%s' given for section %s option %s\n", connect_topology_str, "TESTING", "CONNECT_TOPOLOGY");
+ }
+ GNUNET_free_non_null(connect_topology_str);
+ if ((GNUNET_YES ==
+ GNUNET_CONFIGURATION_get_value_string(cfg, "testing", "connect_topology_option",
+ &connect_topology_option_str)) && (GNUNET_NO == GNUNET_TESTING_topology_option_get(&connect_topology_option, connect_topology_option_str)))
+ {
+ GNUNET_log (GNUNET_ERROR_TYPE_WARNING,
+ "Invalid connect topology option `%s' given for section %s option %s\n", connect_topology_option_str, "TESTING", "CONNECT_TOPOLOGY_OPTION");
+ connect_topology_option = GNUNET_TESTING_TOPOLOGY_OPTION_ALL; /* Defaults to NONE, set to ALL */
+ }
+ GNUNET_free_non_null(connect_topology_option_str);
+ if (GNUNET_YES ==
+ GNUNET_CONFIGURATION_get_value_string (cfg, "testing", "connect_topology_option_modifier",
+ &connect_topology_option_modifier_string))
+ {
+ if (sscanf(connect_topology_option_modifier_string, "%lf", &connect_topology_option_modifier) != 1)
+ {
+ GNUNET_log (GNUNET_ERROR_TYPE_WARNING,
+ _("Invalid value `%s' for option `%s' in section `%s': expected float\n"),
+ connect_topology_option_modifier_string,
+ "connect_topology_option_modifier",
+ "TESTING");
+ }
+ GNUNET_free (connect_topology_option_modifier_string);
+ }
+
+ if (GNUNET_YES != GNUNET_CONFIGURATION_get_value_string (cfg, "testing", "blacklist_transports",
+ &blacklist_transports))
+ blacklist_transports = NULL;
+
+ if ((GNUNET_YES ==
+ GNUNET_CONFIGURATION_get_value_string(cfg, "testing", "blacklist_topology",
+ &blacklist_topology_str)) && (GNUNET_NO == GNUNET_TESTING_topology_get(&blacklist_topology, blacklist_topology_str)))
+ {
+ GNUNET_log (GNUNET_ERROR_TYPE_WARNING,
+ "Invalid topology `%s' given for section %s option %s\n", topology_str, "TESTING", "BLACKLIST_TOPOLOGY");
+ }
+ GNUNET_free_non_null(topology_str);
+ GNUNET_free_non_null(blacklist_topology_str);
+ if (GNUNET_SYSERR ==
+ GNUNET_CONFIGURATION_get_value_number (cfg, "testing", "num_peers",
+ &num_peers))
+ num_peers = DEFAULT_NUM_PEERS;
+
+ if (GNUNET_SYSERR ==
+ GNUNET_CONFIGURATION_get_value_number (cfg, "testing", "additional_messages",
+ &num_additional_messages))
+ num_additional_messages = DEFAULT_ADDITIONAL_MESSAGES;
+
+ main_cfg = cfg;