summaryrefslogtreecommitdiff
path: root/src/peers.h
diff options
context:
space:
mode:
authorJesper Jensen <jesper@jnsn.dev>2023-07-23 12:15:34 +0200
committerJesper Jensen <jesper@jnsn.dev>2025-04-12 10:21:20 +0200
commit47d4780eb448f839fc6b0644135395f879080ba4 (patch)
tree2c9a84bf45a4b8af5411331db50173fc5a34f630 /src/peers.h
parent3515701479fe04f73e9194ee3074457bb85030f6 (diff)
I don't remember
Diffstat (limited to 'src/peers.h')
-rw-r--r--src/peers.h29
1 files changed, 29 insertions, 0 deletions
diff --git a/src/peers.h b/src/peers.h
new file mode 100644
index 0000000..624cb21
--- /dev/null
+++ b/src/peers.h
@@ -0,0 +1,29 @@
+#pragma once
+
+#include "routing.h"
+
+#define PEER_ENOMEM 1
+#define PEER_EFULL 1
+
+struct infohash {
+ union {
+ uint32_t inner[5];
+ char inner_b[20];
+ };
+};
+
+#define PEERS_PER_HASH 8
+struct peer_entry {
+ struct infohash key;
+ struct addr value[PEERS_PER_HASH];
+ size_t value_len;
+ bool set;
+};
+
+extern struct peer_entry* peer_table;
+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);