Skip to content
«interface»SolidSyslogSenderStreamSenderCore«interface»SolidSyslogResolver«interface»SolidSyslogStream«interface»SolidSyslogAddress

File SolidSyslogStreamSender.h

FileList > Core > Interface > SolidSyslogStreamSender.h

  • #include "SolidSyslogEndpoint.h"
  • #include "SolidSyslogExternC.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).

Detailed Description

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.

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

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.


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