Files
FastSync/src/shared/config.h
T
TapTap b9840b123d
CI / lint (push) Failing after 3s
CI / build-and-test (push) Has been skipped
CI / sanitizers (address) (push) Has been skipped
CI / lint (pull_request) Failing after 2s
CI / build-and-test (pull_request) Has been skipped
CI / sanitizers (address) (pull_request) Has been skipped
Merge remote-tracking branch 'origin/main' into ci/tier1-review-automation
# Conflicts:
#	src/client/client_send.c
#	src/shared/config.c
#	src/shared/file.c
#	src/shared/file.h
#	src/shared/protocol.h
2026-07-19 16:58:53 +02:00

57 lines
1.5 KiB
C

#ifndef CONFIG_H
#define CONFIG_H
#include <stdbool.h>
#include <stdint.h>
typedef enum { TRANSPORT_TCP, TRANSPORT_SSH } TransportType;
typedef struct Config {
char* version;
char* send_directory;
char* receive_root_directory;
bool save_to_disk;
bool use_multithreading;
bool use_chunk_serialization;
bool use_compression;
bool use_sendfile;
bool use_metadata;
bool show_progress;
bool dry_run;
bool use_delete;
int compression_level;
unsigned long long chunk_size;
int ssh_port;
TransportType transport;
char* ssh_destination;
char** exclude_patterns;
int exclude_count;
char** include_patterns;
int include_count;
unsigned long long max_size;
unsigned long long min_size;
bool use_incremental;
bool use_delta;
uint32_t delta_block_size;
unsigned long long delta_max_file_size;
bool use_tls;
char* tls_cert;
char* tls_key;
char* tls_ca;
} Config;
#define PROTOCOL_VERSION "1.2.0"
#define DEFAULT_CHUNK_SIZE (10 * 1024 * 1024)
Config* config_create(char* version, char* send_directory, char* receive_directory,
bool save_to_disk, bool use_multithreading, bool use_chunk_serialization,
bool use_compression, bool use_metadata, int compression_level,
bool use_sendfile, unsigned long long chunk_size);
void config_delete(Config* config);
bool config_send(int file_descriptor, const Config* config);
Config* config_receive(int file_descriptor);
bool is_remote_dest(const char* s);
void config_parse_ssh_dest(Config* config);
#endif