summaryrefslogtreecommitdiff
path: root/src/peers.h
diff options
context:
space:
mode:
Diffstat (limited to 'src/peers.h')
-rw-r--r--src/peers.h9
1 files changed, 7 insertions, 2 deletions
diff --git a/src/peers.h b/src/peers.h
index 106df7b..8bd6b44 100644
--- a/src/peers.h
+++ b/src/peers.h
@@ -5,6 +5,8 @@
#define PEER_ENOMEM 1
#define PEER_EFULL 1
+#define HASH_TIMEOUT (12 * 60 * 60)
+
struct infohash {
union {
uint32_t inner[5];
@@ -17,6 +19,7 @@ struct peer_entry {
struct infohash key;
struct addr value[PEERS_PER_HASH];
size_t value_len;
+ time_t last_seen;
bool set;
};
@@ -30,5 +33,7 @@ extern size_t peer_table_size;
extern size_t peer_table_load;
int allocate_hashtable();
-int add_peer(struct infohash* key, struct addr* peer);
-void get_peers(struct infohash* infohash, struct addr *peers[PEERS_PER_HASH], size_t *peers_len);
+int add_peer(struct infohash* infohash, struct addr* peer, time_t now);
+void get_peers(struct infohash* infohash, struct addr **peers, size_t *peers_len);
+
+void expire_hashes(time_t now);