fix: adapt tests and fix bugs from enhancements rebase onto main
CI / lint (pull_request) Failing after 3s
CI / build-and-test (pull_request) Has been skipped
CI / sanitizers (address) (pull_request) Has been skipped
CI / sanitizers (undefined) (pull_request) Has been skipped
CI / fuzz-build (pull_request) Has been skipped
CI / coverage (pull_request) Has been skipped
CI / valgrind (pull_request) Has been skipped
CI / lint (pull_request) Failing after 3s
CI / build-and-test (pull_request) Has been skipped
CI / sanitizers (address) (pull_request) Has been skipped
CI / sanitizers (undefined) (pull_request) Has been skipped
CI / fuzz-build (pull_request) Has been skipped
CI / coverage (pull_request) Has been skipped
CI / valgrind (pull_request) Has been skipped
- Fix transport_tcp.c: initialize server->ssl_ctx to NULL (prevents SSL_CTX_free on garbage when server_create_tls fails) - Fix test_transport_tcp.c: client_create now sets fd=-1, family=AF_UNSPEC - Fix test_transport_tcp.c: server address family may be AF_INET or AF_INET6 - Fix test_file_sendfile.c: send_path=false protocol includes file_type prefix
This commit is contained in:
@@ -45,6 +45,8 @@ Config* config_create(char* version, char* send_directory, char* receive_directo
|
||||
config->tls_cert = NULL;
|
||||
config->tls_key = NULL;
|
||||
config->tls_ca = NULL;
|
||||
config->follow_symlinks = false;
|
||||
config->partial = false;
|
||||
config->server_host = str_dup("127.0.0.1");
|
||||
config->server_port = 8080;
|
||||
return config;
|
||||
@@ -127,6 +129,26 @@ bool config_send(int file_descriptor, const Config* config) {
|
||||
return false;
|
||||
if (!send_n_data(file_descriptor, &config->delta_max_file_size, sizeof(unsigned long long)))
|
||||
return false;
|
||||
if (!send_int(file_descriptor, config->exclude_count))
|
||||
return false;
|
||||
for (int i = 0; i < config->exclude_count; i++) {
|
||||
if (!send_str(file_descriptor, config->exclude_patterns[i]))
|
||||
return false;
|
||||
}
|
||||
if (!send_int(file_descriptor, config->include_count))
|
||||
return false;
|
||||
for (int i = 0; i < config->include_count; i++) {
|
||||
if (!send_str(file_descriptor, config->include_patterns[i]))
|
||||
return false;
|
||||
}
|
||||
if (!send_n_data(file_descriptor, &config->max_size, sizeof(config->max_size)))
|
||||
return false;
|
||||
if (!send_n_data(file_descriptor, &config->min_size, sizeof(config->min_size)))
|
||||
return false;
|
||||
if (!send_int(file_descriptor, config->follow_symlinks))
|
||||
return false;
|
||||
if (!send_int(file_descriptor, config->partial))
|
||||
return false;
|
||||
Status status;
|
||||
if (!receive_status(file_descriptor, &status))
|
||||
return false;
|
||||
@@ -221,6 +243,70 @@ Config* config_receive(int file_descriptor) {
|
||||
config->tls_cert = NULL;
|
||||
config->tls_key = NULL;
|
||||
config->tls_ca = NULL;
|
||||
config->follow_symlinks = false;
|
||||
config->partial = false;
|
||||
|
||||
// Receive exclude patterns
|
||||
int ec;
|
||||
if (!receive_int(file_descriptor, &ec))
|
||||
goto error;
|
||||
config->exclude_count = ec;
|
||||
if (ec > 0) {
|
||||
config->exclude_patterns = malloc((size_t)ec * sizeof(char*));
|
||||
if (!config->exclude_patterns) {
|
||||
config->exclude_count = 0;
|
||||
goto error;
|
||||
}
|
||||
for (int i = 0; i < ec; i++) {
|
||||
config->exclude_patterns[i] = receive_str(file_descriptor);
|
||||
if (!config->exclude_patterns[i]) {
|
||||
for (int j = 0; j < i; j++)
|
||||
free(config->exclude_patterns[j]);
|
||||
free(config->exclude_patterns);
|
||||
config->exclude_patterns = NULL;
|
||||
config->exclude_count = 0;
|
||||
goto error;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
// Receive include patterns
|
||||
int ic;
|
||||
if (!receive_int(file_descriptor, &ic))
|
||||
goto error;
|
||||
config->include_count = ic;
|
||||
if (ic > 0) {
|
||||
config->include_patterns = malloc((size_t)ic * sizeof(char*));
|
||||
if (!config->include_patterns) {
|
||||
config->include_count = 0;
|
||||
goto error;
|
||||
}
|
||||
for (int i = 0; i < ic; i++) {
|
||||
config->include_patterns[i] = receive_str(file_descriptor);
|
||||
if (!config->include_patterns[i]) {
|
||||
for (int j = 0; j < i; j++)
|
||||
free(config->include_patterns[j]);
|
||||
free(config->include_patterns);
|
||||
config->include_patterns = NULL;
|
||||
config->include_count = 0;
|
||||
goto error;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
if (!receive_n_data(file_descriptor, &config->max_size, sizeof(config->max_size)))
|
||||
goto error;
|
||||
if (!receive_n_data(file_descriptor, &config->min_size, sizeof(config->min_size)))
|
||||
goto error;
|
||||
int tmp_follow;
|
||||
if (!receive_int(file_descriptor, &tmp_follow))
|
||||
goto error;
|
||||
config->follow_symlinks = tmp_follow;
|
||||
int tmp_partial;
|
||||
if (!receive_int(file_descriptor, &tmp_partial))
|
||||
goto error;
|
||||
config->partial = tmp_partial;
|
||||
|
||||
config->server_host = str_dup("127.0.0.1");
|
||||
config->server_port = 8080;
|
||||
if (!send_status(file_descriptor, STATUS_OK))
|
||||
|
||||
Reference in New Issue
Block a user