Skip to content

OpenSSL platform

«interface»SolidSyslogStreamOpenSslStreamOpenSsl«interface»SolidSyslogStream«interface»SolidSyslogOpenSslCredentials

Struct SolidSyslogOpenSslStreamConfig

ClassList > SolidSyslogOpenSslStreamConfig

  • #include <SolidSyslogOpenSslStream.h>
struct SolidSyslogOpenSslStreamConfig
{
    struct SolidSyslogStream* Transport;
    struct SolidSyslogOpenSslCredentials* Credentials;
    SolidSyslogSleepFunction Sleep;
    SolidSyslogTlsHandshakeTimeoutFunction GetHandshakeTimeoutMs;
    void* HandshakeTimeoutContext;
    SolidSyslogOpenSslProfileFunction Profile;
    void* ProfileContext;
    SolidSyslogStreamVersionFunction Version;
    void* VersionContext;
};

Detailed Description

Wires SolidSyslogOpenSslStream to its transport, trust anchors, and identity.

Wiring only: every value a connection is made with arrives through the Credentials or the Profile, so nothing here goes stale when a deployment changes.

Public Attributes Documentation

Credentials

Where the trust anchors, any pinned peer fingerprints and the mutual-TLS client credential come from; required - a NULL is reported at SolidSyslogOpenSslStream_Create.

struct SolidSyslogOpenSslCredentials* SolidSyslogOpenSslStreamConfig::Credentials;

Asked once per connection, so material is fetched only for a connection actually being made, and told when the connection ends. Borrowed - the caller owns it and must keep it valid until SolidSyslogOpenSslStream_Destroy.


GetHandshakeTimeoutMs

Per-attempt handshake deadline in ms; NULL uses the SOLIDSYSLOG_TLS_HANDSHAKE_TIMEOUT_MS tunable.

SolidSyslogTlsHandshakeTimeoutFunction SolidSyslogOpenSslStreamConfig::GetHandshakeTimeoutMs;


HandshakeTimeoutContext

Passed back to GetHandshakeTimeoutMs unchanged; NULL is fine.

void* SolidSyslogOpenSslStreamConfig::HandshakeTimeoutContext;


Profile

Supplies the per-connection profile.

SolidSyslogOpenSslProfileFunction SolidSyslogOpenSslStreamConfig::Profile;

NULL leaves every profile field at the library default, which for ServerName means an unverified peer.


ProfileContext

Passed to Profile unchanged; NULL is fine.

void* SolidSyslogOpenSslStreamConfig::ProfileContext;


Sleep

Drives the bounded handshake retry between WANT_READ/WANT_WRITE polls; required - a NULL is reported at SolidSyslogOpenSslStream_Create.

SolidSyslogSleepFunction SolidSyslogOpenSslStreamConfig::Sleep;


Transport

Underlying byte stream carrying the ciphertext; required - a NULL is reported at SolidSyslogOpenSslStream_Create.

struct SolidSyslogStream* SolidSyslogOpenSslStreamConfig::Transport;

Borrowed - this stream may Close it but never destroys it; the caller owns it and must keep it valid until SolidSyslogOpenSslStream_Destroy.


Version

Bumped by the integrator when anything the stream uses changes at runtime - the Credentials, or anything the Profile supplies.

SolidSyslogStreamVersionFunction SolidSyslogOpenSslStreamConfig::Version;

The sender polls it every Send and reconnects on the next pass when it moves, so a rotation applies without calling SolidSyslogSender_Disconnect. Polled from the servicing thread, so it must be cheap and pure. NULL means this configuration never changes.


VersionContext

Passed to Version unchanged; NULL is fine.

void* SolidSyslogOpenSslStreamConfig::VersionContext;



The documentation for this class was generated from the following file Platform/OpenSsl/Interface/SolidSyslogOpenSslStream.h