fuzz-journal-remote: allow fuzzer to be built without µhttpd

journal-remote still requires µhttpd, but things are easier if the fuzzer
can be built without.
This commit is contained in:
Zbigniew Jędrzejewski-Szmek 2018-05-16 13:30:37 +02:00
parent 40c10d3f00
commit 63e2ebcdaa
3 changed files with 26 additions and 9 deletions

View File

@ -342,17 +342,21 @@ int journal_remote_server_init(
return 0;
}
#if HAVE_MICROHTTPD
static void MHDDaemonWrapper_free(MHDDaemonWrapper *d) {
MHD_stop_daemon(d->daemon);
sd_event_source_unref(d->io_event);
sd_event_source_unref(d->timer_event);
free(d);
}
#endif
RemoteServer* journal_remote_server_destroy(RemoteServer *s) {
size_t i;
#if HAVE_MICROHTTPD
hashmap_free_with_destructor(s->daemons, MHDDaemonWrapper_free);
#endif
assert(s->sources_size == 0 || s->sources);
for (i = 0; i < s->sources_size; i++)

View File

@ -12,6 +12,8 @@
#include "hashmap.h"
#include "journal-remote-parse.h"
#include "journal-remote-write.h"
#if HAVE_MICROHTTPD
#include "microhttpd-util.h"
typedef struct MHDDaemonWrapper MHDDaemonWrapper;
@ -23,6 +25,7 @@ struct MHDDaemonWrapper {
sd_event_source *io_event;
sd_event_source *timer_event;
};
#endif
struct RemoteServer {
RemoteSource **sources;
@ -36,8 +39,9 @@ struct RemoteServer {
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;

View File

@ -8,16 +8,25 @@ systemd_journal_upload_sources = files('''
journal-upload-journal.c
'''.split())
libsystemd_journal_remote_sources = files('''
journal-remote-parse.h
journal-remote-parse.c
journal-remote-write.h
journal-remote-write.c
journal-remote.h
journal-remote.c
'''.split())
if conf.get('HAVE_MICROHTTPD') == 1
libsystemd_journal_remote_sources += files('''
microhttpd-util.h
microhttpd-util.c
'''.split())
endif
libsystemd_journal_remote = static_library(
'systemd-journal-remote',
'journal-remote-parse.h',
'journal-remote-parse.c',
'journal-remote-write.h',
'journal-remote-write.c',
'journal-remote.h',
'journal-remote.c',
'microhttpd-util.h',
'microhttpd-util.c',
libsystemd_journal_remote_sources,
include_directories : includes,
dependencies : [threads,
libmicrohttpd,