avoid %m
[oweals/gnunet.git] / src / hostlist / hostlist-client.h
index 26c013505694412be2532e4e151c1610ae716055..b29b96a042b32b1db782423030ea4fef81766b31 100644 (file)
@@ -4,7 +4,7 @@
 
      GNUnet is free software; you can redistribute it and/or modify
      it under the terms of the GNU General Public License as published
 
      GNUnet is free software; you can redistribute it and/or modify
      it under the terms of the GNU General Public License as published
-     by the Free Software Foundation; either version 2, or (at your
+     by the Free Software Foundation; either version 3, or (at your
      option) any later version.
 
      GNUnet is distributed in the hope that it will be useful, but
      option) any later version.
 
      GNUnet is distributed in the hope that it will be useful, but
 #include "gnunet_core_service.h"
 #include "gnunet_statistics_service.h"
 #include "gnunet_util_lib.h"
 #include "gnunet_core_service.h"
 #include "gnunet_statistics_service.h"
 #include "gnunet_util_lib.h"
+#include "gnunet_time_lib.h"
+
+/**
+ * Maximum number of hostlist that are saved
+ */
+#define MAX_NUMBER_HOSTLISTS 30
+
+/**
+ * Time intervall hostlists are saved to disk
+ */
+#define SAVING_INTERVALL GNUNET_TIME_relative_multiply (GNUNET_TIME_UNIT_MINUTES, 30)
+
+/**
+ * Time interval between two hostlist tests
+ */
+#define TESTING_INTERVALL GNUNET_TIME_relative_multiply (GNUNET_TIME_UNIT_SECONDS, 3)
+
+/**
+ * Time interval for download dispatcher before a download is re-scheduled
+ */
+#define WAITING_INTERVALL GNUNET_TIME_relative_multiply (GNUNET_TIME_UNIT_SECONDS, 1)
+
+/**
+ * Defines concerning the hostlist quality metric
+ */
+
+/**
+ * Initial quality of a new created hostlist
+ */
+#define HOSTLIST_INITIAL 10000
+
+/**
+ * Value subtracted each time a hostlist download fails
+ */
+#define HOSTLIST_FAILED_DOWNLOAD 100
+
+/**
+ * Value added each time a hostlist download is successful
+ */
+#define HOSTLIST_SUCCESSFUL_DOWNLOAD 100
+
+/**
+ * Value added for each valid HELLO recived during a hostlist download
+ */
+#define HOSTLIST_SUCCESSFUL_HELLO 1
+
 
 
 /**
  * Start downloading hostlists from hostlist servers as necessary.
  *
  * @param c the configuration to use
 
 
 /**
  * Start downloading hostlists from hostlist servers as necessary.
  *
  * @param c the configuration to use
- * @param s the scheduler to use
  * @param st hande for publishing statistics
  * @param ch set to handler for connect notifications
  * @param dh set to handler for disconnect notifications
  * @param st hande for publishing statistics
  * @param ch set to handler for connect notifications
  * @param dh set to handler for disconnect notifications
+ * @param msgh set to handler for message handler notifications
+ * @param learn set if client is learning new hostlists
  * @return GNUNET_OK on success
  */
 int
 GNUNET_HOSTLIST_client_start (const struct GNUNET_CONFIGURATION_Handle *c,
  * @return GNUNET_OK on success
  */
 int
 GNUNET_HOSTLIST_client_start (const struct GNUNET_CONFIGURATION_Handle *c,
-                             struct GNUNET_SCHEDULER_Handle *s,
                              struct GNUNET_STATISTICS_Handle *st,
                              struct GNUNET_STATISTICS_Handle *st,
-                             GNUNET_CORE_ClientEventHandler *ch,
-                             GNUNET_CORE_ClientEventHandler *dh);
+                             GNUNET_CORE_ConnectEventHandler *ch,
+                             GNUNET_CORE_DisconnectEventHandler *dh,
+                             GNUNET_CORE_MessageCallback *msgh,
+                             int learn);
 
 
 /**
 
 
 /**