feat: add -f/--sendfile for zero-copy file transfer

- Add file_send_sendfile() using sendfile() syscall to send file
  content directly from fd to socket, bypassing userspace memory
- Add use_sendfile field to Config struct (default false)
- Add -f / --sendfile flag parsing in client.c
- sendfile path in send_chunk() used when -f is set without -c or -s
- send_files_multithreaded() falls back to single-threaded when
  sendfile is enabled (loader pipeline becomes unnecessary)
- Add Sendfile (-f) test case to test.py
This commit is contained in:
2026-07-05 16:25:20 +02:00
parent e7c23c135b
commit 01045d7d14
7 changed files with 53 additions and 2 deletions
+1
View File
@@ -20,6 +20,7 @@ void file_destroy(void *item);
void file_load_data(File *file);
void file_print(void *item);
void file_send_single_calls(File *file, int file_descriptor);
void file_send_sendfile(File *file, int file_descriptor);
size_t file_content_to_buffer(File *file);
FileReceive *file_receive_create(char *path, Data *data);