From 05313f00ea6037718840826ac61bb13b04b89434 Mon Sep 17 00:00:00 2001 From: TapTap Date: Thu, 3 Sep 2026 21:46:50 +0200 Subject: [PATCH] fix: prioritize whole-file validation --- src/client/client_validation.c | 6 +++--- tests/test_client_cli.c | 7 +++++++ 2 files changed, 10 insertions(+), 3 deletions(-) diff --git a/src/client/client_validation.c b/src/client/client_validation.c index 106580f..e807085 100644 --- a/src/client/client_validation.c +++ b/src/client/client_validation.c @@ -23,15 +23,15 @@ bool validate_config(const Config* config) { log_message(LOG_LEVEL_ERROR, "--incremental is not supported with -s (chunk serialization)"); return false; } - if (config->use_delta && !config->use_incremental) { + if (config->use_delta && !config->whole_file && !config->use_incremental) { log_message(LOG_LEVEL_ERROR, "--delta requires --incremental"); return false; } - if (config->use_delta && config->use_chunk_serialization) { + if (config->use_delta && !config->whole_file && config->use_chunk_serialization) { log_message(LOG_LEVEL_ERROR, "--delta cannot be combined with -s (chunk serialization)"); return false; } - if (config->use_delta && config->use_sendfile) { + if (config->use_delta && !config->whole_file && config->use_sendfile) { log_message(LOG_LEVEL_ERROR, "--delta cannot be combined with -f (sendfile)"); return false; } diff --git a/tests/test_client_cli.c b/tests/test_client_cli.c index c1cb03f..a557774 100644 --- a/tests/test_client_cli.c +++ b/tests/test_client_cli.c @@ -59,6 +59,13 @@ static void test_validate_config_delta_sendfile_constraints() { cfg->use_incremental = true; cfg->use_sendfile = true; EXPECT_FALSE(validate_config(cfg)); + + /* Whole-file makes delta selection inactive, so these combinations are valid. */ + cfg->whole_file = true; + EXPECT_TRUE(validate_config(cfg)); + + cfg->use_incremental = false; + EXPECT_TRUE(validate_config(cfg)); config_delete(cfg); }