diff options
Diffstat (limited to 'src/peers.h')
| -rw-r--r-- | src/peers.h | 9 |
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); |
