X-Git-Url: https://git.librecmc.org/?a=blobdiff_plain;f=src%2Fhostlist%2Fhostlist-client.h;h=b29b96a042b32b1db782423030ea4fef81766b31;hb=c9821c80f60d980cbf8f973f78eed6094270a653;hp=26cd73b528b1a14d2ed795ec4c723d25facf6672;hpb=9c8285667baa991e8fc4c411c94be8816512647f;p=oweals%2Fgnunet.git diff --git a/src/hostlist/hostlist-client.h b/src/hostlist/hostlist-client.h index 26cd73b52..b29b96a04 100644 --- a/src/hostlist/hostlist-client.h +++ b/src/hostlist/hostlist-client.h @@ -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 @@ -32,27 +32,56 @@ #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,