This commit is contained in:
2025-11-10 12:41:18 +01:00
parent 36925309da
commit 9cdf636eb6
4 changed files with 26 additions and 17 deletions
+15 -12
View File
@@ -289,10 +289,21 @@ static int get_chunk_server(TinyDFS *tdfs, Address *addrs, int num_addrs, ByteQu
if (!tdfs->chunk_servers[i].used)
continue;
if (have_insertection(addrs, num_addrs, tdfs->chunk_servers[i].addrs, tdfs->chunk_servers[i].num_addrs)) {
found = i;
break;
}
if (!have_insertection(addrs, num_addrs, tdfs->chunk_servers[i].addrs, tdfs->chunk_servers[i].num_addrs))
continue;
// It's possible that this chunk server's connection
// was dropped but we still didn't process the DISCONNECT
// event.
int conn_idx = tcp_index_from_tag(&tdfs->tcp, found);
if (conn_idx < 0)
continue;
if (output)
*output = tcp_output_buffer(&tdfs->tcp, conn_idx);
found = i;
break;
}
if (found == -1) {
@@ -322,14 +333,6 @@ static int get_chunk_server(TinyDFS *tdfs, Address *addrs, int num_addrs, ByteQu
request_queue_init(&tdfs->chunk_servers[found].reqs);
tdfs->num_chunk_servers++;
} else {
int conn_idx = tcp_index_from_tag(&tdfs->tcp, found);
assert(conn_idx > -1);
if (output)
*output = tcp_output_buffer(&tdfs->tcp, conn_idx);
}
return found;