{
current_hostlist->times_used++;
current_hostlist->quality = checked_add ( current_hostlist->quality, HOSTLIST_SUCCESSFUL_DOWNLOAD);
+ GNUNET_STATISTICS_update ( stats,
+ gettext_noop("Learned URI downloaded"),
+ 1,
+ GNUNET_YES);
}
else
current_hostlist->quality = checked_sub ( current_hostlist->quality, HOSTLIST_FAILED_DOWNLOAD );
GNUNET_log (GNUNET_ERROR_TYPE_INFO,
_("%u hostlist URIs loaded from file\n"), counter);
GNUNET_STATISTICS_set (stats,
- gettext_noop("# hostlis URIs read from file"),
+ gettext_noop("# hostlist URIs read from file"),
counter,
GNUNET_YES);
#include "gnunet_core_service.h"
#include "gnunet_transport_service.h"
#include "gnunet_resolver_service.h"
+#include "gnunet_statistics_service.h"
#define VERBOSE GNUNET_YES
static int timeout;
static int adv_arrived;
+static int learned_hostlist_downloaded;
static struct GNUNET_SCHEDULER_Handle *sched;
struct GNUNET_MessageHeader *hello;
struct GNUNET_ARM_Handle *arm;
struct GNUNET_CORE_Handle *core;
+ struct GNUNET_STATISTICS_Handle *stats;
#if START_ARM
pid_t arm_pid;
#endif
clean_up (NULL, tc);
}
+static int
+process_stat (void *cls,
+ const char *subsystem,
+ const char *name,
+ uint64_t value,
+ int is_persistent)
+{
+
+ if ( GNUNET_YES == GNUNET_YES)
+ {
+ GNUNET_log (GNUNET_ERROR_TYPE_INFO,
+ _("Client has successfully downloaded advertised URI \n"));
+ learned_hostlist_downloaded = GNUNET_YES;
+ }
+ if ( GNUNET_NO != learned_hostlist_downloaded )
+ shutdown_testcase();
+ return GNUNET_OK;
+}
+
/**
* Check the server statistics regularly
*/
static void
check_statistics (void *cls, const struct GNUNET_SCHEDULER_TaskContext *tc)
{
- GNUNET_log (GNUNET_ERROR_TYPE_DEBUG,
- "Checking server stats...\n");
+ GNUNET_STATISTICS_get (learn_peer.stats,
+ "hostlist",
+ gettext_noop("Learned URI downloaded"),
+ GNUNET_TIME_UNIT_MINUTES,
+ NULL,
+ &process_stat,
+ NULL);
check_task = GNUNET_SCHEDULER_add_delayed (sched,
CHECK_INTERVALL,
&check_statistics,
"Expected URI `%s' and recieved URI `%s' differ\n", expected_uri, recv_uri);
GNUNET_free ( expected_uri );
GNUNET_free ( hostname );
- shutdown_testcase();
return GNUNET_OK;
}
result = remove (filename);
if (result == 0)
GNUNET_log (GNUNET_ERROR_TYPE_INFO,
- _("Hostlist hostlist file `%s' was removed\n"),filename);
+ _("Hostlist file `%s' was removed\n"),filename);
}
}
- GNUNET_free ( filename );
+ if ( NULL != filename) GNUNET_free ( filename );
+
GNUNET_ARM_start_services (p->cfg, sched, "core", NULL);
p->core = GNUNET_CORE_connect (sched, p->cfg,
NULL, GNUNET_NO,
learn_handlers );
GNUNET_assert ( NULL != p->core );
+ p->stats = GNUNET_STATISTICS_create (sched, "hostlist", p->cfg);
+ GNUNET_assert ( NULL != p->stats );
}
{
timeout = GNUNET_NO;
adv_arrived = GNUNET_NO;
+ learned_hostlist_downloaded = GNUNET_NO;
sched = s;
timeout_task = GNUNET_SCHEDULER_add_delayed (sched,
TIMEOUT,
argv, "test-gnunet-daemon-hostlist",
"nohelp", options, &run, NULL);
- if ( (timeout == GNUNET_YES) || (adv_arrived == GNUNET_NO))
+ if (timeout == GNUNET_YES)
+ {
+ GNUNET_log (GNUNET_ERROR_TYPE_ERROR,
+ "Testcase could not set up two communicating peers, timeout\n");
return GNUNET_YES;
- else
- return GNUNET_NO;
+ }
+ if (adv_arrived == GNUNET_NO)
+ {
+ GNUNET_log (GNUNET_ERROR_TYPE_ERROR,
+ "Learning peer did not recieve advertisement from server\n");
+ return GNUNET_YES;
+ }
+ if (learned_hostlist_downloaded == GNUNET_NO)
+ {
+ GNUNET_log (GNUNET_ERROR_TYPE_ERROR,
+ "Advertisement hostlist could not be downloaded from server\n");
+ return GNUNET_YES;
+ }
+ return GNUNET_NO;
}
int