1 /* SPDX-License-Identifier: LGPL-2.1-or-later */
7 #include "journal-remote-parse.h"
8 #include "journal-remote-write.h"
9 #include "journal-vacuum.h"
12 #include "microhttpd-util.h"
14 typedef struct MHDDaemonWrapper MHDDaemonWrapper
;
16 struct MHDDaemonWrapper
{
18 struct MHD_Daemon
*daemon
;
20 sd_event_source
*io_event
;
21 sd_event_source
*timer_event
;
24 MHDDaemonWrapper
*MHDDaemonWrapper_free(MHDDaemonWrapper
*d
);
25 DEFINE_TRIVIAL_CLEANUP_FUNC(MHDDaemonWrapper
*, MHDDaemonWrapper_free
);
29 RemoteSource
**sources
;
33 sd_event_source
*sigterm_event
, *sigint_event
, *listen_event
;
36 Writer
*_single_writer
;
42 const char *output
; /* either the output file or directory */
44 JournalWriteSplitMode split_mode
;
45 JournalFileFlags file_flags
;
47 JournalMetrics metrics
;
49 extern RemoteServer
*journal_remote_server_global
;
51 int journal_remote_server_init(
54 JournalWriteSplitMode split_mode
,
55 JournalFileFlags file_flags
);
57 int journal_remote_get_writer(RemoteServer
*s
, const char *host
, Writer
**writer
);
59 int journal_remote_add_source(RemoteServer
*s
, int fd
, char* name
, bool own_name
);
60 int journal_remote_add_raw_socket(RemoteServer
*s
, int fd
);
61 int journal_remote_handle_raw_source(
62 sd_event_source
*event
,
67 void journal_remote_server_destroy(RemoteServer
*s
);