avoid %m
[oweals/gnunet.git] / src / hostlist / hostlist-client.h
index 26cd73b528b1a14d2ed795ec4c723d25facf6672..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
-     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
 #include "gnunet_util_lib.h"
 #include "gnunet_time_lib.h"
 
-/*
- * a single hostlist obtained by hostlist advertisements
+/**
+ * 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
  */
-struct GNUNET_Hostlist
-{
+#define HOSTLIST_SUCCESSFUL_HELLO 1
 
-  struct GNUNET_PeerIdentity    peer;
-  char *                        hostlist_uri;
-  unsigned long                 hello_count;
-  unsigned long                 times_used;
-  struct GNUNET_TIME_Absolute   time_creation;
-  struct GNUNET_TIME_Absolute   time_last_usage;
-  uint64_t                      quality;
-};
 
 
 /**
  * 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
@@ -62,7 +91,6 @@ struct GNUNET_Hostlist
  */
 int
 GNUNET_HOSTLIST_client_start (const struct GNUNET_CONFIGURATION_Handle *c,
-                             struct GNUNET_SCHEDULER_Handle *s,
                              struct GNUNET_STATISTICS_Handle *st,
                              GNUNET_CORE_ConnectEventHandler *ch,
                              GNUNET_CORE_DisconnectEventHandler *dh,