fuzz-journal-remote: allow fuzzer to be built without µhttpd
authorZbigniew Jędrzejewski-Szmek <zbyszek@in.waw.pl>
Wed, 16 May 2018 11:30:37 +0000 (13:30 +0200)
committerZbigniew Jędrzejewski-Szmek <zbyszek@in.waw.pl>
Thu, 31 May 2018 11:04:18 +0000 (13:04 +0200)
journal-remote still requires µhttpd, but things are easier if the fuzzer
can be built without.

src/journal-remote/journal-remote.c
src/journal-remote/journal-remote.h
src/journal-remote/meson.build

index 15e855b..e1810be 100644 (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++)
index d4e068d..884434c 100644 (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;
index 99b9003..940153c 100644 (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,