AXIAM C++ SDK 1.0.0-alpha8
Authentication, authorization, JWKS & route guards (REST + mTLS)
Loading...
Searching...
No Matches
Public Member Functions | Public Attributes | List of all members
axiam::TlsConfig Struct Reference

Immutable TLS / mTLS material handed to the libcurl transport factory. More...

#include <transport.hpp>

Public Member Functions

bool has_client_cert () const
 
bool has_custom_ca () const
 

Public Attributes

std::string custom_ca_pem
 
std::string client_cert_pem
 
Sensitive< std::string > client_key_pem
 
long connect_timeout_ms = 10000
 
long request_timeout_ms = 30000
 
unsigned max_concurrent_requests = 16
 Maximum libcurl easy handles the transport keeps, i.e.
 

Detailed Description

Immutable TLS / mTLS material handed to the libcurl transport factory.

Strict server verification is ALWAYS on (§6); these fields only add a custom CA to the trust chain and/or present a client identity certificate (§6.1).

Member Function Documentation

◆ has_client_cert()

bool axiam::TlsConfig::has_client_cert ( ) const
inline

◆ has_custom_ca()

bool axiam::TlsConfig::has_custom_ca ( ) const
inline

Member Data Documentation

◆ custom_ca_pem

std::string axiam::TlsConfig::custom_ca_pem

◆ client_cert_pem

std::string axiam::TlsConfig::client_cert_pem

◆ client_key_pem

Sensitive<std::string> axiam::TlsConfig::client_key_pem

◆ connect_timeout_ms

long axiam::TlsConfig::connect_timeout_ms = 10000

◆ request_timeout_ms

long axiam::TlsConfig::request_timeout_ms = 30000

◆ max_concurrent_requests

unsigned axiam::TlsConfig::max_concurrent_requests = 16

Maximum libcurl easy handles the transport keeps, i.e.

the number of requests it can genuinely have in flight at once.

Before this existed the transport owned exactly ONE easy handle behind a mutex, so every call from every thread serialized — a client used concurrently had a p95 dominated by lock queueing rather than by the server. Set this to your application's expected concurrency; callers beyond it wait for a handle rather than opening an unbounded number of connections.

Cookies, DNS and TLS session state are shared across the handles (via libcurl's CURLSH), so the session is one session no matter which handle serves a given request. Connections are NOT shared: each handle keeps its own hot connection, which is the point.


The documentation for this struct was generated from the following file: