66 lines
1.7 KiB
C
66 lines
1.7 KiB
C
/* SPDX-License-Identifier: LGPL-2.1+ */
|
|
#pragma once
|
|
|
|
#include "sd-event.h"
|
|
|
|
#include "hashmap.h"
|
|
#include "journal-remote-parse.h"
|
|
#include "journal-remote-write.h"
|
|
|
|
#if HAVE_MICROHTTPD
|
|
#include "microhttpd-util.h"
|
|
|
|
typedef struct MHDDaemonWrapper MHDDaemonWrapper;
|
|
|
|
struct MHDDaemonWrapper {
|
|
uint64_t fd;
|
|
struct MHD_Daemon *daemon;
|
|
|
|
sd_event_source *io_event;
|
|
sd_event_source *timer_event;
|
|
};
|
|
#endif
|
|
|
|
struct RemoteServer {
|
|
RemoteSource **sources;
|
|
size_t sources_size;
|
|
size_t active;
|
|
|
|
sd_event *events;
|
|
sd_event_source *sigterm_event, *sigint_event, *listen_event;
|
|
|
|
Hashmap *writers;
|
|
Writer *_single_writer;
|
|
uint64_t event_count;
|
|
|
|
#if HAVE_MICROHTTPD
|
|
Hashmap *daemons;
|
|
#endif
|
|
const char *output; /* either the output file or directory */
|
|
|
|
JournalWriteSplitMode split_mode;
|
|
bool compress;
|
|
bool seal;
|
|
bool check_trust;
|
|
};
|
|
extern RemoteServer *journal_remote_server_global;
|
|
|
|
int journal_remote_server_init(
|
|
RemoteServer *s,
|
|
const char *output,
|
|
JournalWriteSplitMode split_mode,
|
|
bool compress,
|
|
bool seal);
|
|
|
|
int journal_remote_get_writer(RemoteServer *s, const char *host, Writer **writer);
|
|
|
|
int journal_remote_add_source(RemoteServer *s, int fd, char* name, bool own_name);
|
|
int journal_remote_add_raw_socket(RemoteServer *s, int fd);
|
|
int journal_remote_handle_raw_source(
|
|
sd_event_source *event,
|
|
int fd,
|
|
uint32_t revents,
|
|
RemoteServer *s);
|
|
|
|
void journal_remote_server_destroy(RemoteServer *s);
|