feat: implement chunk serialization protocol with -s flag

- Extract chunk_serialize/chunk_deserialize from chunk_compress/chunk_decompress
- Add STATUS_CHUNK to wire protocol for chunk-mode transfers
- Client: -s sends chunk via STATUS_CHUNK (serialized or compressed+serialized)
- Server: handle STATUS_CHUNK in both single-threaded and multithreaded paths
- Fix memory leak in receive_file_receive (free->data_destroy)
- Remove dead declarations: file_receive_from_buffer, file_receive_decompress,
  file_compress, chunk_data_to_disk, unused #defines
This commit is contained in:
2026-07-04 21:38:46 +02:00
parent e0f64e8d43
commit c4aeed9f4d
8 changed files with 188 additions and 130 deletions
+2 -3
View File
@@ -6,8 +6,6 @@
#include <sys/stat.h>
#define DESIRED_CHUNK_SIZE 10 * 1024 * 1024
#define FILE_PATH_SEPERATOR "#&&SEPP&&#"
#define FILE_PATH_DATA_SEPERATOR "#&&SEPD&&#"
typedef struct {
File **items;
@@ -18,10 +16,11 @@ Chunk *chunk_create(File **items, int element_count);
void chunk_destroy(void *chunk);
void chunk_print(void *chunk);
Data *chunk_format(Chunk *chunk);
Data *chunk_serialize(Chunk *chunk);
Chunk *chunk_deserialize(Data *data);
Data *chunk_compress(Chunk *chunk, int compression_level);
Chunk *chunk_decompress(Data *compressed_data);
Data *chunk_data_create(void *data, unsigned long long data_size);
void chunk_data_delete(void *chunk);
void chunk_data_to_disk(Data *chunk, char *root_directory);
#endif