fix: review fixes — getsockname, memcpy, clang-format
CI / lint (pull_request) Failing after 9s
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 9s
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
This commit is contained in:
@@ -16,17 +16,17 @@ DirectoryScanner* directory_scanner_create(char* root_directory, bool use_metada
|
||||
int exclude_count, char** include_patterns,
|
||||
int include_count, unsigned long long max_size,
|
||||
unsigned long long min_size) {
|
||||
return directory_scanner_create_full(root_directory, use_metadata, chunk_size,
|
||||
exclude_patterns, exclude_count,
|
||||
include_patterns, include_count,
|
||||
max_size, min_size, true);
|
||||
return directory_scanner_create_full(root_directory, use_metadata, chunk_size, exclude_patterns,
|
||||
exclude_count, include_patterns, include_count, max_size,
|
||||
min_size, true);
|
||||
}
|
||||
|
||||
DirectoryScanner* directory_scanner_create_full(char* root_directory, bool use_metadata,
|
||||
unsigned long long chunk_size, char** exclude_patterns,
|
||||
int exclude_count, char** include_patterns,
|
||||
int include_count, unsigned long long max_size,
|
||||
unsigned long long min_size, bool follow_symlinks) {
|
||||
unsigned long long chunk_size,
|
||||
char** exclude_patterns, int exclude_count,
|
||||
char** include_patterns, int include_count,
|
||||
unsigned long long max_size,
|
||||
unsigned long long min_size, bool follow_symlinks) {
|
||||
DirectoryScanner* scanner = malloc(sizeof(DirectoryScanner));
|
||||
if (scanner == NULL)
|
||||
return NULL;
|
||||
|
||||
@@ -27,10 +27,11 @@ DirectoryScanner* directory_scanner_create(char* root_directory, bool use_metada
|
||||
int include_count, unsigned long long max_size,
|
||||
unsigned long long min_size);
|
||||
DirectoryScanner* directory_scanner_create_full(char* root_directory, bool use_metadata,
|
||||
unsigned long long chunk_size, char** exclude_patterns,
|
||||
int exclude_count, char** include_patterns,
|
||||
int include_count, unsigned long long max_size,
|
||||
unsigned long long min_size, bool follow_symlinks);
|
||||
unsigned long long chunk_size,
|
||||
char** exclude_patterns, int exclude_count,
|
||||
char** include_patterns, int include_count,
|
||||
unsigned long long max_size,
|
||||
unsigned long long min_size, bool follow_symlinks);
|
||||
Chunk* directory_scanner_next(DirectoryScanner* scanner);
|
||||
void directory_scanner_destroy(DirectoryScanner* scanner);
|
||||
|
||||
|
||||
+2
-2
@@ -20,8 +20,8 @@
|
||||
#include "protocol.h"
|
||||
#include "utils.h"
|
||||
|
||||
#define STREAM_THRESHOLD (64ULL * 1024 * 1024) /* 64 MB */
|
||||
#define STREAM_CHUNK_SIZE (1ULL * 1024 * 1024) /* 1 MB */
|
||||
#define STREAM_THRESHOLD (64ULL * 1024 * 1024) /* 64 MB */
|
||||
#define STREAM_CHUNK_SIZE (1ULL * 1024 * 1024) /* 1 MB */
|
||||
|
||||
File* file_create(const char* path) {
|
||||
File* file = (File*)malloc(sizeof(File));
|
||||
|
||||
+10
-12
@@ -44,9 +44,11 @@ Server* server_create(int port) {
|
||||
server->ssl_ctx = NULL;
|
||||
|
||||
// Try IPv6 first, fall back to IPv4
|
||||
int fd = socket(AF_INET6, SOCK_STREAM, 0);
|
||||
int domain = AF_INET6;
|
||||
int fd = socket(domain, SOCK_STREAM, 0);
|
||||
if (fd < 0) {
|
||||
fd = socket(AF_INET, SOCK_STREAM, 0);
|
||||
domain = AF_INET;
|
||||
fd = socket(domain, SOCK_STREAM, 0);
|
||||
}
|
||||
if (fd < 0) {
|
||||
perror("Could not create Socket!");
|
||||
@@ -69,17 +71,11 @@ Server* server_create(int port) {
|
||||
return NULL;
|
||||
}
|
||||
|
||||
// Determine address family from the actual socket
|
||||
struct sockaddr_storage* addr = &server->address;
|
||||
socklen_t addr_len = sizeof(*addr);
|
||||
if (getsockname(fd, (struct sockaddr*)addr, &addr_len) == 0) {
|
||||
// Use the family of the socket we actually created
|
||||
}
|
||||
|
||||
struct sockaddr_in* addr4 = (struct sockaddr_in*)addr;
|
||||
struct sockaddr_in6* addr6 = (struct sockaddr_in6*)addr;
|
||||
|
||||
if (addr->ss_family == AF_INET6) {
|
||||
if (domain == AF_INET6) {
|
||||
addr6->sin6_family = AF_INET6;
|
||||
addr6->sin6_addr = in6addr_any;
|
||||
addr6->sin6_port = htons(port);
|
||||
@@ -94,7 +90,7 @@ Server* server_create(int port) {
|
||||
if (bind(server->file_descriptor, (struct sockaddr*)&server->address, server->address_length) <
|
||||
0) {
|
||||
// If IPv6 bind failed (maybe no IPv6), try IPv4
|
||||
if (addr->ss_family == AF_INET6) {
|
||||
if (domain == AF_INET6) {
|
||||
close(fd);
|
||||
fd = socket(AF_INET, SOCK_STREAM, 0);
|
||||
if (fd < 0) {
|
||||
@@ -254,8 +250,10 @@ bool client_connect(Client* client, char* host, int port) {
|
||||
}
|
||||
|
||||
// Save the connected address
|
||||
memcpy(&client->address, rp->ai_addr, rp->ai_addrlen);
|
||||
client->address_length = rp->ai_addrlen;
|
||||
size_t copy_len =
|
||||
rp->ai_addrlen < sizeof(client->address) ? rp->ai_addrlen : sizeof(client->address);
|
||||
memcpy(&client->address, rp->ai_addr, copy_len);
|
||||
client->address_length = (int)copy_len;
|
||||
freeaddrinfo(res);
|
||||
|
||||
// Close old fd if any and set new one
|
||||
|
||||
@@ -34,7 +34,7 @@ static void log_ssl_errors(void) {
|
||||
}
|
||||
|
||||
static SSL_CTX* create_ssl_ctx(bool is_server, const char* cert, const char* key,
|
||||
const char* ca_path) {
|
||||
const char* ca_path) {
|
||||
const SSL_METHOD* method = is_server ? TLS_server_method() : TLS_client_method();
|
||||
SSL_CTX* ctx = SSL_CTX_new(method);
|
||||
if (!ctx) {
|
||||
|
||||
Reference in New Issue
Block a user