From a63a7a8d9e577d5b05b19ab324e50d639c7aa78c Mon Sep 17 00:00:00 2001 From: Jesper Jensen Date: Wed, 18 Jun 2025 21:39:53 +0200 Subject: Add a debug printout of collision --- src/peers.c | 18 +++++++++++++++++- 1 file changed, 17 insertions(+), 1 deletion(-) (limited to 'src/peers.c') diff --git a/src/peers.c b/src/peers.c index 79d7620..c3a53ee 100644 --- a/src/peers.c +++ b/src/peers.c @@ -12,6 +12,13 @@ struct peer_entry* peer_table; size_t peer_table_size; size_t peer_table_load; +static void dbgl_id(struct infohash* id) { + for(uint8_t i = 0; i < 5; i++) { + fprintf(stderr, "0x%08x ", id->inner[i]); + } +} + + int allocate_hashtable() { memset(&peer_status, 0, sizeof(struct peer_status)); @@ -74,7 +81,16 @@ static int resize(size_t new_size) { struct peer_entry* new_entry = NULL; find(new_table, new_size, &entry->key, &new_entry); - assert(!new_entry->set); + // If this new entry is already set, this infohash is already present + // somehow + if(new_entry->set) { + dbgl("Collision detected: "); + dbgl_id(&new_entry->key); + dbgl(" and "); + dbgl_id(&entry->key); + dbg(); + abort(); + } *new_entry = *entry; } -- cgit v1.2.3