feat(p5-socket): --address, -4/-6, --sockopts, server bind options

This commit is contained in:
2026-09-09 13:41:28 +02:00
parent 90ccf297d7
commit 07d1dd84f7
15 changed files with 715 additions and 45 deletions
+12 -3
View File
@@ -373,12 +373,21 @@ static Client* connect_transfer_client(const Config* config) {
Client* client = client_create();
if (!client)
return NULL;
/* Socket/connect concerns that never cross the wire: --address (source bind),
* -4/-6 (family pinning), and --sockopts. Passed straight to the TCP layer. */
TcpConnectOptions connect_opts;
connect_opts.bind_address = config->address;
connect_opts.family = tcp_connect_family(config->ipv4, config->ipv6);
connect_opts.sockopts = config->sockopts;
connect_opts.sockopt_count = config->sockopt_count;
bool connected;
if (config->use_tls) {
connected = client_connect_tls(client, config->server_host, config->server_port,
config->tls_cert, config->tls_key, config->tls_ca);
connected = client_connect_tls_ex(client, config->server_host, config->server_port,
config->tls_cert, config->tls_key, config->tls_ca,
&connect_opts);
} else {
connected = client_connect(client, config->server_host, config->server_port);
connected = client_connect_ex(client, config->server_host, config->server_port,
&connect_opts);
}
if (!connected) {
client_disconnect(client);