Line data Source code
1 : /* SPDX-FileCopyrightText: Copyright 2026 Cozens Software Solutions Limited
2 : * SPDX-License-Identifier: PolyForm-Noncommercial-1.0.0 OR LicenseRef-PolyForm-Internal-Use-1.0.0 OR LicenseRef-COSOSO-Commercial
3 : */
4 :
5 : #ifndef SOLIDSYSLOGLWIPSOCKETTCPSTREAMPRIVATE_H
6 : #define SOLIDSYSLOGLWIPSOCKETTCPSTREAMPRIVATE_H
7 :
8 : #include <stdbool.h>
9 : #include <stdint.h>
10 :
11 : #include "SolidSyslogError.h"
12 : #include "SolidSyslogLwipSocketTcpStream.h"
13 : #include "SolidSyslogLwipSocketTcpStreamErrors.h"
14 : #include "SolidSyslogPrival.h"
15 : #include "SolidSyslogStreamDefinition.h"
16 : #include "SolidSyslogStreamOpenHealth.h"
17 :
18 : struct SolidSyslogLwipSocketTcpStream
19 : {
20 : struct SolidSyslogStream Base;
21 : struct SolidSyslogLwipSocketTcpStreamConfig Config;
22 : int Fd;
23 : struct SolidSyslogStreamOpenHealth OpenHealth;
24 : };
25 :
26 : void SolidSyslogLwipSocketTcpStream_Initialise(
27 : struct SolidSyslogStream* base,
28 : const struct SolidSyslogLwipSocketTcpStreamConfig* config
29 : );
30 : void SolidSyslogLwipSocketTcpStream_Cleanup(struct SolidSyslogStream* base);
31 :
32 : /* The one seam the build chooses between: which keepalive timings the stack
33 : * lets us set, and in what unit, depends on LWIP_TCP_KEEPALIVE. Answers
34 : * whether the stack took every timing it was given. */
35 : bool SolidSyslogLwipSocketTcpStream_ApplyKeepalive(int fd);
36 :
37 14 : static inline void LwipSocketTcpStream_Report(
38 : enum SolidSyslogSeverity severity,
39 : uint16_t category,
40 : enum SolidSyslogTcpStreamErrors code
41 : )
42 : {
43 14 : SolidSyslog_Error(severity, &SolidSyslogLwipSocketTcpStreamErrorSource, category, (int32_t) code);
44 14 : }
45 :
46 : #endif /* SOLIDSYSLOGLWIPSOCKETTCPSTREAMPRIVATE_H */
|