Phase 1+2: bug fixes and dead code cleanup

Phase 1 — Bugs:
- receive_data: fix unsigned long long vs size_t mismatch
- chunk_deserialize: add NULL check in multiprocessing.c and server.c
- file_content_to_buffer: add missing fclose on error path
- send_files_multithreaded: propagate sender thread result
- server: add SIGPIPE handler
- to_disk: check fwrite return value
- scanner: use S_ISDIR instead of !S_ISREG
- scanner: free cur_path before early return

Phase 2 — Cleanup:
- Remove unused chunk_decompress function
- Remove unused array_list_clear function
- Remove unused num_connections config field
- Remove duplicate FILE_METADATA_WIRE_SIZE macro
- Update tests for removed APIs
This commit is contained in:
2026-07-16 12:08:09 +02:00
parent 81800fa661
commit 8f4ea62ae7
17 changed files with 43 additions and 69 deletions
+4 -2
View File
@@ -90,7 +90,7 @@ Chunk *directory_scanner_next(DirectoryScanner *scanner) {
continue;
}
if (!S_ISREG(stats.st_mode)) {
if (S_ISDIR(stats.st_mode)) {
queue_enqueue(scanner->directories, (void *)cur_path);
} else {
File *file = file_create(cur_path);
@@ -99,8 +99,10 @@ Chunk *directory_scanner_next(DirectoryScanner *scanner) {
file->metadata = file_metadata_create(&stats);
array_list_add(chunk_data, file);
chunk_data_size += file->data->size;
if (chunk_data_size > DESIRED_CHUNK_SIZE)
if (chunk_data_size > DESIRED_CHUNK_SIZE) {
free(cur_path);
return chunk_data_to_chunk(chunk_data);
}
free(cur_path);
}
}