#include "gnunet_disk_lib.h"
/** Globals **/
-#define DEFAULT_CONNECT_TIMEOUT 30 // FIXME: use fancy time
+#define DEFAULT_CONNECT_TIMEOUT GNUNET_TIME_relative_multiply (GNUNET_TIME_UNIT_SECONDS, 30)
#define DEFAULT_CONNECT_ATTEMPTS 2
unsigned int total;
unsigned int peers_left;
unsigned long long max_concurrent_connections;
-
+
/**
* Maximum attemps to connect two daemons.
*/
/**
* How long to spend trying to establish all the connections?
*/
- unsigned long long connect_timeout; // FIXME: use fancy time
-
+ struct GNUNET_TIME_Relative connect_timeout;
+
unsigned long long max_concurrent_ssh;
struct GNUNET_TIME_Absolute timeout;
GNUNET_TESTING_NotifyConnection connect_cb;
ret = GNUNET_malloc (sizeof (struct ProgressMeter));
ret->print = print;
ret->total = total;
- ret->modnum = total / 4;
+ ret->modnum = (total / 4 == 0) ? 1 : (total / 4);
ret->dotnum = (total / 50) + 1;
if (start_string != NULL)
ret->startup_string = GNUNET_strdup (start_string);
{
if (meter->completed == 0)
{
- fprintf (stdout, "%sProgress: [0%%", meter->startup_string);
+ FPRINTF (stdout, "%sProgress: [0%%", meter->startup_string);
}
else
- fprintf (stdout, "%d%%",
+ FPRINTF (stdout, "%d%%",
(int) (((float) meter->completed / meter->total) * 100));
}
else if (meter->completed % meter->dotnum == 0)
- fprintf (stdout, ".");
+ FPRINTF (stdout, "%s", ".");
if (meter->completed + 1 == meter->total)
- fprintf (stdout, "%d%%]\n", 100);
+ FPRINTF (stdout, "%d%%]\n", 100);
fflush (stdout);
}
meter->completed++;
}
}
+
+/**
+ * Callback called for each started daemon.
+ *
+ * @param cls Clause (PG Context).
+ * @param id PeerIdentidy of started daemon.
+ * @param cfg Configuration used by the daemon.
+ * @param d Handle for the daemon.
+ * @param emsg Error message, NULL on success.
+ */
static void
internal_peers_started_callback (void *cls,
const struct GNUNET_PeerIdentity *id,
pg_start_ctx->peers_left--;
+ if (NULL == pg_start_ctx->peer_start_meter)
+ {
+ /* Cancelled Ctrl-C or error */
+ return;
+ }
if (GNUNET_YES == update_meter (pg_start_ctx->peer_start_meter))
{
#if VERBOSE
pg_start_ctx->connect_topology,
pg_start_ctx->connect_topology_option,
pg_start_ctx->connect_topology_option_modifier,
- // FIXME: use fancy time
- GNUNET_TIME_relative_multiply(
- GNUNET_TIME_UNIT_SECONDS,
- pg_start_ctx->connect_timeout),
+ pg_start_ctx->connect_timeout,
pg_start_ctx->connect_attempts, NULL,
NULL);
#if VERBOSE > 1
GNUNET_log (GNUNET_ERROR_TYPE_DEBUG,
"Hostkey (%d/%d) created for peer `%s'\n",
- pg_start_ctx->total - pg_start_ctx->peers_left,
+ pg_start_ctx->total - pg_start_ctx->peers_left + 1,
pg_start_ctx->total, GNUNET_i2s (id));
#endif
const struct GNUNET_TESTING_Host *hostnames)
{
struct PeerGroupStartupContext *pg_start_ctx;
- unsigned long long temp_config_number;
char *temp_str;
int temp;
+ struct GNUNET_TIME_Relative rtimeout;
GNUNET_assert (total > 0);
GNUNET_assert (cfg != NULL);
}
if (GNUNET_OK !=
- GNUNET_CONFIGURATION_get_value_number (cfg, "testing", "connect_timeout",
- &pg_start_ctx->connect_timeout))
+ GNUNET_CONFIGURATION_get_value_time (cfg, "testing", "CONNECT_TIMEOUT",
+ &pg_start_ctx->connect_timeout))
{
pg_start_ctx->connect_timeout = DEFAULT_CONNECT_TIMEOUT;
}
return NULL;
}
- if (GNUNET_OK ==
- GNUNET_CONFIGURATION_get_value_number (cfg, "testing",
- "peergroup_timeout",
- &temp_config_number))
- pg_start_ctx->timeout =
- GNUNET_TIME_relative_to_absolute (GNUNET_TIME_relative_multiply
- (GNUNET_TIME_UNIT_SECONDS,
- temp_config_number));
- else
+ if (GNUNET_OK !=
+ GNUNET_CONFIGURATION_get_value_time (cfg, "testing", "PEERGROUP_TIMEOUT",
+ &rtimeout))
{
GNUNET_log (GNUNET_ERROR_TYPE_ERROR, "Must provide option %s:%s!\n",
- "testing", "peergroup_timeout");
+ "testing", "PEERGROUP_TIMEOUT");
GNUNET_free (pg_start_ctx);
return NULL;
}
+ pg_start_ctx->timeout = GNUNET_TIME_relative_to_absolute (rtimeout);
/* Read topology related options from the configuration file */