Smallers steps to keep plugin running
[oweals/gnunet.git] / src / hostlist / hostlist-client.h
index b7f1100e365885a30f28cb0874e6cf53e4facecd..04c3bb60fa11318328b21c936a8eee1bdb3675b6 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"
 
-#define MAX_NUMBER_HOSTLISTS 1
+/**
+ * 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
 
-/*
- * a single hostlist obtained by hostlist advertisements
+/**
+ * Value added for each valid HELLO recived during a hostlist download
  */
-struct GNUNET_Hostlist
-{
-  /*
-   * peer offering the hostlist
-   */
-  struct GNUNET_PeerIdentity    peer;
-  /*
-   * URI where hostlist can be obtained
-   */
-  char *                        hostlist_uri;
-  /*
-   * number of HELLO messages obtained during last download
-   */
-  unsigned long                 hello_count;
-  /*
-   * number of times the hostlist was obtained
-   */
-  unsigned long                 times_used;
-  /*
-   * time the hostlist advertisement was recieved and the entry was created
-   */
-  struct GNUNET_TIME_Absolute   time_creation;
-  /*
-   * last time the hostlist was obtained
-   */
-  struct GNUNET_TIME_Absolute   time_last_usage;
-  /*
-   * value describing the quality of the hostlist, the bigger the better but (should) never < 0
-   * used for deciding which hostlist is replaced if MAX_NUMBER_HOSTLISTS in data structure is reached
-   * intial value = HOSTLIST_INITIAL
-   * increased every successful download by HOSTLIST_SUCCESSFULL_DOWNLOAD
-   * increased every successful download by number of obtained HELLO messages
-   * decreased every failed download by HOSTLIST_SUCCESSFULL_DOWNLOAD
-   */
-  uint64_t                      quality;
-};
+#define HOSTLIST_SUCCESSFUL_HELLO 1
+
 
 
 /**