Browse code

Adds a module to use Prelude and connect to a prelude manager

To enable prelude compile with ./configure --enable-prelude

In ClamAV configuration file set Prelude Enable on yes and choose an analyzer name with PreludeAnalyzerName (default ClamAV).

You need to have a prelude manager to use this module.

Ningirsu authored on 2015/06/18 16:33:04
Showing 35 changed files
... ...
@@ -132,8 +132,8 @@ am__aclocal_m4_deps = $(top_srcdir)/m4/acinclude.m4 \
132 132
 	$(top_srcdir)/m4/ax_check_uname_syscall.m4 \
133 133
 	$(top_srcdir)/m4/fdpassing.m4 $(top_srcdir)/m4/lib-ld.m4 \
134 134
 	$(top_srcdir)/m4/lib-link.m4 $(top_srcdir)/m4/lib-prefix.m4 \
135
-	$(top_srcdir)/m4/libtool.m4 $(top_srcdir)/m4/llvm.m4 \
136
-	$(top_srcdir)/m4/ltargz.m4 $(top_srcdir)/m4/ltdl.m4 \
135
+	$(top_srcdir)/m4/lib-prelude.m4 $(top_srcdir)/m4/libtool.m4 \
136
+	$(top_srcdir)/m4/llvm.m4 $(top_srcdir)/m4/ltdl.m4 \
137 137
 	$(top_srcdir)/m4/ltoptions.m4 $(top_srcdir)/m4/ltsugar.m4 \
138 138
 	$(top_srcdir)/m4/ltversion.m4 $(top_srcdir)/m4/lt~obsolete.m4 \
139 139
 	$(top_srcdir)/m4/mmap_private.m4 $(top_srcdir)/m4/resolv.m4 \
... ...
@@ -194,6 +194,7 @@ am__aclocal_m4_deps = $(top_srcdir)/m4/acinclude.m4 \
194 194
 	$(top_srcdir)/m4/reorganization/sha_collect.m4 \
195 195
 	$(top_srcdir)/m4/reorganization/yara.m4 \
196 196
 	$(top_srcdir)/m4/reorganization/libfreshclam.m4 \
197
+	$(top_srcdir)/m4/reorganization/prelude.m4 \
197 198
 	$(top_srcdir)/m4/reorganization/bsd.m4 \
198 199
 	$(top_srcdir)/m4/reorganization/libs/curl.m4 \
199 200
 	$(top_srcdir)/m4/reorganization/substitutions.m4 \
... ...
@@ -430,6 +431,13 @@ LIBCLAMSHARED_CPPFLAGS = @LIBCLAMSHARED_CPPFLAGS@
430 430
 LIBLTDL = @LIBLTDL@
431 431
 LIBM = @LIBM@
432 432
 LIBOBJS = @LIBOBJS@
433
+LIBPRELUDE_CFLAGS = @LIBPRELUDE_CFLAGS@
434
+LIBPRELUDE_CONFIG = @LIBPRELUDE_CONFIG@
435
+LIBPRELUDE_CONFIG_PREFIX = @LIBPRELUDE_CONFIG_PREFIX@
436
+LIBPRELUDE_LDFLAGS = @LIBPRELUDE_LDFLAGS@
437
+LIBPRELUDE_LIBS = @LIBPRELUDE_LIBS@
438
+LIBPRELUDE_PREFIX = @LIBPRELUDE_PREFIX@
439
+LIBPRELUDE_PTHREAD_CFLAGS = @LIBPRELUDE_PTHREAD_CFLAGS@
433 440
 LIBS = @LIBS@
434 441
 LIBTOOL = @LIBTOOL@
435 442
 LIPO = @LIPO@
... ...
@@ -1331,6 +1331,7 @@ m4_include([m4/fdpassing.m4])
1331 1331
 m4_include([m4/lib-ld.m4])
1332 1332
 m4_include([m4/lib-link.m4])
1333 1333
 m4_include([m4/lib-prefix.m4])
1334
+m4_include([m4/lib-prelude.m4])
1334 1335
 m4_include([m4/libtool.m4])
1335 1336
 m4_include([m4/llvm.m4])
1336 1337
 m4_include([m4/ltargz.m4])
... ...
@@ -520,6 +520,12 @@
520 520
 /* Define to the version of this package. */
521 521
 #undef PACKAGE_VERSION
522 522
 
523
+/* Libprelude support enabled */
524
+#undef PRELUDE
525
+
526
+/* Define whether application use libtool >= 2.0 */
527
+#undef PRELUDE_APPLICATION_USE_LIBTOOL2
528
+
523 529
 /* scan buffer size */
524 530
 #undef SCANBUFF
525 531
 
... ...
@@ -107,8 +107,8 @@ am__aclocal_m4_deps = $(top_srcdir)/m4/acinclude.m4 \
107 107
 	$(top_srcdir)/m4/ax_check_uname_syscall.m4 \
108 108
 	$(top_srcdir)/m4/fdpassing.m4 $(top_srcdir)/m4/lib-ld.m4 \
109 109
 	$(top_srcdir)/m4/lib-link.m4 $(top_srcdir)/m4/lib-prefix.m4 \
110
-	$(top_srcdir)/m4/libtool.m4 $(top_srcdir)/m4/llvm.m4 \
111
-	$(top_srcdir)/m4/ltargz.m4 $(top_srcdir)/m4/ltdl.m4 \
110
+	$(top_srcdir)/m4/lib-prelude.m4 $(top_srcdir)/m4/libtool.m4 \
111
+	$(top_srcdir)/m4/llvm.m4 $(top_srcdir)/m4/ltdl.m4 \
112 112
 	$(top_srcdir)/m4/ltoptions.m4 $(top_srcdir)/m4/ltsugar.m4 \
113 113
 	$(top_srcdir)/m4/ltversion.m4 $(top_srcdir)/m4/lt~obsolete.m4 \
114 114
 	$(top_srcdir)/m4/mmap_private.m4 $(top_srcdir)/m4/resolv.m4 \
... ...
@@ -169,6 +169,7 @@ am__aclocal_m4_deps = $(top_srcdir)/m4/acinclude.m4 \
169 169
 	$(top_srcdir)/m4/reorganization/sha_collect.m4 \
170 170
 	$(top_srcdir)/m4/reorganization/yara.m4 \
171 171
 	$(top_srcdir)/m4/reorganization/libfreshclam.m4 \
172
+	$(top_srcdir)/m4/reorganization/prelude.m4 \
172 173
 	$(top_srcdir)/m4/reorganization/bsd.m4 \
173 174
 	$(top_srcdir)/m4/reorganization/libs/curl.m4 \
174 175
 	$(top_srcdir)/m4/reorganization/substitutions.m4 \
... ...
@@ -384,6 +385,13 @@ LIBCLAMSHARED_CPPFLAGS = @LIBCLAMSHARED_CPPFLAGS@
384 384
 LIBLTDL = @LIBLTDL@
385 385
 LIBM = @LIBM@
386 386
 LIBOBJS = @LIBOBJS@
387
+LIBPRELUDE_CFLAGS = @LIBPRELUDE_CFLAGS@
388
+LIBPRELUDE_CONFIG = @LIBPRELUDE_CONFIG@
389
+LIBPRELUDE_CONFIG_PREFIX = @LIBPRELUDE_CONFIG_PREFIX@
390
+LIBPRELUDE_LDFLAGS = @LIBPRELUDE_LDFLAGS@
391
+LIBPRELUDE_LIBS = @LIBPRELUDE_LIBS@
392
+LIBPRELUDE_PREFIX = @LIBPRELUDE_PREFIX@
393
+LIBPRELUDE_PTHREAD_CFLAGS = @LIBPRELUDE_PTHREAD_CFLAGS@
387 394
 LIBS = $(top_builddir)/libclamav/libclamav_internal_utils.la @CLAMAV_MILTER_LIBS@ @THREAD_LIBS@
388 395
 LIBTOOL = @LIBTOOL@
389 396
 LIPO = @LIPO@
... ...
@@ -90,6 +90,8 @@ am__aclocal_m4_deps = $(top_srcdir)/m4/acinclude.m4 \
90 90
 	$(top_srcdir)/m4/lib-link.m4 $(top_srcdir)/m4/lib-prefix.m4 \
91 91
 	$(top_srcdir)/m4/libtool.m4 $(top_srcdir)/m4/llvm.m4 \
92 92
 	$(top_srcdir)/m4/ltargz.m4 $(top_srcdir)/m4/ltdl.m4 \
93
+	$(top_srcdir)/m4/lib-prelude.m4 $(top_srcdir)/m4/libtool.m4 \
94
+	$(top_srcdir)/m4/llvm.m4 $(top_srcdir)/m4/ltdl.m4 \
93 95
 	$(top_srcdir)/m4/ltoptions.m4 $(top_srcdir)/m4/ltsugar.m4 \
94 96
 	$(top_srcdir)/m4/ltversion.m4 $(top_srcdir)/m4/lt~obsolete.m4 \
95 97
 	$(top_srcdir)/m4/mmap_private.m4 $(top_srcdir)/m4/resolv.m4 \
... ...
@@ -150,6 +152,7 @@ am__aclocal_m4_deps = $(top_srcdir)/m4/acinclude.m4 \
150 150
 	$(top_srcdir)/m4/reorganization/sha_collect.m4 \
151 151
 	$(top_srcdir)/m4/reorganization/yara.m4 \
152 152
 	$(top_srcdir)/m4/reorganization/libfreshclam.m4 \
153
+	$(top_srcdir)/m4/reorganization/prelude.m4 \
153 154
 	$(top_srcdir)/m4/reorganization/bsd.m4 \
154 155
 	$(top_srcdir)/m4/reorganization/libs/curl.m4 \
155 156
 	$(top_srcdir)/m4/reorganization/substitutions.m4 \
... ...
@@ -320,6 +323,13 @@ LIBCLAMSHARED_CPPFLAGS = @LIBCLAMSHARED_CPPFLAGS@
320 320
 LIBLTDL = @LIBLTDL@
321 321
 LIBM = @LIBM@
322 322
 LIBOBJS = @LIBOBJS@
323
+LIBPRELUDE_CFLAGS = @LIBPRELUDE_CFLAGS@
324
+LIBPRELUDE_CONFIG = @LIBPRELUDE_CONFIG@
325
+LIBPRELUDE_CONFIG_PREFIX = @LIBPRELUDE_CONFIG_PREFIX@
326
+LIBPRELUDE_LDFLAGS = @LIBPRELUDE_LDFLAGS@
327
+LIBPRELUDE_LIBS = @LIBPRELUDE_LIBS@
328
+LIBPRELUDE_PREFIX = @LIBPRELUDE_PREFIX@
329
+LIBPRELUDE_PTHREAD_CFLAGS = @LIBPRELUDE_PTHREAD_CFLAGS@
323 330
 LIBS = $(top_builddir)/libclamav/libclamav.la @THREAD_LIBS@
324 331
 LIBTOOL = @LIBTOOL@
325 332
 LIPO = @LIPO@
... ...
@@ -108,6 +108,8 @@ am__aclocal_m4_deps = $(top_srcdir)/m4/acinclude.m4 \
108 108
 	$(top_srcdir)/m4/lib-link.m4 $(top_srcdir)/m4/lib-prefix.m4 \
109 109
 	$(top_srcdir)/m4/libtool.m4 $(top_srcdir)/m4/llvm.m4 \
110 110
 	$(top_srcdir)/m4/ltargz.m4 $(top_srcdir)/m4/ltdl.m4 \
111
+	$(top_srcdir)/m4/lib-prelude.m4 $(top_srcdir)/m4/libtool.m4 \
112
+	$(top_srcdir)/m4/llvm.m4 $(top_srcdir)/m4/ltdl.m4 \
111 113
 	$(top_srcdir)/m4/ltoptions.m4 $(top_srcdir)/m4/ltsugar.m4 \
112 114
 	$(top_srcdir)/m4/ltversion.m4 $(top_srcdir)/m4/lt~obsolete.m4 \
113 115
 	$(top_srcdir)/m4/mmap_private.m4 $(top_srcdir)/m4/resolv.m4 \
... ...
@@ -168,6 +170,7 @@ am__aclocal_m4_deps = $(top_srcdir)/m4/acinclude.m4 \
168 168
 	$(top_srcdir)/m4/reorganization/sha_collect.m4 \
169 169
 	$(top_srcdir)/m4/reorganization/yara.m4 \
170 170
 	$(top_srcdir)/m4/reorganization/libfreshclam.m4 \
171
+	$(top_srcdir)/m4/reorganization/prelude.m4 \
171 172
 	$(top_srcdir)/m4/reorganization/bsd.m4 \
172 173
 	$(top_srcdir)/m4/reorganization/libs/curl.m4 \
173 174
 	$(top_srcdir)/m4/reorganization/substitutions.m4 \
... ...
@@ -338,6 +341,13 @@ LIBCLAMSHARED_CPPFLAGS = @LIBCLAMSHARED_CPPFLAGS@
338 338
 LIBLTDL = @LIBLTDL@
339 339
 LIBM = @LIBM@
340 340
 LIBOBJS = @LIBOBJS@
341
+LIBPRELUDE_CFLAGS = @LIBPRELUDE_CFLAGS@
342
+LIBPRELUDE_CONFIG = @LIBPRELUDE_CONFIG@
343
+LIBPRELUDE_CONFIG_PREFIX = @LIBPRELUDE_CONFIG_PREFIX@
344
+LIBPRELUDE_LDFLAGS = @LIBPRELUDE_LDFLAGS@
345
+LIBPRELUDE_LIBS = @LIBPRELUDE_LIBS@
346
+LIBPRELUDE_PREFIX = @LIBPRELUDE_PREFIX@
347
+LIBPRELUDE_PTHREAD_CFLAGS = @LIBPRELUDE_PTHREAD_CFLAGS@
341 348
 LIBS = $(top_builddir)/libclamav/libclamav.la @CLAMCONF_LIBS@ @CLAMD_LIBS@ @THREAD_LIBS@ @LIBCLAMAV_LIBS@
342 349
 LIBTOOL = @LIBTOOL@
343 350
 LIPO = @LIPO@
... ...
@@ -23,6 +23,8 @@ sbin_PROGRAMS = clamd
23 23
 clamd_SOURCES = \
24 24
     $(top_srcdir)/shared/output.c \
25 25
     $(top_srcdir)/shared/output.h \
26
+    $(top_srcdir)/shared/idmef_logging.c \
27
+    $(top_srcdir)/shared/idmef_logging.h \
26 28
     $(top_srcdir)/shared/optparser.c \
27 29
     $(top_srcdir)/shared/optparser.h \
28 30
     $(top_srcdir)/shared/getopt.c \
... ...
@@ -110,6 +110,8 @@ am__aclocal_m4_deps = $(top_srcdir)/m4/acinclude.m4 \
110 110
 	$(top_srcdir)/m4/lib-link.m4 $(top_srcdir)/m4/lib-prefix.m4 \
111 111
 	$(top_srcdir)/m4/libtool.m4 $(top_srcdir)/m4/llvm.m4 \
112 112
 	$(top_srcdir)/m4/ltargz.m4 $(top_srcdir)/m4/ltdl.m4 \
113
+	$(top_srcdir)/m4/lib-prelude.m4 $(top_srcdir)/m4/libtool.m4 \
114
+	$(top_srcdir)/m4/llvm.m4 $(top_srcdir)/m4/ltdl.m4 \
113 115
 	$(top_srcdir)/m4/ltoptions.m4 $(top_srcdir)/m4/ltsugar.m4 \
114 116
 	$(top_srcdir)/m4/ltversion.m4 $(top_srcdir)/m4/lt~obsolete.m4 \
115 117
 	$(top_srcdir)/m4/mmap_private.m4 $(top_srcdir)/m4/resolv.m4 \
... ...
@@ -170,6 +172,7 @@ am__aclocal_m4_deps = $(top_srcdir)/m4/acinclude.m4 \
170 170
 	$(top_srcdir)/m4/reorganization/sha_collect.m4 \
171 171
 	$(top_srcdir)/m4/reorganization/yara.m4 \
172 172
 	$(top_srcdir)/m4/reorganization/libfreshclam.m4 \
173
+	$(top_srcdir)/m4/reorganization/prelude.m4 \
173 174
 	$(top_srcdir)/m4/reorganization/bsd.m4 \
174 175
 	$(top_srcdir)/m4/reorganization/libs/curl.m4 \
175 176
 	$(top_srcdir)/m4/reorganization/substitutions.m4 \
... ...
@@ -184,7 +187,10 @@ am__installdirs = "$(DESTDIR)$(sbindir)" \
184 184
 	"$(DESTDIR)$(systemdsystemunitdir)"
185 185
 PROGRAMS = $(sbin_PROGRAMS)
186 186
 am__clamd_SOURCES_DIST = $(top_srcdir)/shared/output.c \
187
-	$(top_srcdir)/shared/output.h $(top_srcdir)/shared/optparser.c \
187
+	$(top_srcdir)/shared/output.h \
188
+	$(top_srcdir)/shared/idmef_logging.c \
189
+	$(top_srcdir)/shared/idmef_logging.h \
190
+	$(top_srcdir)/shared/optparser.c \
188 191
 	$(top_srcdir)/shared/optparser.h $(top_srcdir)/shared/getopt.c \
189 192
 	$(top_srcdir)/shared/getopt.h $(top_srcdir)/shared/misc.c \
190 193
 	$(top_srcdir)/shared/misc.h clamd.c tcpserver.c tcpserver.h \
... ...
@@ -203,6 +209,13 @@ am__clamd_SOURCES_DIST = $(top_srcdir)/shared/output.c \
203 203
 @BUILD_CLAMD_TRUE@	onaccess_ddd.$(OBJEXT) \
204 204
 @BUILD_CLAMD_TRUE@	onaccess_hash.$(OBJEXT) \
205 205
 @BUILD_CLAMD_TRUE@	onaccess_scth.$(OBJEXT)
206
+@BUILD_CLAMD_TRUE@	idmef_logging.$(OBJEXT) optparser.$(OBJEXT) \
207
+@BUILD_CLAMD_TRUE@	getopt.$(OBJEXT) misc.$(OBJEXT) \
208
+@BUILD_CLAMD_TRUE@	clamd.$(OBJEXT) tcpserver.$(OBJEXT) \
209
+@BUILD_CLAMD_TRUE@	localserver.$(OBJEXT) session.$(OBJEXT) \
210
+@BUILD_CLAMD_TRUE@	thrmgr.$(OBJEXT) server-th.$(OBJEXT) \
211
+@BUILD_CLAMD_TRUE@	scanner.$(OBJEXT) others.$(OBJEXT) \
212
+@BUILD_CLAMD_TRUE@	fan.$(OBJEXT)
206 213
 clamd_OBJECTS = $(am_clamd_OBJECTS)
207 214
 clamd_LDADD = $(LDADD)
208 215
 AM_V_lt = $(am__v_lt_@AM_V@)
... ...
@@ -387,6 +400,13 @@ LIBCLAMSHARED_CPPFLAGS = @LIBCLAMSHARED_CPPFLAGS@
387 387
 LIBLTDL = @LIBLTDL@
388 388
 LIBM = @LIBM@
389 389
 LIBOBJS = @LIBOBJS@
390
+LIBPRELUDE_CFLAGS = @LIBPRELUDE_CFLAGS@
391
+LIBPRELUDE_CONFIG = @LIBPRELUDE_CONFIG@
392
+LIBPRELUDE_CONFIG_PREFIX = @LIBPRELUDE_CONFIG_PREFIX@
393
+LIBPRELUDE_LDFLAGS = @LIBPRELUDE_LDFLAGS@
394
+LIBPRELUDE_LIBS = @LIBPRELUDE_LIBS@
395
+LIBPRELUDE_PREFIX = @LIBPRELUDE_PREFIX@
396
+LIBPRELUDE_PTHREAD_CFLAGS = @LIBPRELUDE_PTHREAD_CFLAGS@
390 397
 LIBS = $(top_builddir)/libclamav/libclamav.la @CLAMD_LIBS@ @THREAD_LIBS@
391 398
 LIBTOOL = @LIBTOOL@
392 399
 LIPO = @LIPO@
... ...
@@ -511,6 +531,8 @@ top_srcdir = @top_srcdir@
511 511
 @BUILD_CLAMD_TRUE@clamd_SOURCES = \
512 512
 @BUILD_CLAMD_TRUE@    $(top_srcdir)/shared/output.c \
513 513
 @BUILD_CLAMD_TRUE@    $(top_srcdir)/shared/output.h \
514
+@BUILD_CLAMD_TRUE@    $(top_srcdir)/shared/idmef_logging.c \
515
+@BUILD_CLAMD_TRUE@    $(top_srcdir)/shared/idmef_logging.h \
514 516
 @BUILD_CLAMD_TRUE@    $(top_srcdir)/shared/optparser.c \
515 517
 @BUILD_CLAMD_TRUE@    $(top_srcdir)/shared/optparser.h \
516 518
 @BUILD_CLAMD_TRUE@    $(top_srcdir)/shared/getopt.c \
... ...
@@ -666,6 +688,7 @@ distclean-compile:
666 666
 
667 667
 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/clamd.Po@am__quote@
668 668
 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/getopt.Po@am__quote@
669
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/idmef_logging.Po@am__quote@
669 670
 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/localserver.Po@am__quote@
670 671
 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/misc.Po@am__quote@
671 672
 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/onaccess_ddd.Po@am__quote@
... ...
@@ -716,6 +739,20 @@ output.obj: $(top_srcdir)/shared/output.c
716 716
 @AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
717 717
 @am__fastdepCC_FALSE@	$(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o output.obj `if test -f '$(top_srcdir)/shared/output.c'; then $(CYGPATH_W) '$(top_srcdir)/shared/output.c'; else $(CYGPATH_W) '$(srcdir)/$(top_srcdir)/shared/output.c'; fi`
718 718
 
719
+idmef_logging.o: $(top_srcdir)/shared/idmef_logging.c
720
+@am__fastdepCC_TRUE@	$(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT idmef_logging.o -MD -MP -MF $(DEPDIR)/idmef_logging.Tpo -c -o idmef_logging.o `test -f '$(top_srcdir)/shared/idmef_logging.c' || echo '$(srcdir)/'`$(top_srcdir)/shared/idmef_logging.c
721
+@am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/idmef_logging.Tpo $(DEPDIR)/idmef_logging.Po
722
+@AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='$(top_srcdir)/shared/idmef_logging.c' object='idmef_logging.o' libtool=no @AMDEPBACKSLASH@
723
+@AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
724
+@am__fastdepCC_FALSE@	$(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o idmef_logging.o `test -f '$(top_srcdir)/shared/idmef_logging.c' || echo '$(srcdir)/'`$(top_srcdir)/shared/idmef_logging.c
725
+
726
+idmef_logging.obj: $(top_srcdir)/shared/idmef_logging.c
727
+@am__fastdepCC_TRUE@	$(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT idmef_logging.obj -MD -MP -MF $(DEPDIR)/idmef_logging.Tpo -c -o idmef_logging.obj `if test -f '$(top_srcdir)/shared/idmef_logging.c'; then $(CYGPATH_W) '$(top_srcdir)/shared/idmef_logging.c'; else $(CYGPATH_W) '$(srcdir)/$(top_srcdir)/shared/idmef_logging.c'; fi`
728
+@am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/idmef_logging.Tpo $(DEPDIR)/idmef_logging.Po
729
+@AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='$(top_srcdir)/shared/idmef_logging.c' object='idmef_logging.obj' libtool=no @AMDEPBACKSLASH@
730
+@AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
731
+@am__fastdepCC_FALSE@	$(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o idmef_logging.obj `if test -f '$(top_srcdir)/shared/idmef_logging.c'; then $(CYGPATH_W) '$(top_srcdir)/shared/idmef_logging.c'; else $(CYGPATH_W) '$(srcdir)/$(top_srcdir)/shared/idmef_logging.c'; fi`
732
+
719 733
 optparser.o: $(top_srcdir)/shared/optparser.c
720 734
 @am__fastdepCC_TRUE@	$(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT optparser.o -MD -MP -MF $(DEPDIR)/optparser.Tpo -c -o optparser.o `test -f '$(top_srcdir)/shared/optparser.c' || echo '$(srcdir)/'`$(top_srcdir)/shared/optparser.c
721 735
 @am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/optparser.Tpo $(DEPDIR)/optparser.Po
722 736
new file mode 100644
... ...
@@ -0,0 +1,17 @@
0
+[Unit]
1
+Description=Clam AntiVirus userspace daemon
2
+Documentation=man:clamd(8) man:clamd.conf(5) http://www.clamav.net/lang/en/doc/
3
+Requires=clamav-daemon.socket
4
+# Check for database existence
5
+ConditionPathExistsGlob=/home/micksola/clamav/share/clamav/main.{c[vl]d,inc}
6
+ConditionPathExistsGlob=/home/micksola/clamav/share/clamav/daily.{c[vl]d,inc}
7
+
8
+[Service]
9
+ExecStart=/home/micksola/clamav/sbin/clamd --foreground=true
10
+# Reload the database
11
+ExecReload=/bin/kill -USR2 $MAINPID
12
+StandardOutput=syslog
13
+
14
+[Install]
15
+WantedBy=multi-user.target
16
+Also=clamav-daemon.socket
0 17
new file mode 100644
... ...
@@ -0,0 +1,16 @@
0
+[Unit]
1
+Description=Socket for Clam AntiVirus userspace daemon
2
+Documentation=man:clamd(8) man:clamd.conf(5) http://www.clamav.net/lang/en/doc/
3
+# Check for database existence
4
+ConditionPathExistsGlob=/home/micksola/clamav/share/clamav/main.{c[vl]d,inc}
5
+ConditionPathExistsGlob=/home/micksola/clamav/share/clamav/daily.{c[vl]d,inc}
6
+
7
+[Socket]
8
+ListenStream=/run/clamav/clamd.ctl
9
+#ListenStream=127.0.0.1:1024
10
+SocketUser=clamav
11
+SocketGroup=clamav
12
+RemoveOnStop=True
13
+
14
+[Install]
15
+WantedBy=sockets.target
... ...
@@ -58,6 +58,8 @@
58 58
 #include "shared/output.h"
59 59
 #include "shared/misc.h"
60 60
 
61
+#include "shared/idmef_logging.h"
62
+
61 63
 #include "others.h"
62 64
 #include "scanner.h"
63 65
 #include "shared.h"
... ...
@@ -274,20 +276,38 @@ int scan_callback(STATBUF *sb, char *filename, const char *msg, enum cli_ftw_rea
274 274
     }
275 275
 
276 276
     if (ret == CL_VIRUS) {
277
-        scandata->infected++;
278
-        if (scandata->options & CL_SCAN_ALLMATCHES) {
279
-            virusaction(filename, virname, scandata->opts);
280
-        } else {
281
-            if (conn_reply_virus(scandata->conn, filename, virname) == -1) {
282
-                free(filename);
283
-                return CL_ETIMEOUT;
284
-            }
285
-            if(context.virsize && optget(scandata->opts, "ExtendedDetectionInfo")->enabled)
286
-                logg("~%s: %s(%s:%llu) FOUND\n", filename, virname, context.virhash, context.virsize);
287
-            else
288
-                logg("~%s: %s FOUND\n", filename, virname);
289
-            virusaction(filename, virname, scandata->opts);
290
-        }
277
+	scandata->infected++;
278
+	if (conn_reply_virus(scandata->conn, filename, virname) == -1) {
279
+	    free(filename);
280
+	    if((scandata->options & CL_SCAN_ALLMATCHES) && (virpp != &virname))
281
+		free((void *)virpp);
282
+	    return CL_ETIMEOUT;
283
+	}
284
+	if (scandata->options & CL_SCAN_ALLMATCHES && virpp[1] != NULL) {
285
+	    int i = 1;
286
+	    while (NULL != virpp[i])
287
+		if (conn_reply_virus(scandata->conn, filename, virpp[i++]) == -1) {
288
+		    free(filename);
289
+		    if (virpp != &virname)
290
+			free((void *)virpp);
291
+		    return CL_ETIMEOUT;
292
+		}
293
+	}
294
+
295
+	if(optget(scandata->opts, "PreludeEnable")->enabled){
296
+	    prelude_logging(filename, virname, context.virhash, context.virsize);
297
+	}
298
+
299
+	if(context.virsize && optget(scandata->opts, "ExtendedDetectionInfo")->enabled)
300
+	    logg("~%s: %s(%s:%llu) FOUND\n", filename, virname, context.virhash, context.virsize);
301
+	else
302
+	    logg("~%s: %s FOUND\n", filename, virname);
303
+	virusaction(filename, virname, scandata->opts);
304
+	if (scandata->options & CL_SCAN_ALLMATCHES && virpp[1] != NULL) {
305
+	    int i = 1;
306
+	    while (NULL != virpp[i])
307
+                logg("~%s: %s FOUND\n", filename, virpp[i++]);
308
+	}
291 309
     } else if (ret != CL_CLEAN) {
292 310
 	scandata->errors++;
293 311
 	if (conn_reply(scandata->conn, filename, cl_strerror(ret), "ERROR") == -1) {
... ...
@@ -51,6 +51,8 @@
51 51
 #include "shared/optparser.h"
52 52
 #include "shared/misc.h"
53 53
 
54
+#include "shared/idmef_logging.h"
55
+
54 56
 #include "onaccess_fan.h"
55 57
 #include "server.h"
56 58
 #include "thrmgr.h"
... ...
@@ -108,6 +108,8 @@ am__aclocal_m4_deps = $(top_srcdir)/m4/acinclude.m4 \
108 108
 	$(top_srcdir)/m4/lib-link.m4 $(top_srcdir)/m4/lib-prefix.m4 \
109 109
 	$(top_srcdir)/m4/libtool.m4 $(top_srcdir)/m4/llvm.m4 \
110 110
 	$(top_srcdir)/m4/ltargz.m4 $(top_srcdir)/m4/ltdl.m4 \
111
+	$(top_srcdir)/m4/lib-prelude.m4 $(top_srcdir)/m4/libtool.m4 \
112
+	$(top_srcdir)/m4/llvm.m4 $(top_srcdir)/m4/ltdl.m4 \
111 113
 	$(top_srcdir)/m4/ltoptions.m4 $(top_srcdir)/m4/ltsugar.m4 \
112 114
 	$(top_srcdir)/m4/ltversion.m4 $(top_srcdir)/m4/lt~obsolete.m4 \
113 115
 	$(top_srcdir)/m4/mmap_private.m4 $(top_srcdir)/m4/resolv.m4 \
... ...
@@ -168,6 +170,7 @@ am__aclocal_m4_deps = $(top_srcdir)/m4/acinclude.m4 \
168 168
 	$(top_srcdir)/m4/reorganization/sha_collect.m4 \
169 169
 	$(top_srcdir)/m4/reorganization/yara.m4 \
170 170
 	$(top_srcdir)/m4/reorganization/libfreshclam.m4 \
171
+	$(top_srcdir)/m4/reorganization/prelude.m4 \
171 172
 	$(top_srcdir)/m4/reorganization/bsd.m4 \
172 173
 	$(top_srcdir)/m4/reorganization/libs/curl.m4 \
173 174
 	$(top_srcdir)/m4/reorganization/substitutions.m4 \
... ...
@@ -349,6 +352,13 @@ LIBCLAMSHARED_CPPFLAGS = @LIBCLAMSHARED_CPPFLAGS@
349 349
 LIBLTDL = @LIBLTDL@
350 350
 LIBM = @LIBM@
351 351
 LIBOBJS = @LIBOBJS@
352
+LIBPRELUDE_CFLAGS = @LIBPRELUDE_CFLAGS@
353
+LIBPRELUDE_CONFIG = @LIBPRELUDE_CONFIG@
354
+LIBPRELUDE_CONFIG_PREFIX = @LIBPRELUDE_CONFIG_PREFIX@
355
+LIBPRELUDE_LDFLAGS = @LIBPRELUDE_LDFLAGS@
356
+LIBPRELUDE_LIBS = @LIBPRELUDE_LIBS@
357
+LIBPRELUDE_PREFIX = @LIBPRELUDE_PREFIX@
358
+LIBPRELUDE_PTHREAD_CFLAGS = @LIBPRELUDE_PTHREAD_CFLAGS@
352 359
 LIBS = $(top_builddir)/libclamav/libclamav_internal_utils_nothreads.la  @CLAMDSCAN_LIBS@
353 360
 LIBTOOL = @LIBTOOL@
354 361
 LIPO = @LIPO@
... ...
@@ -90,6 +90,8 @@ am__aclocal_m4_deps = $(top_srcdir)/m4/acinclude.m4 \
90 90
 	$(top_srcdir)/m4/lib-link.m4 $(top_srcdir)/m4/lib-prefix.m4 \
91 91
 	$(top_srcdir)/m4/libtool.m4 $(top_srcdir)/m4/llvm.m4 \
92 92
 	$(top_srcdir)/m4/ltargz.m4 $(top_srcdir)/m4/ltdl.m4 \
93
+	$(top_srcdir)/m4/lib-prelude.m4 $(top_srcdir)/m4/libtool.m4 \
94
+	$(top_srcdir)/m4/llvm.m4 $(top_srcdir)/m4/ltdl.m4 \
93 95
 	$(top_srcdir)/m4/ltoptions.m4 $(top_srcdir)/m4/ltsugar.m4 \
94 96
 	$(top_srcdir)/m4/ltversion.m4 $(top_srcdir)/m4/lt~obsolete.m4 \
95 97
 	$(top_srcdir)/m4/mmap_private.m4 $(top_srcdir)/m4/resolv.m4 \
... ...
@@ -150,6 +152,7 @@ am__aclocal_m4_deps = $(top_srcdir)/m4/acinclude.m4 \
150 150
 	$(top_srcdir)/m4/reorganization/sha_collect.m4 \
151 151
 	$(top_srcdir)/m4/reorganization/yara.m4 \
152 152
 	$(top_srcdir)/m4/reorganization/libfreshclam.m4 \
153
+	$(top_srcdir)/m4/reorganization/prelude.m4 \
153 154
 	$(top_srcdir)/m4/reorganization/bsd.m4 \
154 155
 	$(top_srcdir)/m4/reorganization/libs/curl.m4 \
155 156
 	$(top_srcdir)/m4/reorganization/substitutions.m4 \
... ...
@@ -355,6 +358,13 @@ LIBCLAMSHARED_CPPFLAGS = @LIBCLAMSHARED_CPPFLAGS@
355 355
 LIBLTDL = @LIBLTDL@
356 356
 LIBM = @LIBM@
357 357
 LIBOBJS = @LIBOBJS@
358
+LIBPRELUDE_CFLAGS = @LIBPRELUDE_CFLAGS@
359
+LIBPRELUDE_CONFIG = @LIBPRELUDE_CONFIG@
360
+LIBPRELUDE_CONFIG_PREFIX = @LIBPRELUDE_CONFIG_PREFIX@
361
+LIBPRELUDE_LDFLAGS = @LIBPRELUDE_LDFLAGS@
362
+LIBPRELUDE_LIBS = @LIBPRELUDE_LIBS@
363
+LIBPRELUDE_PREFIX = @LIBPRELUDE_PREFIX@
364
+LIBPRELUDE_PTHREAD_CFLAGS = @LIBPRELUDE_PTHREAD_CFLAGS@
358 365
 LIBS = @LIBS@
359 366
 LIBTOOL = @LIBTOOL@
360 367
 LIPO = @LIPO@
... ...
@@ -109,6 +109,8 @@ am__aclocal_m4_deps = $(top_srcdir)/m4/acinclude.m4 \
109 109
 	$(top_srcdir)/m4/lib-link.m4 $(top_srcdir)/m4/lib-prefix.m4 \
110 110
 	$(top_srcdir)/m4/libtool.m4 $(top_srcdir)/m4/llvm.m4 \
111 111
 	$(top_srcdir)/m4/ltargz.m4 $(top_srcdir)/m4/ltdl.m4 \
112
+	$(top_srcdir)/m4/lib-prelude.m4 $(top_srcdir)/m4/libtool.m4 \
113
+	$(top_srcdir)/m4/llvm.m4 $(top_srcdir)/m4/ltdl.m4 \
112 114
 	$(top_srcdir)/m4/ltoptions.m4 $(top_srcdir)/m4/ltsugar.m4 \
113 115
 	$(top_srcdir)/m4/ltversion.m4 $(top_srcdir)/m4/lt~obsolete.m4 \
114 116
 	$(top_srcdir)/m4/mmap_private.m4 $(top_srcdir)/m4/resolv.m4 \
... ...
@@ -169,6 +171,7 @@ am__aclocal_m4_deps = $(top_srcdir)/m4/acinclude.m4 \
169 169
 	$(top_srcdir)/m4/reorganization/sha_collect.m4 \
170 170
 	$(top_srcdir)/m4/reorganization/yara.m4 \
171 171
 	$(top_srcdir)/m4/reorganization/libfreshclam.m4 \
172
+	$(top_srcdir)/m4/reorganization/prelude.m4 \
172 173
 	$(top_srcdir)/m4/reorganization/bsd.m4 \
173 174
 	$(top_srcdir)/m4/reorganization/libs/curl.m4 \
174 175
 	$(top_srcdir)/m4/reorganization/substitutions.m4 \
... ...
@@ -340,6 +343,13 @@ LIBCLAMSHARED_CPPFLAGS = @LIBCLAMSHARED_CPPFLAGS@
340 340
 LIBLTDL = @LIBLTDL@
341 341
 LIBM = @LIBM@
342 342
 LIBOBJS = @LIBOBJS@
343
+LIBPRELUDE_CFLAGS = @LIBPRELUDE_CFLAGS@
344
+LIBPRELUDE_CONFIG = @LIBPRELUDE_CONFIG@
345
+LIBPRELUDE_CONFIG_PREFIX = @LIBPRELUDE_CONFIG_PREFIX@
346
+LIBPRELUDE_LDFLAGS = @LIBPRELUDE_LDFLAGS@
347
+LIBPRELUDE_LIBS = @LIBPRELUDE_LIBS@
348
+LIBPRELUDE_PREFIX = @LIBPRELUDE_PREFIX@
349
+LIBPRELUDE_PTHREAD_CFLAGS = @LIBPRELUDE_PTHREAD_CFLAGS@
343 350
 LIBS = $(top_builddir)/libclamav/libclamav.la @THREAD_LIBS@ @CLAMSCAN_LIBS@
344 351
 LIBTOOL = @LIBTOOL@
345 352
 LIPO = @LIPO@
... ...
@@ -108,6 +108,8 @@ am__aclocal_m4_deps = $(top_srcdir)/m4/acinclude.m4 \
108 108
 	$(top_srcdir)/m4/lib-link.m4 $(top_srcdir)/m4/lib-prefix.m4 \
109 109
 	$(top_srcdir)/m4/libtool.m4 $(top_srcdir)/m4/llvm.m4 \
110 110
 	$(top_srcdir)/m4/ltargz.m4 $(top_srcdir)/m4/ltdl.m4 \
111
+	$(top_srcdir)/m4/lib-prelude.m4 $(top_srcdir)/m4/libtool.m4 \
112
+	$(top_srcdir)/m4/llvm.m4 $(top_srcdir)/m4/ltdl.m4 \
111 113
 	$(top_srcdir)/m4/ltoptions.m4 $(top_srcdir)/m4/ltsugar.m4 \
112 114
 	$(top_srcdir)/m4/ltversion.m4 $(top_srcdir)/m4/lt~obsolete.m4 \
113 115
 	$(top_srcdir)/m4/mmap_private.m4 $(top_srcdir)/m4/resolv.m4 \
... ...
@@ -168,6 +170,7 @@ am__aclocal_m4_deps = $(top_srcdir)/m4/acinclude.m4 \
168 168
 	$(top_srcdir)/m4/reorganization/sha_collect.m4 \
169 169
 	$(top_srcdir)/m4/reorganization/yara.m4 \
170 170
 	$(top_srcdir)/m4/reorganization/libfreshclam.m4 \
171
+	$(top_srcdir)/m4/reorganization/prelude.m4 \
171 172
 	$(top_srcdir)/m4/reorganization/bsd.m4 \
172 173
 	$(top_srcdir)/m4/reorganization/libs/curl.m4 \
173 174
 	$(top_srcdir)/m4/reorganization/substitutions.m4 \
... ...
@@ -338,6 +341,13 @@ LIBCLAMSHARED_CPPFLAGS = @LIBCLAMSHARED_CPPFLAGS@
338 338
 LIBLTDL = @LIBLTDL@
339 339
 LIBM = @LIBM@
340 340
 LIBOBJS = @LIBOBJS@
341
+LIBPRELUDE_CFLAGS = @LIBPRELUDE_CFLAGS@
342
+LIBPRELUDE_CONFIG = @LIBPRELUDE_CONFIG@
343
+LIBPRELUDE_CONFIG_PREFIX = @LIBPRELUDE_CONFIG_PREFIX@
344
+LIBPRELUDE_LDFLAGS = @LIBPRELUDE_LDFLAGS@
345
+LIBPRELUDE_LIBS = @LIBPRELUDE_LIBS@
346
+LIBPRELUDE_PREFIX = @LIBPRELUDE_PREFIX@
347
+LIBPRELUDE_PTHREAD_CFLAGS = @LIBPRELUDE_PTHREAD_CFLAGS@
341 348
 LIBS = $(top_builddir)/libclamav/libclamav.la @CLAMSUBMIT_LIBS@ @THREAD_LIBS@
342 349
 LIBTOOL = @LIBTOOL@
343 350
 LIPO = @LIPO@
... ...
@@ -684,6 +684,13 @@ CLAMSUBMIT_LIBS
684 684
 ENABLE_LIBFRESHCLAM_FALSE
685 685
 ENABLE_LIBFRESHCLAM_TRUE
686 686
 HAVE_YARA
687
+LIBPRELUDE_CONFIG_PREFIX
688
+LIBPRELUDE_PREFIX
689
+LIBPRELUDE_LIBS
690
+LIBPRELUDE_LDFLAGS
691
+LIBPRELUDE_PTHREAD_CFLAGS
692
+LIBPRELUDE_CFLAGS
693
+LIBPRELUDE_CONFIG
687 694
 subdirs
688 695
 llvmconfig
689 696
 WERR_CFLAGS_MILTER
... ...
@@ -946,6 +953,8 @@ with_llvm_linking
946 946
 enable_sha_collector_for_internal_use
947 947
 enable_yara
948 948
 enable_libfreshclam
949
+enable_prelude
950
+with_libprelude_prefix
949 951
 with_libcurl
950 952
 '
951 953
       ac_precious_vars='build_alias
... ...
@@ -1635,6 +1644,7 @@ Optional Features:
1635 1635
 
1636 1636
   --disable-yara          do not include yara support
1637 1637
   --enable-libfreshclam   enable building of libfreshclam
1638
+  --enable-prelude        Enable Prelude support for alerts.
1638 1639
 
1639 1640
 Optional Packages:
1640 1641
   --with-PACKAGE[=ARG]    use PACKAGE [ARG=yes]
... ...
@@ -1686,6 +1696,8 @@ Optional Packages:
1686 1686
                           (default=search PATH environment variable)
1687 1687
   --with-llvm-linking     specifies method to linking llvm [static|dynamic],
1688 1688
                           only valid with --with-system-llvm
1689
+  --with-libprelude-prefix=PFX
1690
+                          Prefix where libprelude is installed (optional)
1689 1691
   --with-libcurl[=DIR]    path to directory containing libcurl
1690 1692
                           [default=/usr/local or /usr if not found in
1691 1693
                           /usr/local]
... ...
@@ -24158,6 +24170,264 @@ fi
24158 24158
 else
24159 24159
   ENABLE_LIBFRESHCLAM_TRUE='#'
24160 24160
   ENABLE_LIBFRESHCLAM_FALSE=
24161
+
24162
+# PRELUDE
24163
+# Check whether --enable-prelude was given.
24164
+if test "${enable_prelude+set}" = set; then :
24165
+  enableval=$enable_prelude;
24166
+  if test "$enableval" != "no"; then
24167
+
24168
+# Check whether --with-libprelude-prefix was given.
24169
+if test "${with_libprelude_prefix+set}" = set; then :
24170
+  withval=$with_libprelude_prefix; libprelude_config_prefix="$withval"
24171
+else
24172
+  libprelude_config_prefix=""
24173
+fi
24174
+
24175
+
24176
+  if test x$libprelude_config_prefix != x ; then
24177
+     if test x${LIBPRELUDE_CONFIG+set} != xset ; then
24178
+        LIBPRELUDE_CONFIG=$libprelude_config_prefix/bin/libprelude-config
24179
+     fi
24180
+  fi
24181
+
24182
+  # Extract the first word of "libprelude-config", so it can be a program name with args.
24183
+set dummy libprelude-config; ac_word=$2
24184
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
24185
+$as_echo_n "checking for $ac_word... " >&6; }
24186
+if ${ac_cv_path_LIBPRELUDE_CONFIG+:} false; then :
24187
+  $as_echo_n "(cached) " >&6
24188
+else
24189
+  case $LIBPRELUDE_CONFIG in
24190
+  [\\/]* | ?:[\\/]*)
24191
+  ac_cv_path_LIBPRELUDE_CONFIG="$LIBPRELUDE_CONFIG" # Let the user override the test with a path.
24192
+  ;;
24193
+  *)
24194
+  as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
24195
+for as_dir in $PATH
24196
+do
24197
+  IFS=$as_save_IFS
24198
+  test -z "$as_dir" && as_dir=.
24199
+    for ac_exec_ext in '' $ac_executable_extensions; do
24200
+  if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
24201
+    ac_cv_path_LIBPRELUDE_CONFIG="$as_dir/$ac_word$ac_exec_ext"
24202
+    $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
24203
+    break 2
24204
+  fi
24205
+done
24206
+  done
24207
+IFS=$as_save_IFS
24208
+
24209
+  test -z "$ac_cv_path_LIBPRELUDE_CONFIG" && ac_cv_path_LIBPRELUDE_CONFIG="no"
24210
+  ;;
24211
+esac
24212
+fi
24213
+LIBPRELUDE_CONFIG=$ac_cv_path_LIBPRELUDE_CONFIG
24214
+if test -n "$LIBPRELUDE_CONFIG"; then
24215
+  { $as_echo "$as_me:${as_lineno-$LINENO}: result: $LIBPRELUDE_CONFIG" >&5
24216
+$as_echo "$LIBPRELUDE_CONFIG" >&6; }
24217
+else
24218
+  { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
24219
+$as_echo "no" >&6; }
24220
+fi
24221
+
24222
+
24223
+  if test "$LIBPRELUDE_CONFIG" != "no"; then
24224
+	if $($LIBPRELUDE_CONFIG --thread > /dev/null 2>&1); then
24225
+		LIBPRELUDE_PTHREAD_CFLAGS=`$LIBPRELUDE_CONFIG --thread --cflags`
24226
+
24227
+		if test xno = xtrue || test xno = xyes; then
24228
+			libprelude_config_args="--thread"
24229
+		else
24230
+			libprelude_config_args="--no-thread"
24231
+		fi
24232
+	else
24233
+		LIBPRELUDE_PTHREAD_CFLAGS=`$LIBPRELUDE_CONFIG --pthread-cflags`
24234
+	fi
24235
+  fi
24236
+
24237
+  min_libprelude_version=0.9.9
24238
+  { $as_echo "$as_me:${as_lineno-$LINENO}: checking for libprelude - version >= $min_libprelude_version" >&5
24239
+$as_echo_n "checking for libprelude - version >= $min_libprelude_version... " >&6; }
24240
+  no_libprelude=""
24241
+  if test "$LIBPRELUDE_CONFIG" = "no" ; then
24242
+    no_libprelude=yes
24243
+  else
24244
+    LIBPRELUDE_CFLAGS=`$LIBPRELUDE_CONFIG $libprelude_config_args --cflags`
24245
+    LIBPRELUDE_LDFLAGS=`$LIBPRELUDE_CONFIG $libprelude_config_args --ldflags`
24246
+    LIBPRELUDE_LIBS=`$LIBPRELUDE_CONFIG $libprelude_config_args --libs`
24247
+    LIBPRELUDE_PREFIX=`$LIBPRELUDE_CONFIG $libprelude_config_args --prefix`
24248
+    LIBPRELUDE_CONFIG_PREFIX=`$LIBPRELUDE_CONFIG $libprelude_config_args --config-prefix`
24249
+    libprelude_config_version=`$LIBPRELUDE_CONFIG $libprelude_config_args --version`
24250
+
24251
+
24252
+      ac_save_CFLAGS="$CFLAGS"
24253
+      ac_save_LDFLAGS="$LDFLAGS"
24254
+      ac_save_LIBS="$LIBS"
24255
+      CFLAGS="$CFLAGS $LIBPRELUDE_CFLAGS"
24256
+      LDFLAGS="$LDFLAGS $LIBPRELUDE_LDFLAGS"
24257
+      LIBS="$LIBS $LIBPRELUDE_LIBS"
24258
+      rm -f conf.libpreludetest
24259
+      if test "$cross_compiling" = yes; then :
24260
+  echo $ac_n "cross compiling; assumed OK... $ac_c"
24261
+else
24262
+  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
24263
+/* end confdefs.h.  */
24264
+
24265
+#include <stdio.h>
24266
+#include <stdlib.h>
24267
+#include <string.h>
24268
+#include <libprelude/prelude.h>
24269
+
24270
+int
24271
+main ()
24272
+{
24273
+    system ("touch conf.libpreludetest");
24274
+
24275
+    if( strcmp( prelude_check_version(NULL), "$libprelude_config_version" ) )
24276
+    {
24277
+      printf("\n*** 'libprelude-config --version' returned %s, but LIBPRELUDE (%s)\n",
24278
+             "$libprelude_config_version", prelude_check_version(NULL) );
24279
+      printf("*** was found! If libprelude-config was correct, then it is best\n");
24280
+      printf("*** to remove the old version of LIBPRELUDE. You may also be able to fix the error\n");
24281
+      printf("*** by modifying your LD_LIBRARY_PATH enviroment variable, or by editing\n");
24282
+      printf("*** /etc/ld.so.conf. Make sure you have run ldconfig if that is\n");
24283
+      printf("*** required on your system.\n");
24284
+      printf("*** If libprelude-config was wrong, set the environment variable LIBPRELUDE_CONFIG\n");
24285
+      printf("*** to point to the correct copy of libprelude-config, and remove the file config.cache\n");
24286
+      printf("*** before re-running configure\n");
24287
+    }
24288
+    else if ( strcmp(prelude_check_version(NULL), LIBPRELUDE_VERSION ) ) {
24289
+        printf("\n*** LIBPRELUDE header file (version %s) does not match\n", LIBPRELUDE_VERSION);
24290
+        printf("*** library (version %s)\n", prelude_check_version(NULL) );
24291
+    }
24292
+    else {
24293
+      if ( prelude_check_version( "$min_libprelude_version" ) )
24294
+        return 0;
24295
+      else {
24296
+        printf("no\n*** An old version of LIBPRELUDE (%s) was found.\n",
24297
+                prelude_check_version(NULL) );
24298
+        printf("*** You need a version of LIBPRELUDE newer than %s. The latest version of\n",
24299
+               "$min_libprelude_version" );
24300
+        printf("*** LIBPRELUDE is always available from http://www.prelude-ids.com/development/download/\n");
24301
+        printf("*** \n");
24302
+        printf("*** If you have already installed a sufficiently new version, this error\n");
24303
+        printf("*** probably means that the wrong copy of the libprelude-config shell script is\n");
24304
+        printf("*** being found. The easiest way to fix this is to remove the old version\n");
24305
+        printf("*** of LIBPRELUDE, but you can also set the LIBPRELUDE_CONFIG environment to point to the\n");
24306
+        printf("*** correct copy of libprelude-config. (In this case, you will have to\n");
24307
+        printf("*** modify your LD_LIBRARY_PATH enviroment variable, or edit /etc/ld.so.conf\n");
24308
+        printf("*** so that the correct libraries are found at run-time))\n");
24309
+      }
24310
+    }
24311
+    return 1;
24312
+}
24313
+
24314
+_ACEOF
24315
+if ac_fn_c_try_run "$LINENO"; then :
24316
+
24317
+else
24318
+  no_libprelude=yes
24319
+fi
24320
+rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \
24321
+  conftest.$ac_objext conftest.beam conftest.$ac_ext
24322
+fi
24323
+
24324
+       CFLAGS="$ac_save_CFLAGS"
24325
+       LIBS="$ac_save_LIBS"
24326
+       LDFLAGS="$ac_save_LDFLAGS"
24327
+  fi
24328
+
24329
+  if test "x$no_libprelude" = x ; then
24330
+     { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
24331
+$as_echo "yes" >&6; }
24332
+     :
24333
+  else
24334
+     if test -f conf.libpreludetest ; then
24335
+        :
24336
+     else
24337
+        { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
24338
+$as_echo "no" >&6; }
24339
+     fi
24340
+     if test "$LIBPRELUDE_CONFIG" = "no" ; then
24341
+       echo "*** The libprelude-config script installed by LIBPRELUDE could not be found"
24342
+       echo "*** If LIBPRELUDE was installed in PREFIX, make sure PREFIX/bin is in"
24343
+       echo "*** your path, or set the LIBPRELUDE_CONFIG environment variable to the"
24344
+       echo "*** full path to libprelude-config."
24345
+     else
24346
+       if test -f conf.libpreludetest ; then
24347
+        :
24348
+       else
24349
+          echo "*** Could not run libprelude test program, checking why..."
24350
+          CFLAGS="$CFLAGS $LIBPRELUDE_CFLAGS"
24351
+          LDFLAGS="$LDFLAGS $LIBPRELUDE_LDFLAGS"
24352
+          LIBS="$LIBS $LIBPRELUDE_LIBS"
24353
+          cat confdefs.h - <<_ACEOF >conftest.$ac_ext
24354
+/* end confdefs.h.  */
24355
+
24356
+#include <stdio.h>
24357
+#include <stdlib.h>
24358
+#include <string.h>
24359
+#include <libprelude/prelude.h>
24360
+
24361
+int
24362
+main ()
24363
+{
24364
+ return !!prelude_check_version(NULL);
24365
+  ;
24366
+  return 0;
24367
+}
24368
+_ACEOF
24369
+if ac_fn_c_try_link "$LINENO"; then :
24370
+   echo "*** The test program compiled, but did not run. This usually means"
24371
+          echo "*** that the run-time linker is not finding LIBPRELUDE or finding the wrong"
24372
+          echo "*** version of LIBPRELUDE. If it is not finding LIBPRELUDE, you'll need to set your"
24373
+          echo "*** LD_LIBRARY_PATH environment variable, or edit /etc/ld.so.conf to point"
24374
+          echo "*** to the installed location  Also, make sure you have run ldconfig if that"
24375
+          echo "*** is required on your system"
24376
+          echo "***"
24377
+          echo "*** If you have an old version installed, it is best to remove it, although"
24378
+          echo "*** you may also be able to get things to work by modifying LD_LIBRARY_PATH"
24379
+          echo "***"
24380
+else
24381
+   echo "*** The test program failed to compile or link. See the file config.log for the"
24382
+          echo "*** exact error that occured. This usually means LIBPRELUDE was incorrectly installed"
24383
+          echo "*** or that you have moved LIBPRELUDE since it was installed. In the latter case, you"
24384
+          echo "*** may want to edit the libprelude-config script: $LIBPRELUDE_CONFIG"
24385
+fi
24386
+rm -f core conftest.err conftest.$ac_objext \
24387
+    conftest$ac_exeext conftest.$ac_ext
24388
+          CFLAGS="$ac_save_CFLAGS"
24389
+          LDFLAGS="$ac_save_LDFLAGS"
24390
+          LIBS="$ac_save_LIBS"
24391
+       fi
24392
+     fi
24393
+     LIBPRELUDE_CFLAGS=""
24394
+     LIBPRELUDE_LDFLAGS=""
24395
+     LIBPRELUDE_LIBS=""
24396
+     as_fn_error $? "Cannot find libprelude: Is libprelude-config in the path?" "$LINENO" 5
24397
+  fi
24398
+  rm -f conf.libpreludetest
24399
+
24400
+
24401
+
24402
+
24403
+
24404
+
24405
+
24406
+
24407
+$as_echo "#define PRELUDE_APPLICATION_USE_LIBTOOL2 /**/" >>confdefs.h
24408
+
24409
+
24410
+
24411
+    CPPFLAGS="${CPPFLAGS} ${LIBPRELUDE_CFLAGS}"
24412
+    LDFLAGS="${LDFLAGS} ${LIBPRELUDE_LDFLAGS}"
24413
+    LDFLAGS="${LDFLAGS} ${LIBPRELUDE_LIBS}"
24414
+
24415
+$as_echo "#define PRELUDE 1" >>confdefs.h
24416
+
24417
+  fi
24418
+
24161 24419
 fi
24162 24420
 
24163 24421
 
... ...
@@ -127,6 +127,8 @@ m4_include([m4/reorganization/sha_collect.m4])
127 127
 m4_include([m4/reorganization/yara.m4])
128 128
 m4_include([m4/reorganization/libfreshclam.m4])
129 129
 
130
+m4_include([m4/reorganization/prelude.m4])
131
+
130 132
 m4_include([m4/reorganization/bsd.m4])
131 133
 
132 134
 dnl Freshclam dependencies
... ...
@@ -106,6 +106,8 @@ am__aclocal_m4_deps = $(top_srcdir)/m4/acinclude.m4 \
106 106
 	$(top_srcdir)/m4/lib-link.m4 $(top_srcdir)/m4/lib-prefix.m4 \
107 107
 	$(top_srcdir)/m4/libtool.m4 $(top_srcdir)/m4/llvm.m4 \
108 108
 	$(top_srcdir)/m4/ltargz.m4 $(top_srcdir)/m4/ltdl.m4 \
109
+	$(top_srcdir)/m4/lib-prelude.m4 $(top_srcdir)/m4/libtool.m4 \
110
+	$(top_srcdir)/m4/llvm.m4 $(top_srcdir)/m4/ltdl.m4 \
109 111
 	$(top_srcdir)/m4/ltoptions.m4 $(top_srcdir)/m4/ltsugar.m4 \
110 112
 	$(top_srcdir)/m4/ltversion.m4 $(top_srcdir)/m4/lt~obsolete.m4 \
111 113
 	$(top_srcdir)/m4/mmap_private.m4 $(top_srcdir)/m4/resolv.m4 \
... ...
@@ -166,6 +168,7 @@ am__aclocal_m4_deps = $(top_srcdir)/m4/acinclude.m4 \
166 166
 	$(top_srcdir)/m4/reorganization/sha_collect.m4 \
167 167
 	$(top_srcdir)/m4/reorganization/yara.m4 \
168 168
 	$(top_srcdir)/m4/reorganization/libfreshclam.m4 \
169
+	$(top_srcdir)/m4/reorganization/prelude.m4 \
169 170
 	$(top_srcdir)/m4/reorganization/bsd.m4 \
170 171
 	$(top_srcdir)/m4/reorganization/libs/curl.m4 \
171 172
 	$(top_srcdir)/m4/reorganization/substitutions.m4 \
... ...
@@ -286,6 +289,13 @@ LIBCLAMSHARED_CPPFLAGS = @LIBCLAMSHARED_CPPFLAGS@
286 286
 LIBLTDL = @LIBLTDL@
287 287
 LIBM = @LIBM@
288 288
 LIBOBJS = @LIBOBJS@
289
+LIBPRELUDE_CFLAGS = @LIBPRELUDE_CFLAGS@
290
+LIBPRELUDE_CONFIG = @LIBPRELUDE_CONFIG@
291
+LIBPRELUDE_CONFIG_PREFIX = @LIBPRELUDE_CONFIG_PREFIX@
292
+LIBPRELUDE_LDFLAGS = @LIBPRELUDE_LDFLAGS@
293
+LIBPRELUDE_LIBS = @LIBPRELUDE_LIBS@
294
+LIBPRELUDE_PREFIX = @LIBPRELUDE_PREFIX@
295
+LIBPRELUDE_PTHREAD_CFLAGS = @LIBPRELUDE_PTHREAD_CFLAGS@
289 296
 LIBS = @LIBS@
290 297
 LIBTOOL = @LIBTOOL@
291 298
 LIPO = @LIPO@
... ...
@@ -104,8 +104,13 @@ am__aclocal_m4_deps = $(top_srcdir)/m4/acinclude.m4 \
104 104
 	$(top_srcdir)/m4/ax_check_uname_syscall.m4 \
105 105
 	$(top_srcdir)/m4/fdpassing.m4 $(top_srcdir)/m4/lib-ld.m4 \
106 106
 	$(top_srcdir)/m4/lib-link.m4 $(top_srcdir)/m4/lib-prefix.m4 \
107
+<<<<<<< HEAD
107 108
 	$(top_srcdir)/m4/libtool.m4 $(top_srcdir)/m4/llvm.m4 \
108 109
 	$(top_srcdir)/m4/ltargz.m4 $(top_srcdir)/m4/ltdl.m4 \
110
+=======
111
+	$(top_srcdir)/m4/lib-prelude.m4 $(top_srcdir)/m4/libtool.m4 \
112
+	$(top_srcdir)/m4/llvm.m4 $(top_srcdir)/m4/ltdl.m4 \
113
+>>>>>>> Adds a module to use Prelude and connect to a prelude manager
109 114
 	$(top_srcdir)/m4/ltoptions.m4 $(top_srcdir)/m4/ltsugar.m4 \
110 115
 	$(top_srcdir)/m4/ltversion.m4 $(top_srcdir)/m4/lt~obsolete.m4 \
111 116
 	$(top_srcdir)/m4/mmap_private.m4 $(top_srcdir)/m4/resolv.m4 \
... ...
@@ -164,8 +169,12 @@ am__aclocal_m4_deps = $(top_srcdir)/m4/acinclude.m4 \
164 164
 	$(top_srcdir)/m4/reorganization/llvm.m4 \
165 165
 	$(top_srcdir)/libclamav/c++/m4/llvm-opts.m4 \
166 166
 	$(top_srcdir)/m4/reorganization/sha_collect.m4 \
167
+<<<<<<< HEAD
167 168
 	$(top_srcdir)/m4/reorganization/yara.m4 \
168 169
 	$(top_srcdir)/m4/reorganization/libfreshclam.m4 \
170
+=======
171
+	$(top_srcdir)/m4/reorganization/prelude.m4 \
172
+>>>>>>> Adds a module to use Prelude and connect to a prelude manager
169 173
 	$(top_srcdir)/m4/reorganization/bsd.m4 \
170 174
 	$(top_srcdir)/m4/reorganization/libs/curl.m4 \
171 175
 	$(top_srcdir)/m4/reorganization/substitutions.m4 \
... ...
@@ -320,6 +329,13 @@ LIBCLAMSHARED_CPPFLAGS = @LIBCLAMSHARED_CPPFLAGS@
320 320
 LIBLTDL = @LIBLTDL@
321 321
 LIBM = @LIBM@
322 322
 LIBOBJS = @LIBOBJS@
323
+LIBPRELUDE_CFLAGS = @LIBPRELUDE_CFLAGS@
324
+LIBPRELUDE_CONFIG = @LIBPRELUDE_CONFIG@
325
+LIBPRELUDE_CONFIG_PREFIX = @LIBPRELUDE_CONFIG_PREFIX@
326
+LIBPRELUDE_LDFLAGS = @LIBPRELUDE_LDFLAGS@
327
+LIBPRELUDE_LIBS = @LIBPRELUDE_LIBS@
328
+LIBPRELUDE_PREFIX = @LIBPRELUDE_PREFIX@
329
+LIBPRELUDE_PTHREAD_CFLAGS = @LIBPRELUDE_PTHREAD_CFLAGS@
323 330
 LIBS = @LIBS@
324 331
 LIBTOOL = @LIBTOOL@
325 332
 LIPO = @LIPO@
... ...
@@ -105,8 +105,13 @@ am__aclocal_m4_deps = $(top_srcdir)/m4/acinclude.m4 \
105 105
 	$(top_srcdir)/m4/ax_check_uname_syscall.m4 \
106 106
 	$(top_srcdir)/m4/fdpassing.m4 $(top_srcdir)/m4/lib-ld.m4 \
107 107
 	$(top_srcdir)/m4/lib-link.m4 $(top_srcdir)/m4/lib-prefix.m4 \
108
+<<<<<<< HEAD
108 109
 	$(top_srcdir)/m4/libtool.m4 $(top_srcdir)/m4/llvm.m4 \
109 110
 	$(top_srcdir)/m4/ltargz.m4 $(top_srcdir)/m4/ltdl.m4 \
111
+=======
112
+	$(top_srcdir)/m4/lib-prelude.m4 $(top_srcdir)/m4/libtool.m4 \
113
+	$(top_srcdir)/m4/llvm.m4 $(top_srcdir)/m4/ltdl.m4 \
114
+>>>>>>> Adds a module to use Prelude and connect to a prelude manager
110 115
 	$(top_srcdir)/m4/ltoptions.m4 $(top_srcdir)/m4/ltsugar.m4 \
111 116
 	$(top_srcdir)/m4/ltversion.m4 $(top_srcdir)/m4/lt~obsolete.m4 \
112 117
 	$(top_srcdir)/m4/mmap_private.m4 $(top_srcdir)/m4/resolv.m4 \
... ...
@@ -165,8 +170,12 @@ am__aclocal_m4_deps = $(top_srcdir)/m4/acinclude.m4 \
165 165
 	$(top_srcdir)/m4/reorganization/llvm.m4 \
166 166
 	$(top_srcdir)/libclamav/c++/m4/llvm-opts.m4 \
167 167
 	$(top_srcdir)/m4/reorganization/sha_collect.m4 \
168
+<<<<<<< HEAD
168 169
 	$(top_srcdir)/m4/reorganization/yara.m4 \
169 170
 	$(top_srcdir)/m4/reorganization/libfreshclam.m4 \
171
+=======
172
+	$(top_srcdir)/m4/reorganization/prelude.m4 \
173
+>>>>>>> Adds a module to use Prelude and connect to a prelude manager
170 174
 	$(top_srcdir)/m4/reorganization/bsd.m4 \
171 175
 	$(top_srcdir)/m4/reorganization/libs/curl.m4 \
172 176
 	$(top_srcdir)/m4/reorganization/substitutions.m4 \
... ...
@@ -316,6 +325,13 @@ LIBCLAMSHARED_CPPFLAGS = @LIBCLAMSHARED_CPPFLAGS@
316 316
 LIBLTDL = @LIBLTDL@
317 317
 LIBM = @LIBM@
318 318
 LIBOBJS = @LIBOBJS@
319
+LIBPRELUDE_CFLAGS = @LIBPRELUDE_CFLAGS@
320
+LIBPRELUDE_CONFIG = @LIBPRELUDE_CONFIG@
321
+LIBPRELUDE_CONFIG_PREFIX = @LIBPRELUDE_CONFIG_PREFIX@
322
+LIBPRELUDE_LDFLAGS = @LIBPRELUDE_LDFLAGS@
323
+LIBPRELUDE_LIBS = @LIBPRELUDE_LIBS@
324
+LIBPRELUDE_PREFIX = @LIBPRELUDE_PREFIX@
325
+LIBPRELUDE_PTHREAD_CFLAGS = @LIBPRELUDE_PTHREAD_CFLAGS@
319 326
 LIBS = @LIBS@
320 327
 LIBTOOL = @LIBTOOL@
321 328
 LIPO = @LIPO@
... ...
@@ -56,6 +56,14 @@ Example
56 56
 # Default: no
57 57
 #LogRotate yes
58 58
 
59
+# Enable Prelude output.
60
+# Default: no
61
+#PreludeEnable yes
62
+#
63
+# Set the name of the analyzer used by prelude-admin.
64
+# Default: ClamAV
65
+#PreludeAnalyzerName ClamAV
66
+
59 67
 # Log additional information about the infected file, such as its
60 68
 # size and hash, together with the virus name.
61 69
 #ExtendedDetectionInfo yes
... ...
@@ -109,8 +109,13 @@ am__aclocal_m4_deps = $(top_srcdir)/m4/acinclude.m4 \
109 109
 	$(top_srcdir)/m4/ax_check_uname_syscall.m4 \
110 110
 	$(top_srcdir)/m4/fdpassing.m4 $(top_srcdir)/m4/lib-ld.m4 \
111 111
 	$(top_srcdir)/m4/lib-link.m4 $(top_srcdir)/m4/lib-prefix.m4 \
112
+<<<<<<< HEAD
112 113
 	$(top_srcdir)/m4/libtool.m4 $(top_srcdir)/m4/llvm.m4 \
113 114
 	$(top_srcdir)/m4/ltargz.m4 $(top_srcdir)/m4/ltdl.m4 \
115
+=======
116
+	$(top_srcdir)/m4/lib-prelude.m4 $(top_srcdir)/m4/libtool.m4 \
117
+	$(top_srcdir)/m4/llvm.m4 $(top_srcdir)/m4/ltdl.m4 \
118
+>>>>>>> Adds a module to use Prelude and connect to a prelude manager
114 119
 	$(top_srcdir)/m4/ltoptions.m4 $(top_srcdir)/m4/ltsugar.m4 \
115 120
 	$(top_srcdir)/m4/ltversion.m4 $(top_srcdir)/m4/lt~obsolete.m4 \
116 121
 	$(top_srcdir)/m4/mmap_private.m4 $(top_srcdir)/m4/resolv.m4 \
... ...
@@ -169,8 +174,12 @@ am__aclocal_m4_deps = $(top_srcdir)/m4/acinclude.m4 \
169 169
 	$(top_srcdir)/m4/reorganization/llvm.m4 \
170 170
 	$(top_srcdir)/libclamav/c++/m4/llvm-opts.m4 \
171 171
 	$(top_srcdir)/m4/reorganization/sha_collect.m4 \
172
+<<<<<<< HEAD
172 173
 	$(top_srcdir)/m4/reorganization/yara.m4 \
173 174
 	$(top_srcdir)/m4/reorganization/libfreshclam.m4 \
175
+=======
176
+	$(top_srcdir)/m4/reorganization/prelude.m4 \
177
+>>>>>>> Adds a module to use Prelude and connect to a prelude manager
174 178
 	$(top_srcdir)/m4/reorganization/bsd.m4 \
175 179
 	$(top_srcdir)/m4/reorganization/libs/curl.m4 \
176 180
 	$(top_srcdir)/m4/reorganization/substitutions.m4 \
... ...
@@ -373,6 +382,13 @@ LIBCLAMSHARED_CPPFLAGS = @LIBCLAMSHARED_CPPFLAGS@
373 373
 LIBLTDL = @LIBLTDL@
374 374
 LIBM = @LIBM@
375 375
 LIBOBJS = @LIBOBJS@
376
+LIBPRELUDE_CFLAGS = @LIBPRELUDE_CFLAGS@
377
+LIBPRELUDE_CONFIG = @LIBPRELUDE_CONFIG@
378
+LIBPRELUDE_CONFIG_PREFIX = @LIBPRELUDE_CONFIG_PREFIX@
379
+LIBPRELUDE_LDFLAGS = @LIBPRELUDE_LDFLAGS@
380
+LIBPRELUDE_LIBS = @LIBPRELUDE_LIBS@
381
+LIBPRELUDE_PREFIX = @LIBPRELUDE_PREFIX@
382
+LIBPRELUDE_PTHREAD_CFLAGS = @LIBPRELUDE_PTHREAD_CFLAGS@
376 383
 LIBS = @SSL_LDFLAGS@ @SSL_LIBS@ $(top_builddir)/libclamav/libclamav.la @FRESHCLAM_LIBS@ @THREAD_LIBS@
377 384
 LIBTOOL = @LIBTOOL@
378 385
 LIPO = @LIPO@
379 386
new file mode 100644
... ...
@@ -0,0 +1,12 @@
0
+[Unit]
1
+Description=ClamAV virus database updater
2
+Documentation=man:freshclam(1) man:freshclam.conf(5) http://www.clamav.net/lang/en/doc/
3
+# If user wants it run from cron, don't start the daemon.
4
+ConditionPathExists=!/etc/cron.d/clamav-freshclam
5
+
6
+[Service]
7
+ExecStart=/home/micksola/clamav/bin/freshclam -d --foreground=true
8
+StandardOutput=syslog
9
+
10
+[Install]
11
+WantedBy=multi-user.target
... ...
@@ -133,8 +133,13 @@ am__aclocal_m4_deps = $(top_srcdir)/m4/acinclude.m4 \
133 133
 	$(top_srcdir)/m4/ax_check_uname_syscall.m4 \
134 134
 	$(top_srcdir)/m4/fdpassing.m4 $(top_srcdir)/m4/lib-ld.m4 \
135 135
 	$(top_srcdir)/m4/lib-link.m4 $(top_srcdir)/m4/lib-prefix.m4 \
136
+<<<<<<< HEAD
136 137
 	$(top_srcdir)/m4/libtool.m4 $(top_srcdir)/m4/llvm.m4 \
137 138
 	$(top_srcdir)/m4/ltargz.m4 $(top_srcdir)/m4/ltdl.m4 \
139
+=======
140
+	$(top_srcdir)/m4/lib-prelude.m4 $(top_srcdir)/m4/libtool.m4 \
141
+	$(top_srcdir)/m4/llvm.m4 $(top_srcdir)/m4/ltdl.m4 \
142
+>>>>>>> Adds a module to use Prelude and connect to a prelude manager
138 143
 	$(top_srcdir)/m4/ltoptions.m4 $(top_srcdir)/m4/ltsugar.m4 \
139 144
 	$(top_srcdir)/m4/ltversion.m4 $(top_srcdir)/m4/lt~obsolete.m4 \
140 145
 	$(top_srcdir)/m4/mmap_private.m4 $(top_srcdir)/m4/resolv.m4 \
... ...
@@ -193,8 +198,12 @@ am__aclocal_m4_deps = $(top_srcdir)/m4/acinclude.m4 \
193 193
 	$(top_srcdir)/m4/reorganization/llvm.m4 \
194 194
 	$(top_srcdir)/libclamav/c++/m4/llvm-opts.m4 \
195 195
 	$(top_srcdir)/m4/reorganization/sha_collect.m4 \
196
+<<<<<<< HEAD
196 197
 	$(top_srcdir)/m4/reorganization/yara.m4 \
197 198
 	$(top_srcdir)/m4/reorganization/libfreshclam.m4 \
199
+=======
200
+	$(top_srcdir)/m4/reorganization/prelude.m4 \
201
+>>>>>>> Adds a module to use Prelude and connect to a prelude manager
198 202
 	$(top_srcdir)/m4/reorganization/bsd.m4 \
199 203
 	$(top_srcdir)/m4/reorganization/libs/curl.m4 \
200 204
 	$(top_srcdir)/m4/reorganization/substitutions.m4 \
... ...
@@ -797,6 +806,13 @@ LIBCLAMSHARED_CPPFLAGS = @LIBCLAMSHARED_CPPFLAGS@
797 797
 LIBLTDL = @LIBLTDL@
798 798
 LIBM = @LIBM@
799 799
 LIBOBJS = @LIBOBJS@
800
+LIBPRELUDE_CFLAGS = @LIBPRELUDE_CFLAGS@
801
+LIBPRELUDE_CONFIG = @LIBPRELUDE_CONFIG@
802
+LIBPRELUDE_CONFIG_PREFIX = @LIBPRELUDE_CONFIG_PREFIX@
803
+LIBPRELUDE_LDFLAGS = @LIBPRELUDE_LDFLAGS@
804
+LIBPRELUDE_LIBS = @LIBPRELUDE_LIBS@
805
+LIBPRELUDE_PREFIX = @LIBPRELUDE_PREFIX@
806
+LIBPRELUDE_PTHREAD_CFLAGS = @LIBPRELUDE_PTHREAD_CFLAGS@
800 807
 LIBS = @LIBS@
801 808
 LIBTOOL = @LIBTOOL@
802 809
 LIPO = @LIPO@
... ...
@@ -94,8 +94,13 @@ am__aclocal_m4_deps = $(top_srcdir)/m4/acinclude.m4 \
94 94
 	$(top_srcdir)/m4/ax_check_uname_syscall.m4 \
95 95
 	$(top_srcdir)/m4/fdpassing.m4 $(top_srcdir)/m4/lib-ld.m4 \
96 96
 	$(top_srcdir)/m4/lib-link.m4 $(top_srcdir)/m4/lib-prefix.m4 \
97
+<<<<<<< HEAD
97 98
 	$(top_srcdir)/m4/libtool.m4 $(top_srcdir)/m4/llvm.m4 \
98 99
 	$(top_srcdir)/m4/ltargz.m4 $(top_srcdir)/m4/ltdl.m4 \
100
+=======
101
+	$(top_srcdir)/m4/lib-prelude.m4 $(top_srcdir)/m4/libtool.m4 \
102
+	$(top_srcdir)/m4/llvm.m4 $(top_srcdir)/m4/ltdl.m4 \
103
+>>>>>>> Adds a module to use Prelude and connect to a prelude manager
99 104
 	$(top_srcdir)/m4/ltoptions.m4 $(top_srcdir)/m4/ltsugar.m4 \
100 105
 	$(top_srcdir)/m4/ltversion.m4 $(top_srcdir)/m4/lt~obsolete.m4 \
101 106
 	$(top_srcdir)/m4/mmap_private.m4 $(top_srcdir)/m4/resolv.m4 \
... ...
@@ -154,8 +159,12 @@ am__aclocal_m4_deps = $(top_srcdir)/m4/acinclude.m4 \
154 154
 	$(top_srcdir)/m4/reorganization/llvm.m4 \
155 155
 	$(top_srcdir)/libclamav/c++/m4/llvm-opts.m4 \
156 156
 	$(top_srcdir)/m4/reorganization/sha_collect.m4 \
157
+<<<<<<< HEAD
157 158
 	$(top_srcdir)/m4/reorganization/yara.m4 \
158 159
 	$(top_srcdir)/m4/reorganization/libfreshclam.m4 \
160
+=======
161
+	$(top_srcdir)/m4/reorganization/prelude.m4 \
162
+>>>>>>> Adds a module to use Prelude and connect to a prelude manager
159 163
 	$(top_srcdir)/m4/reorganization/bsd.m4 \
160 164
 	$(top_srcdir)/m4/reorganization/libs/curl.m4 \
161 165
 	$(top_srcdir)/m4/reorganization/substitutions.m4 \
... ...
@@ -417,6 +426,13 @@ LIBCLAMSHARED_CPPFLAGS = @LIBCLAMSHARED_CPPFLAGS@
417 417
 LIBLTDL = @LIBLTDL@
418 418
 LIBM = @LIBM@
419 419
 LIBOBJS = @LIBOBJS@
420
+LIBPRELUDE_CFLAGS = @LIBPRELUDE_CFLAGS@
421
+LIBPRELUDE_CONFIG = @LIBPRELUDE_CONFIG@
422
+LIBPRELUDE_CONFIG_PREFIX = @LIBPRELUDE_CONFIG_PREFIX@
423
+LIBPRELUDE_LDFLAGS = @LIBPRELUDE_LDFLAGS@
424
+LIBPRELUDE_LIBS = @LIBPRELUDE_LIBS@
425
+LIBPRELUDE_PREFIX = @LIBPRELUDE_PREFIX@
426
+LIBPRELUDE_PTHREAD_CFLAGS = @LIBPRELUDE_PTHREAD_CFLAGS@
420 427
 LIBS = @LIBS@
421 428
 LIBTOOL = @LIBTOOL@
422 429
 LIPO = @LIPO@
423 430
new file mode 100644
... ...
@@ -0,0 +1,189 @@
0
+dnl Autoconf macros for libprelude
1
+dnl $id$
2
+
3
+# Modified for LIBPRELUDE -- Yoann Vandoorselaere
4
+# Modified for LIBGNUTLS -- nmav
5
+# Configure paths for LIBGCRYPT
6
+# Shamelessly stolen from the one of XDELTA by Owen Taylor
7
+# Werner Koch   99-12-09
8
+
9
+dnl AM_PATH_LIBPRELUDE([MINIMUM-VERSION, [ACTION-IF-FOUND [, ACTION-IF-NOT-FOUND ]]], THREAD_SUPPORT)
10
+dnl Test for libprelude, and define LIBPRELUDE_PREFIX, LIBPRELUDE_CFLAGS, LIBPRELUDE_PTHREAD_CFLAGS,
11
+dnl LIBPRELUDE_LDFLAGS, and LIBPRELUDE_LIBS
12
+dnl
13
+AC_DEFUN([AM_PATH_LIBPRELUDE],
14
+[dnl
15
+dnl Get the cflags and libraries from the libprelude-config script
16
+dnl
17
+AC_ARG_WITH(libprelude-prefix, AC_HELP_STRING(--with-libprelude-prefix=PFX,
18
+            Prefix where libprelude is installed (optional)),
19
+            libprelude_config_prefix="$withval", libprelude_config_prefix="")
20
+
21
+  if test x$libprelude_config_prefix != x ; then
22
+     if test x${LIBPRELUDE_CONFIG+set} != xset ; then
23
+        LIBPRELUDE_CONFIG=$libprelude_config_prefix/bin/libprelude-config
24
+     fi
25
+  fi
26
+
27
+  AC_PATH_PROG(LIBPRELUDE_CONFIG, libprelude-config, no)
28
+  if test "$LIBPRELUDE_CONFIG" != "no"; then
29
+	if $($LIBPRELUDE_CONFIG --thread > /dev/null 2>&1); then
30
+		LIBPRELUDE_PTHREAD_CFLAGS=`$LIBPRELUDE_CONFIG --thread --cflags`
31
+
32
+		if test x$4 = xtrue || test x$4 = xyes; then
33
+			libprelude_config_args="--thread"
34
+		else
35
+			libprelude_config_args="--no-thread"
36
+		fi
37
+	else
38
+		LIBPRELUDE_PTHREAD_CFLAGS=`$LIBPRELUDE_CONFIG --pthread-cflags`
39
+	fi
40
+  fi
41
+
42
+  min_libprelude_version=ifelse([$1], ,0.1.0,$1)
43
+  AC_MSG_CHECKING(for libprelude - version >= $min_libprelude_version)
44
+  no_libprelude=""
45
+  if test "$LIBPRELUDE_CONFIG" = "no" ; then
46
+    no_libprelude=yes
47
+  else
48
+    LIBPRELUDE_CFLAGS=`$LIBPRELUDE_CONFIG $libprelude_config_args --cflags`
49
+    LIBPRELUDE_LDFLAGS=`$LIBPRELUDE_CONFIG $libprelude_config_args --ldflags`
50
+    LIBPRELUDE_LIBS=`$LIBPRELUDE_CONFIG $libprelude_config_args --libs`
51
+    LIBPRELUDE_PREFIX=`$LIBPRELUDE_CONFIG $libprelude_config_args --prefix`
52
+    LIBPRELUDE_CONFIG_PREFIX=`$LIBPRELUDE_CONFIG $libprelude_config_args --config-prefix`
53
+    libprelude_config_version=`$LIBPRELUDE_CONFIG $libprelude_config_args --version`
54
+
55
+
56
+      ac_save_CFLAGS="$CFLAGS"
57
+      ac_save_LDFLAGS="$LDFLAGS"
58
+      ac_save_LIBS="$LIBS"
59
+      CFLAGS="$CFLAGS $LIBPRELUDE_CFLAGS"
60
+      LDFLAGS="$LDFLAGS $LIBPRELUDE_LDFLAGS"
61
+      LIBS="$LIBS $LIBPRELUDE_LIBS"
62
+dnl
63
+dnl Now check if the installed libprelude is sufficiently new. Also sanity
64
+dnl checks the results of libprelude-config to some extent
65
+dnl
66
+      rm -f conf.libpreludetest
67
+      AC_TRY_RUN([
68
+#include <stdio.h>
69
+#include <stdlib.h>
70
+#include <string.h>
71
+#include <libprelude/prelude.h>
72
+
73
+int
74
+main ()
75
+{
76
+    system ("touch conf.libpreludetest");
77
+
78
+    if( strcmp( prelude_check_version(NULL), "$libprelude_config_version" ) )
79
+    {
80
+      printf("\n*** 'libprelude-config --version' returned %s, but LIBPRELUDE (%s)\n",
81
+             "$libprelude_config_version", prelude_check_version(NULL) );
82
+      printf("*** was found! If libprelude-config was correct, then it is best\n");
83
+      printf("*** to remove the old version of LIBPRELUDE. You may also be able to fix the error\n");
84
+      printf("*** by modifying your LD_LIBRARY_PATH enviroment variable, or by editing\n");
85
+      printf("*** /etc/ld.so.conf. Make sure you have run ldconfig if that is\n");
86
+      printf("*** required on your system.\n");
87
+      printf("*** If libprelude-config was wrong, set the environment variable LIBPRELUDE_CONFIG\n");
88
+      printf("*** to point to the correct copy of libprelude-config, and remove the file config.cache\n");
89
+      printf("*** before re-running configure\n");
90
+    }
91
+    else if ( strcmp(prelude_check_version(NULL), LIBPRELUDE_VERSION ) ) {
92
+        printf("\n*** LIBPRELUDE header file (version %s) does not match\n", LIBPRELUDE_VERSION);
93
+        printf("*** library (version %s)\n", prelude_check_version(NULL) );
94
+    }
95
+    else {
96
+      if ( prelude_check_version( "$min_libprelude_version" ) )
97
+        return 0;
98
+      else {
99
+        printf("no\n*** An old version of LIBPRELUDE (%s) was found.\n",
100
+                prelude_check_version(NULL) );
101
+        printf("*** You need a version of LIBPRELUDE newer than %s. The latest version of\n",
102
+               "$min_libprelude_version" );
103
+        printf("*** LIBPRELUDE is always available from http://www.prelude-ids.com/development/download/\n");
104
+        printf("*** \n");
105
+        printf("*** If you have already installed a sufficiently new version, this error\n");
106
+        printf("*** probably means that the wrong copy of the libprelude-config shell script is\n");
107
+        printf("*** being found. The easiest way to fix this is to remove the old version\n");
108
+        printf("*** of LIBPRELUDE, but you can also set the LIBPRELUDE_CONFIG environment to point to the\n");
109
+        printf("*** correct copy of libprelude-config. (In this case, you will have to\n");
110
+        printf("*** modify your LD_LIBRARY_PATH enviroment variable, or edit /etc/ld.so.conf\n");
111
+        printf("*** so that the correct libraries are found at run-time))\n");
112
+      }
113
+    }
114
+    return 1;
115
+}
116
+],, no_libprelude=yes,[echo $ac_n "cross compiling; assumed OK... $ac_c"])
117
+       CFLAGS="$ac_save_CFLAGS"
118
+       LIBS="$ac_save_LIBS"
119
+       LDFLAGS="$ac_save_LDFLAGS"
120
+  fi
121
+
122
+  if test "x$no_libprelude" = x ; then
123
+     AC_MSG_RESULT(yes)
124
+     ifelse([$2], , :, [$2])
125
+  else
126
+     if test -f conf.libpreludetest ; then
127
+        :
128
+     else
129
+        AC_MSG_RESULT(no)
130
+     fi
131
+     if test "$LIBPRELUDE_CONFIG" = "no" ; then
132
+       echo "*** The libprelude-config script installed by LIBPRELUDE could not be found"
133
+       echo "*** If LIBPRELUDE was installed in PREFIX, make sure PREFIX/bin is in"
134
+       echo "*** your path, or set the LIBPRELUDE_CONFIG environment variable to the"
135
+       echo "*** full path to libprelude-config."
136
+     else
137
+       if test -f conf.libpreludetest ; then
138
+        :
139
+       else
140
+          echo "*** Could not run libprelude test program, checking why..."
141
+          CFLAGS="$CFLAGS $LIBPRELUDE_CFLAGS"
142
+          LDFLAGS="$LDFLAGS $LIBPRELUDE_LDFLAGS"
143
+          LIBS="$LIBS $LIBPRELUDE_LIBS"
144
+          AC_TRY_LINK([
145
+#include <stdio.h>
146
+#include <stdlib.h>
147
+#include <string.h>
148
+#include <libprelude/prelude.h>
149
+],      [ return !!prelude_check_version(NULL); ],
150
+        [ echo "*** The test program compiled, but did not run. This usually means"
151
+          echo "*** that the run-time linker is not finding LIBPRELUDE or finding the wrong"
152
+          echo "*** version of LIBPRELUDE. If it is not finding LIBPRELUDE, you'll need to set your"
153
+          echo "*** LD_LIBRARY_PATH environment variable, or edit /etc/ld.so.conf to point"
154
+          echo "*** to the installed location  Also, make sure you have run ldconfig if that"
155
+          echo "*** is required on your system"
156
+          echo "***"
157
+          echo "*** If you have an old version installed, it is best to remove it, although"
158
+          echo "*** you may also be able to get things to work by modifying LD_LIBRARY_PATH"
159
+          echo "***" ],
160
+        [ echo "*** The test program failed to compile or link. See the file config.log for the"
161
+          echo "*** exact error that occured. This usually means LIBPRELUDE was incorrectly installed"
162
+          echo "*** or that you have moved LIBPRELUDE since it was installed. In the latter case, you"
163
+          echo "*** may want to edit the libprelude-config script: $LIBPRELUDE_CONFIG" ])
164
+          CFLAGS="$ac_save_CFLAGS"
165
+          LDFLAGS="$ac_save_LDFLAGS"
166
+          LIBS="$ac_save_LIBS"
167
+       fi
168
+     fi
169
+     LIBPRELUDE_CFLAGS=""
170
+     LIBPRELUDE_LDFLAGS=""
171
+     LIBPRELUDE_LIBS=""
172
+     ifelse([$3], , :, [$3])
173
+  fi
174
+  rm -f conf.libpreludetest
175
+  AC_SUBST(LIBPRELUDE_CFLAGS)
176
+  AC_SUBST(LIBPRELUDE_PTHREAD_CFLAGS)
177
+  AC_SUBST(LIBPRELUDE_LDFLAGS)
178
+  AC_SUBST(LIBPRELUDE_LIBS)
179
+  AC_SUBST(LIBPRELUDE_PREFIX)
180
+  AC_SUBST(LIBPRELUDE_CONFIG_PREFIX)
181
+
182
+  m4_ifdef([LT_INIT],
183
+           [AC_DEFINE([PRELUDE_APPLICATION_USE_LIBTOOL2], [], [Define whether application use libtool >= 2.0])],
184
+           [])
185
+
186
+])
187
+
188
+dnl *-*wedit:notab*-*  Please keep this as the last line.
0 189
new file mode 100644
... ...
@@ -0,0 +1,13 @@
0
+# PRELUDE
1
+AC_ARG_ENABLE(prelude,
2
+              AS_HELP_STRING([--enable-prelude],
3
+                             [Enable Prelude support for alerts.]),
4
+[
5
+  if test "$enableval" != "no"; then
6
+    AM_PATH_LIBPRELUDE(0.9.9, , AC_MSG_ERROR(Cannot find libprelude: Is libprelude-config in the path?), no)
7
+    CPPFLAGS="${CPPFLAGS} ${LIBPRELUDE_CFLAGS}"
8
+    LDFLAGS="${LDFLAGS} ${LIBPRELUDE_LDFLAGS}"
9
+    LDFLAGS="${LDFLAGS} ${LIBPRELUDE_LIBS}"
10
+    AC_DEFINE([PRELUDE], [1], [Libprelude support enabled])
11
+  fi
12
+],)
... ...
@@ -4,6 +4,7 @@ libshared_la_SOURCES=actions.c\
4 4
 	       cdiff.c\
5 5
 	       clamdcom.c\
6 6
 	       getopt.c\
7
+	       idmef_logging.c\
7 8
 	       misc.c\
8 9
 	       optparser.c\
9 10
 	       tar.c
10 11
new file mode 100644
... ...
@@ -0,0 +1,250 @@
0
+/*
1
+ *  Copyright (C) 2007-2009 Sourcefire, Inc.
2
+ *
3
+ *  Authors: Selim Menouar, Verene Houdebine
4
+ *
5
+ *  This program is free software; you can redistribute it and/or modify
6
+ *  it under the terms of the GNU General Public License version 2 as
7
+ *  published by the Free Software Foundation.
8
+ *
9
+ *  This program is distributed in the hope that it will be useful,
10
+ *  but WITHOUT ANY WARRANTY; without even the implied warranty of
11
+ *  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
12
+ *  GNU General Public License for more details.
13
+ *
14
+ *  You should have received a copy of the GNU General Public License
15
+ *  along with this program; if not, write to the Free Software
16
+ *  Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston,
17
+ *  MA 02110-1301, USA.
18
+ */
19
+
20
+
21
+#include "shared/misc.h"
22
+#include "shared/output.h"
23
+#include <stdio.h>
24
+#include <stdarg.h>
25
+#include <stdlib.h>
26
+#include <string.h>
27
+
28
+#ifndef PRELUDE
29
+void prelude_logging(const char *filename, const char *virname, const char *virhash, int virsize){
30
+    logg("You have to compile with libprelude using ./configure --enable-prelude\n");
31
+}
32
+#else
33
+
34
+#include <libprelude/prelude.h>
35
+
36
+#define ANALYZER_MODEL "ClamAV"
37
+#define ANALYZER_CLASS "AntiVirus"
38
+#define ANALYZER_MANUFACTURER "http://www.sourcefire.com"
39
+
40
+
41
+static prelude_client_t *prelude_client;
42
+
43
+int idmef_analyzer_setup(idmef_analyzer_t *analyzer, const char *analyzer_name){
44
+    int ret;
45
+    prelude_string_t *str;
46
+
47
+    /* alert->analyzer->name */
48
+    ret = idmef_analyzer_new_name(analyzer, &str);
49
+    if ( ret < 0 )
50
+        return ret;
51
+
52
+    prelude_string_set_constant(str, analyzer_name);
53
+
54
+    /* alert->analyzer->model */
55
+    ret = idmef_analyzer_new_model(analyzer, &str);
56
+    if ( ret < 0 )
57
+        return ret;
58
+
59
+    prelude_string_set_constant(str, ANALYZER_MODEL );
60
+
61
+    /* alert->analyzer->class */
62
+    ret = idmef_analyzer_new_class(analyzer, &str);
63
+    if ( ret < 0 )
64
+        return ret;
65
+
66
+    prelude_string_set_constant(str, ANALYZER_CLASS);
67
+
68
+    /* alert->analyzer->manufacturer */
69
+    ret = idmef_analyzer_new_manufacturer(analyzer, &str);
70
+    if ( ret < 0 )
71
+        return ret;
72
+
73
+    prelude_string_set_constant(str, ANALYZER_MANUFACTURER);
74
+
75
+    /* alert->analyzer->version */
76
+    ret = idmef_analyzer_new_version(analyzer, &str);
77
+    if ( ret < 0 )
78
+        return ret;
79
+
80
+    prelude_string_set_constant(str, get_version());
81
+
82
+    return 0;
83
+}
84
+
85
+int prelude_initialize_client(const char *analyzer_name){
86
+    int ret;
87
+
88
+    prelude_client = NULL;
89
+
90
+    ret = prelude_init(0, NULL);
91
+    if ( ret < 0 )  {
92
+        logg("Unable to initialize the prelude library : %s", prelude_strerror(ret));
93
+        return -1;
94
+    }
95
+
96
+
97
+    ret = prelude_client_new(&prelude_client, analyzer_name);
98
+    if ( ret < 0 )  {
99
+        logg("Unable to create a prelude client object : %s", prelude_strerror(ret));
100
+        return -1;
101
+    }
102
+
103
+    ret = idmef_analyzer_setup(prelude_client_get_analyzer(prelude_client), analyzer_name);
104
+    if ( ret < 0 )  {
105
+        logg("%s", prelude_strerror(ret));
106
+        return -1;
107
+    }
108
+
109
+    ret = prelude_client_start(prelude_client);
110
+    if ( ret < 0 || ! prelude_client ) {
111
+        logg("Unable to start prelude client : %s", prelude_strerror(ret));
112
+        prelude_client_destroy(prelude_client, PRELUDE_CLIENT_EXIT_STATUS_SUCCESS);
113
+        return -1;
114
+    }
115
+
116
+    ret = prelude_client_set_flags(prelude_client, PRELUDE_CLIENT_FLAGS_ASYNC_SEND|PRELUDE_CLIENT_FLAGS_ASYNC_TIMER);
117
+    if ( ret < 0) {
118
+        logg("Unable to send asynchrnous send and timer : %s", prelude_strerror(ret));
119
+        prelude_client_destroy(prelude_client, PRELUDE_CLIENT_EXIT_STATUS_SUCCESS);
120
+        return -1;
121
+    }
122
+
123
+    return 0;
124
+}
125
+
126
+int add_string_additional_data(idmef_alert_t *alert, const char *meaning, const char *ptr){
127
+    int ret;
128
+    prelude_string_t *str;
129
+    idmef_additional_data_t *ad;
130
+    idmef_data_t *data;
131
+
132
+    ret = idmef_alert_new_additional_data(alert, &ad, IDMEF_LIST_APPEND);
133
+    if ( ret < 0 )
134
+        return ret;
135
+
136
+    idmef_additional_data_set_type(ad, IDMEF_ADDITIONAL_DATA_TYPE_STRING);
137
+
138
+    idmef_additional_data_new_data(ad, &data);
139
+
140
+    ret = idmef_data_set_char_string_ref(data, ptr);
141
+    if ( ret < 0)
142
+        return ret;
143
+
144
+
145
+    ret = idmef_additional_data_new_meaning(ad, &str);
146
+    if ( ret < 0)
147
+        return ret;
148
+
149
+    ret = prelude_string_set_ref(str, meaning);
150
+    if ( ret < 0 )
151
+        return ret;
152
+
153
+    return 0;
154
+}
155
+
156
+int add_int_additional_data(idmef_alert_t *alert, const char *meaning, int data){
157
+    int ret;
158
+    prelude_string_t *str;
159
+    idmef_additional_data_t *ad;
160
+
161
+    ret = idmef_alert_new_additional_data(alert, &ad, IDMEF_LIST_APPEND);
162
+    if ( ret < 0 )
163
+        return ret;
164
+
165
+    idmef_additional_data_set_integer(ad, data);
166
+
167
+    ret = idmef_additional_data_new_meaning(ad, &str);
168
+    if ( ret < 0)
169
+        return ret;
170
+
171
+    ret = prelude_string_set_ref(str, meaning);
172
+    if ( ret < 0 )
173
+        return ret;
174
+
175
+    return 0;
176
+}
177
+
178
+
179
+void prelude_logging(const char *filename, const char *virname, const char *virhash, int virsize){
180
+    int ret;
181
+    idmef_message_t *idmef = NULL;
182
+    idmef_alert_t *alert;
183
+    idmef_classification_t *class;
184
+    prelude_string_t *str;
185
+    idmef_target_t *target;
186
+    idmef_file_t *file;
187
+
188
+    ret = idmef_message_new(&idmef);
189
+    if ( ret < 0 )
190
+        goto err;
191
+
192
+    ret = idmef_message_new_alert(idmef, &alert);
193
+    if ( ret < 0 )
194
+        goto err;
195
+
196
+    ret = idmef_alert_new_classification(alert, &class);
197
+    if ( ret < 0 )
198
+        goto err;
199
+
200
+    ret = idmef_classification_new_text(class, &str);
201
+    if ( ret < 0 )
202
+        goto err;
203
+
204
+    prelude_string_set_constant(str, "Virus Found");
205
+
206
+    ret = idmef_alert_new_target(alert, &target, 0);
207
+    if ( ret < 0 )
208
+        goto err;
209
+
210
+    ret = idmef_target_new_file(target, &file, 0);
211
+    if ( ret < 0 )
212
+        goto err;
213
+
214
+    ret = idmef_file_new_path(file, &str);
215
+    if ( ret < 0 )
216
+        goto err;
217
+
218
+    prelude_string_set_ref(str, filename);
219
+
220
+    if ( virname != NULL ) {
221
+        ret = add_string_additional_data(alert, "virname", virname);
222
+        if ( ret < 0 )
223
+            goto err;
224
+    }
225
+
226
+    if ( virhash != NULL){
227
+        ret = add_string_additional_data(alert, "virhash", virhash);
228
+        if ( ret < 0 )
229
+            goto err;
230
+    }
231
+    
232
+    ret = add_int_additional_data(alert, "virsize", virsize);
233
+    if ( ret < 0 )
234
+        goto err;
235
+
236
+    logg("le client : %s", prelude_client_get_config_filename(prelude_client));
237
+    prelude_client_send_idmef(prelude_client, idmef);
238
+    idmef_message_destroy(idmef);
239
+
240
+    return;
241
+
242
+err:
243
+    if (idmef != NULL)
244
+        idmef_message_destroy(idmef);
245
+
246
+    logg("%s error: %s", prelude_strsource(ret), prelude_strerror(ret));
247
+    return;
248
+}
249
+#endif
0 250
new file mode 100644
... ...
@@ -0,0 +1,30 @@
0
+/*
1
+ *  Copyright (C) 2007-2009 Sourcefire, Inc.
2
+ *
3
+ *  Authors: Selim Menouar, Verene Houdebine
4
+ *
5
+ *  This program is free software; you can redistribute it and/or modify
6
+ *  it under the terms of the GNU General Public License version 2 as
7
+ *  published by the Free Software Foundation.
8
+ *
9
+ *  This program is distributed in the hope that it will be useful,
10
+ *  but WITHOUT ANY WARRANTY; without even the implied warranty of
11
+ *  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
12
+ *  GNU General Public License for more details.
13
+ *
14
+ *  You should have received a copy of the GNU General Public License
15
+ *  along with this program; if not, write to the Free Software
16
+ *  Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston,
17
+ *  MA 02110-1301, USA.
18
+ */
19
+
20
+#ifndef __IDMEF_LOGGING_H_
21
+#define __IDMEF_LOGGING_H_
22
+#endif
23
+
24
+#ifdef PRELUDE
25
+int prelude_initialize_client(const char *analyzer_name);
26
+#endif
27
+
28
+void prelude_logging(const char *filename, const char *virname, const char *virhash, int virsize);
29
+
... ...
@@ -185,6 +185,10 @@ const struct clam_option __clam_options[] = {
185 185
     { NULL, "deb", 0, CLOPT_TYPE_STRING, NULL, -1, "foo", 0, OPT_CLAMSCAN | OPT_DEPRECATED, "", "" },
186 186
 
187 187
     /* config file/cmdline options */
188
+    { "PreludeEnable", "prelude-enable", 0, CLOPT_TYPE_BOOL, MATCH_BOOL, 0, NULL, 0, OPT_CLAMD, "Enable prelude"},
189
+
190
+    { "PreludeAnalyzerName", "prelude-analyzer-name", 0, CLOPT_TYPE_STRING, NULL, -1, NULL, 0, OPT_CLAMD, "Name of the analyzer as seen in prewikka"},
191
+
188 192
     { "LogFile", "log", 'l', CLOPT_TYPE_STRING, NULL, -1, NULL, 0, OPT_CLAMD | OPT_MILTER | OPT_CLAMSCAN | OPT_CLAMDSCAN, "Save all reports to a log file.", "/tmp/clamav.log" },
189 193
 
190 194
     { "StatsHostID", "stats-host-id", 0, CLOPT_TYPE_STRING, NULL, -1, NULL, 0, OPT_FRESHCLAM | OPT_CLAMD | OPT_CLAMSCAN, "HostID in the form of an UUID to use when submitting statistical information. See the clamscan manpage for more information.", "default" },
... ...
@@ -106,8 +106,13 @@ am__aclocal_m4_deps = $(top_srcdir)/m4/acinclude.m4 \
106 106
 	$(top_srcdir)/m4/ax_check_uname_syscall.m4 \
107 107
 	$(top_srcdir)/m4/fdpassing.m4 $(top_srcdir)/m4/lib-ld.m4 \
108 108
 	$(top_srcdir)/m4/lib-link.m4 $(top_srcdir)/m4/lib-prefix.m4 \
109
+<<<<<<< HEAD
109 110
 	$(top_srcdir)/m4/libtool.m4 $(top_srcdir)/m4/llvm.m4 \
110 111
 	$(top_srcdir)/m4/ltargz.m4 $(top_srcdir)/m4/ltdl.m4 \
112
+=======
113
+	$(top_srcdir)/m4/lib-prelude.m4 $(top_srcdir)/m4/libtool.m4 \
114
+	$(top_srcdir)/m4/llvm.m4 $(top_srcdir)/m4/ltdl.m4 \
115
+>>>>>>> Adds a module to use Prelude and connect to a prelude manager
111 116
 	$(top_srcdir)/m4/ltoptions.m4 $(top_srcdir)/m4/ltsugar.m4 \
112 117
 	$(top_srcdir)/m4/ltversion.m4 $(top_srcdir)/m4/lt~obsolete.m4 \
113 118
 	$(top_srcdir)/m4/mmap_private.m4 $(top_srcdir)/m4/resolv.m4 \
... ...
@@ -166,8 +171,12 @@ am__aclocal_m4_deps = $(top_srcdir)/m4/acinclude.m4 \
166 166
 	$(top_srcdir)/m4/reorganization/llvm.m4 \
167 167
 	$(top_srcdir)/libclamav/c++/m4/llvm-opts.m4 \
168 168
 	$(top_srcdir)/m4/reorganization/sha_collect.m4 \
169
+<<<<<<< HEAD
169 170
 	$(top_srcdir)/m4/reorganization/yara.m4 \
170 171
 	$(top_srcdir)/m4/reorganization/libfreshclam.m4 \
172
+=======
173
+	$(top_srcdir)/m4/reorganization/prelude.m4 \
174
+>>>>>>> Adds a module to use Prelude and connect to a prelude manager
171 175
 	$(top_srcdir)/m4/reorganization/bsd.m4 \
172 176
 	$(top_srcdir)/m4/reorganization/libs/curl.m4 \
173 177
 	$(top_srcdir)/m4/reorganization/substitutions.m4 \
... ...
@@ -339,6 +348,13 @@ LIBCLAMSHARED_CPPFLAGS = @LIBCLAMSHARED_CPPFLAGS@
339 339
 LIBLTDL = @LIBLTDL@
340 340
 LIBM = @LIBM@
341 341
 LIBOBJS = @LIBOBJS@
342
+LIBPRELUDE_CFLAGS = @LIBPRELUDE_CFLAGS@
343
+LIBPRELUDE_CONFIG = @LIBPRELUDE_CONFIG@
344
+LIBPRELUDE_CONFIG_PREFIX = @LIBPRELUDE_CONFIG_PREFIX@
345
+LIBPRELUDE_LDFLAGS = @LIBPRELUDE_LDFLAGS@
346
+LIBPRELUDE_LIBS = @LIBPRELUDE_LIBS@
347
+LIBPRELUDE_PREFIX = @LIBPRELUDE_PREFIX@
348
+LIBPRELUDE_PTHREAD_CFLAGS = @LIBPRELUDE_PTHREAD_CFLAGS@
342 349
 LIBS = @SSL_LDFLAGS@ @SSL_LIBS@ $(top_builddir)/libclamav/libclamav.la @FRESHCLAM_LIBS@ @THREAD_LIBS@
343 350
 LIBTOOL = @LIBTOOL@
344 351
 LIPO = @LIPO@
... ...
@@ -87,8 +87,13 @@ am__aclocal_m4_deps = $(top_srcdir)/m4/acinclude.m4 \
87 87
 	$(top_srcdir)/m4/ax_check_uname_syscall.m4 \
88 88
 	$(top_srcdir)/m4/fdpassing.m4 $(top_srcdir)/m4/lib-ld.m4 \
89 89
 	$(top_srcdir)/m4/lib-link.m4 $(top_srcdir)/m4/lib-prefix.m4 \
90
+<<<<<<< HEAD
90 91
 	$(top_srcdir)/m4/libtool.m4 $(top_srcdir)/m4/llvm.m4 \
91 92
 	$(top_srcdir)/m4/ltargz.m4 $(top_srcdir)/m4/ltdl.m4 \
93
+=======
94
+	$(top_srcdir)/m4/lib-prelude.m4 $(top_srcdir)/m4/libtool.m4 \
95
+	$(top_srcdir)/m4/llvm.m4 $(top_srcdir)/m4/ltdl.m4 \
96
+>>>>>>> Adds a module to use Prelude and connect to a prelude manager
92 97
 	$(top_srcdir)/m4/ltoptions.m4 $(top_srcdir)/m4/ltsugar.m4 \
93 98
 	$(top_srcdir)/m4/ltversion.m4 $(top_srcdir)/m4/lt~obsolete.m4 \
94 99
 	$(top_srcdir)/m4/mmap_private.m4 $(top_srcdir)/m4/resolv.m4 \
... ...
@@ -147,8 +152,12 @@ am__aclocal_m4_deps = $(top_srcdir)/m4/acinclude.m4 \
147 147
 	$(top_srcdir)/m4/reorganization/llvm.m4 \
148 148
 	$(top_srcdir)/libclamav/c++/m4/llvm-opts.m4 \
149 149
 	$(top_srcdir)/m4/reorganization/sha_collect.m4 \
150
+<<<<<<< HEAD
150 151
 	$(top_srcdir)/m4/reorganization/yara.m4 \
151 152
 	$(top_srcdir)/m4/reorganization/libfreshclam.m4 \
153
+=======
154
+	$(top_srcdir)/m4/reorganization/prelude.m4 \
155
+>>>>>>> Adds a module to use Prelude and connect to a prelude manager
152 156
 	$(top_srcdir)/m4/reorganization/bsd.m4 \
153 157
 	$(top_srcdir)/m4/reorganization/libs/curl.m4 \
154 158
 	$(top_srcdir)/m4/reorganization/substitutions.m4 \
... ...
@@ -269,6 +278,13 @@ LIBCLAMSHARED_CPPFLAGS = @LIBCLAMSHARED_CPPFLAGS@
269 269
 LIBLTDL = @LIBLTDL@
270 270
 LIBM = @LIBM@
271 271
 LIBOBJS = @LIBOBJS@
272
+LIBPRELUDE_CFLAGS = @LIBPRELUDE_CFLAGS@
273
+LIBPRELUDE_CONFIG = @LIBPRELUDE_CONFIG@
274
+LIBPRELUDE_CONFIG_PREFIX = @LIBPRELUDE_CONFIG_PREFIX@
275
+LIBPRELUDE_LDFLAGS = @LIBPRELUDE_LDFLAGS@
276
+LIBPRELUDE_LIBS = @LIBPRELUDE_LIBS@
277
+LIBPRELUDE_PREFIX = @LIBPRELUDE_PREFIX@
278
+LIBPRELUDE_PTHREAD_CFLAGS = @LIBPRELUDE_PTHREAD_CFLAGS@
272 279
 LIBS = @LIBS@
273 280
 LIBTOOL = @LIBTOOL@
274 281
 LIPO = @LIPO@
... ...
@@ -89,8 +89,13 @@ am__aclocal_m4_deps = $(top_srcdir)/m4/acinclude.m4 \
89 89
 	$(top_srcdir)/m4/ax_check_uname_syscall.m4 \
90 90
 	$(top_srcdir)/m4/fdpassing.m4 $(top_srcdir)/m4/lib-ld.m4 \
91 91
 	$(top_srcdir)/m4/lib-link.m4 $(top_srcdir)/m4/lib-prefix.m4 \
92
+<<<<<<< HEAD
92 93
 	$(top_srcdir)/m4/libtool.m4 $(top_srcdir)/m4/llvm.m4 \
93 94
 	$(top_srcdir)/m4/ltargz.m4 $(top_srcdir)/m4/ltdl.m4 \
95
+=======
96
+	$(top_srcdir)/m4/lib-prelude.m4 $(top_srcdir)/m4/libtool.m4 \
97
+	$(top_srcdir)/m4/llvm.m4 $(top_srcdir)/m4/ltdl.m4 \
98
+>>>>>>> Adds a module to use Prelude and connect to a prelude manager
94 99
 	$(top_srcdir)/m4/ltoptions.m4 $(top_srcdir)/m4/ltsugar.m4 \
95 100
 	$(top_srcdir)/m4/ltversion.m4 $(top_srcdir)/m4/lt~obsolete.m4 \
96 101
 	$(top_srcdir)/m4/mmap_private.m4 $(top_srcdir)/m4/resolv.m4 \
... ...
@@ -149,8 +154,12 @@ am__aclocal_m4_deps = $(top_srcdir)/m4/acinclude.m4 \
149 149
 	$(top_srcdir)/m4/reorganization/llvm.m4 \
150 150
 	$(top_srcdir)/libclamav/c++/m4/llvm-opts.m4 \
151 151
 	$(top_srcdir)/m4/reorganization/sha_collect.m4 \
152
+<<<<<<< HEAD
152 153
 	$(top_srcdir)/m4/reorganization/yara.m4 \
153 154
 	$(top_srcdir)/m4/reorganization/libfreshclam.m4 \
155
+=======
156
+	$(top_srcdir)/m4/reorganization/prelude.m4 \
157
+>>>>>>> Adds a module to use Prelude and connect to a prelude manager
154 158
 	$(top_srcdir)/m4/reorganization/bsd.m4 \
155 159
 	$(top_srcdir)/m4/reorganization/libs/curl.m4 \
156 160
 	$(top_srcdir)/m4/reorganization/substitutions.m4 \
... ...
@@ -559,6 +568,13 @@ LIBCLAMSHARED_CPPFLAGS = @LIBCLAMSHARED_CPPFLAGS@
559 559
 LIBLTDL = @LIBLTDL@
560 560
 LIBM = @LIBM@
561 561
 LIBOBJS = @LIBOBJS@
562
+LIBPRELUDE_CFLAGS = @LIBPRELUDE_CFLAGS@
563
+LIBPRELUDE_CONFIG = @LIBPRELUDE_CONFIG@
564
+LIBPRELUDE_CONFIG_PREFIX = @LIBPRELUDE_CONFIG_PREFIX@
565
+LIBPRELUDE_LDFLAGS = @LIBPRELUDE_LDFLAGS@
566
+LIBPRELUDE_LIBS = @LIBPRELUDE_LIBS@
567
+LIBPRELUDE_PREFIX = @LIBPRELUDE_PREFIX@
568
+LIBPRELUDE_PTHREAD_CFLAGS = @LIBPRELUDE_PTHREAD_CFLAGS@
562 569
 LIBS = @LIBS@
563 570
 LIBTOOL = @LIBTOOL@
564 571
 LIPO = @LIPO@