cleanup: remove dead code, fix bugs, refactor SSH dest parsing
- Remove debug printf calls from file.c - Remove dead code: chunk_print, chunk_format, chunk_data_create/delete - Remove unused config.use_single_send_per_file field - Fix server_delete() no-op (double-pointer) - Fix double cast (long)(long) -> ptrdiff_t in chunk.c - Fix thread return value: thrd_error instead of 1 - Remove unused config param from receive_chunk_enqueue() - Make queue_double_capacity() static - Move SSH dest parsing into config.c as config_parse_ssh_dest() - Fix test_config_ssh_dest to test parsing round-trip - Remove chunk_format test (obsolete format) - Replace chunk_data_delete with data_destroy in tests
This commit is contained in:
@@ -49,15 +49,6 @@ void chunk_destroy(void *item) {
|
||||
free(chunk);
|
||||
}
|
||||
|
||||
void chunk_print(void *item) {
|
||||
if (item == NULL)
|
||||
return;
|
||||
Chunk *chunk = (Chunk *)item;
|
||||
for (int i = 0; i < chunk->element_count; ++i)
|
||||
if (chunk->items[i] != NULL)
|
||||
file_print(chunk->items[i]);
|
||||
}
|
||||
|
||||
static void metadata_to_buf(char **buf, FileMetadata *m) {
|
||||
int present = (m != NULL) ? 1 : 0;
|
||||
memcpy(*buf, &present, sizeof(int));
|
||||
@@ -86,53 +77,6 @@ static FileMetadata *metadata_from_buf(char **buf) {
|
||||
return m;
|
||||
}
|
||||
|
||||
static unsigned long long per_file_chunk_format_size(File *file) {
|
||||
return sizeof(int) + strlen(file->path) + sizeof(int) +
|
||||
(file->metadata ? FILE_METADATA_WIRE_SIZE : 0) +
|
||||
sizeof(unsigned long long) + file->data->size;
|
||||
}
|
||||
|
||||
Data *chunk_format(Chunk *chunk) {
|
||||
unsigned long long buffer_size = 0;
|
||||
for (int i = 0; i < chunk->element_count; ++i) {
|
||||
buffer_size += per_file_chunk_format_size(chunk->items[i]);
|
||||
}
|
||||
|
||||
char *data = malloc(buffer_size);
|
||||
if (data == NULL) {
|
||||
perror("Could not allocate data for ChunkFormated!");
|
||||
exit(EXIT_FAILURE);
|
||||
}
|
||||
char *current_data_pointer = data;
|
||||
for (int i = 0; i < chunk->element_count; ++i) {
|
||||
File *file = chunk->items[i];
|
||||
// add path len
|
||||
int path_length = (int)strlen(file->path);
|
||||
memcpy(current_data_pointer, &path_length, sizeof(int));
|
||||
current_data_pointer += sizeof(int);
|
||||
// add path
|
||||
memcpy(current_data_pointer, file->path, path_length);
|
||||
current_data_pointer += path_length;
|
||||
// add metadata
|
||||
metadata_to_buf(¤t_data_pointer, file->metadata);
|
||||
// add file data len
|
||||
unsigned long long file_length = file->data->size;
|
||||
memcpy(current_data_pointer, &file_length, sizeof(unsigned long long));
|
||||
current_data_pointer += sizeof(unsigned long long);
|
||||
// add file data
|
||||
if (file->data->data == NULL) {
|
||||
file_load_data(file);
|
||||
}
|
||||
memcpy(current_data_pointer, file->data->data, file_length);
|
||||
current_data_pointer += file_length;
|
||||
}
|
||||
if (current_data_pointer - data != (long)(long)buffer_size) {
|
||||
perror("Buffer of Chunk wasn't filled enough!");
|
||||
exit(EXIT_FAILURE);
|
||||
}
|
||||
return chunk_data_create(data, buffer_size);
|
||||
}
|
||||
|
||||
static unsigned long long per_file_serialize_size(File *file, bool use_metadata) {
|
||||
return sizeof(size_t) + strlen(file->path) +
|
||||
(use_metadata ? sizeof(int) + (file->metadata ? FILE_METADATA_WIRE_SIZE : 0) : 0) +
|
||||
@@ -284,19 +228,4 @@ Chunk *chunk_decompress(Data *compressed_data, bool use_metadata) {
|
||||
return chunk;
|
||||
}
|
||||
|
||||
Data *chunk_data_create(void *data, unsigned long long data_size) {
|
||||
Data *chunk_formated = malloc(sizeof(Data));
|
||||
if (chunk_formated == NULL) {
|
||||
perror("Could not allocate memory for ChunkFormated");
|
||||
exit(EXIT_FAILURE);
|
||||
}
|
||||
chunk_formated->data = data;
|
||||
chunk_formated->size = data_size;
|
||||
return chunk_formated;
|
||||
}
|
||||
|
||||
void chunk_data_delete(void *chunk) {
|
||||
Data *chunk_data = (Data *)chunk;
|
||||
free(chunk_data->data);
|
||||
free(chunk_data);
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user