Skip to content

wolfSSL platform

«interface»SolidSyslogStreamWolfSslStreamWolfSsl«interface»SolidSyslogStream«interface»SolidSyslogWolfSslCredentials

Struct SolidSyslogWolfSslStreamConfig

ClassList > SolidSyslogWolfSslStreamConfig

  • #include <SolidSyslogWolfSslStream.h>
struct SolidSyslogWolfSslStreamConfig
{
    struct SolidSyslogStream* Transport;
    struct SolidSyslogWolfSslCredentials* Credentials;
    SolidSyslogSleepFunction Sleep;
    SolidSyslogTlsHandshakeTimeoutFunction GetHandshakeTimeoutMs;
    void* HandshakeTimeoutContext;
    void* Heap;
    SolidSyslogWolfSslProfileFunction Profile;
    void* ProfileContext;
    SolidSyslogStreamVersionFunction Version;
    void* VersionContext;
};

Detailed Description

Wires SolidSyslogWolfSslStream 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 SolidSyslogWolfSslStream_Create.

struct SolidSyslogWolfSslCredentials* SolidSyslogWolfSslStreamConfig::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 SolidSyslogWolfSslStream_Destroy.


GetHandshakeTimeoutMs

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

SolidSyslogTlsHandshakeTimeoutFunction SolidSyslogWolfSslStreamConfig::GetHandshakeTimeoutMs;


HandshakeTimeoutContext

Passed back to GetHandshakeTimeoutMs unchanged; NULL is fine.

void* SolidSyslogWolfSslStreamConfig::HandshakeTimeoutContext;


Heap

The heap hint every allocation this stream asks wolfSSL for is made against - the context, the session and what they hold - passed to wolfSSL_CTX_new_ex as it stands.

void* SolidSyslogWolfSslStreamConfig::Heap;

NULL uses the library's default allocator. Meaningful on a build with WOLFSSL_STATIC_MEMORY or a custom allocator that reads the hint; other builds ignore it.


Profile

Supplies the per-connection profile.

SolidSyslogWolfSslProfileFunction SolidSyslogWolfSslStreamConfig::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* SolidSyslogWolfSslStreamConfig::ProfileContext;


Sleep

Bridges the WANT_READ/WANT_WRITE polls of the bounded handshake retry; required - a NULL is reported at SolidSyslogWolfSslStream_Create.

SolidSyslogSleepFunction SolidSyslogWolfSslStreamConfig::Sleep;


Transport

Underlying byte stream the TLS records ride on; required - a NULL is reported at SolidSyslogWolfSslStream_Create.

struct SolidSyslogStream* SolidSyslogWolfSslStreamConfig::Transport;

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


Version

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

SolidSyslogStreamVersionFunction SolidSyslogWolfSslStreamConfig::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* SolidSyslogWolfSslStreamConfig::VersionContext;



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