fix: sendfile path now conditionally sends metadata
This commit is contained in:
+1
-1
@@ -32,7 +32,7 @@ int send_chunk(Client *client, Chunk *chunk, Config *config) {
|
|||||||
} else if (config->use_sendfile && !config->use_compression) {
|
} else if (config->use_sendfile && !config->use_compression) {
|
||||||
for (int i = 0; i < chunk->element_count; i++) {
|
for (int i = 0; i < chunk->element_count; i++) {
|
||||||
send_status(client->file_descriptor, STATUS_NEXT);
|
send_status(client->file_descriptor, STATUS_NEXT);
|
||||||
file_send_sendfile(chunk->items[i], client->file_descriptor);
|
file_send_sendfile(chunk->items[i], client->file_descriptor, config->use_metadata);
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
for (int i = 0; i < chunk->element_count; i++) {
|
for (int i = 0; i < chunk->element_count; i++) {
|
||||||
|
|||||||
+3
-1
@@ -131,8 +131,10 @@ void file_send_single_calls(File *file, int file_descriptor, bool use_metadata)
|
|||||||
send_data(file_descriptor, file->data->data, file->data->size);
|
send_data(file_descriptor, file->data->data, file->data->size);
|
||||||
}
|
}
|
||||||
|
|
||||||
void file_send_sendfile(File *file, int file_descriptor) {
|
void file_send_sendfile(File *file, int file_descriptor, bool use_metadata) {
|
||||||
send_str(file_descriptor, file->path);
|
send_str(file_descriptor, file->path);
|
||||||
|
if (use_metadata)
|
||||||
|
metadata_send(file_descriptor, file->metadata);
|
||||||
|
|
||||||
int fd = open(file->path, O_RDONLY);
|
int fd = open(file->path, O_RDONLY);
|
||||||
if (fd == -1) {
|
if (fd == -1) {
|
||||||
|
|||||||
+1
-1
@@ -24,7 +24,7 @@ void file_destroy(void *item);
|
|||||||
void file_load_data(File *file);
|
void file_load_data(File *file);
|
||||||
void file_print(void *item);
|
void file_print(void *item);
|
||||||
void file_send_single_calls(File *file, int file_descriptor, bool use_metadata);
|
void file_send_single_calls(File *file, int file_descriptor, bool use_metadata);
|
||||||
void file_send_sendfile(File *file, int file_descriptor);
|
void file_send_sendfile(File *file, int file_descriptor, bool use_metadata);
|
||||||
size_t file_content_to_buffer(File *file);
|
size_t file_content_to_buffer(File *file);
|
||||||
FileMetadata *file_metadata_create(struct stat *stats);
|
FileMetadata *file_metadata_create(struct stat *stats);
|
||||||
void file_metadata_destroy(void *metadata);
|
void file_metadata_destroy(void *metadata);
|
||||||
|
|||||||
Reference in New Issue
Block a user