Skip to content

File SolidSyslogStreamSender.h

FileList > Core > Interface > SolidSyslogStreamSender.h

Go to the source code of this file

A Sender that delivers each message octet-framed (RFC 6587 octet-counting: a decimal length, a space, then the message bytes) over any injected Stream — plain TCP, TLS, or a caller-supplied byte transport. More...

  • #include "SolidSyslogEndpoint.h"
  • #include "ExternC.h"

Classes

Type Name
struct SolidSyslogStreamSenderConfig
Wiring for SolidSyslogStreamSender_Create, a sender that octet-frames each message (RFC 6587) over any injected Stream (plain TCP, TLS, or a caller-supplied byte transport).

Public Functions

Type Name
struct SolidSyslogSender * SolidSyslogStreamSender_Create (const struct SolidSyslogStreamSenderConfig * config)
Create a stream sender from config .
void SolidSyslogStreamSender_Destroy (struct SolidSyslogSender * base)
Release the sender's pool slot, closing the stream first.

Detailed Description

It resolves the endpoint and opens the stream lazily on the first Send, reconnecting when the endpoint version changes or after any send failure (a short or failed write closes the stream so the next Send reconnects). Repeated delivery failures and the recovery after them are reported once each via SolidSyslog_Error (DELIVERY_FAILED / DELIVERY_RESTORED), so a flapping link is not a log storm. Destroy closes the stream but does not free the injected Resolver, Stream, or Address.

Public Functions Documentation

function SolidSyslogStreamSender_Create

Create a stream sender from config .

struct SolidSyslogSender * SolidSyslogStreamSender_Create (
    const struct SolidSyslogStreamSenderConfig * config
) 

Never returns NULL: a NULL or invalid config, or an exhausted sender pool, reports via SolidSyslog_Error and returns the shared NullSender (Send drops on the floor), so the result is safe to wire without a null-check.


function SolidSyslogStreamSender_Destroy

Release the sender's pool slot, closing the stream first.

void SolidSyslogStreamSender_Destroy (
    struct SolidSyslogSender * base
) 

Does not free the injected Resolver, Stream, or Address; the caller owns those.



The documentation for this class was generated from the following file Core/Interface/SolidSyslogStreamSender.h