Browse code

initial version of configuration tool

git-svn: trunk@1911

Tomasz Kojm authored on 2006/04/16 02:57:32
Showing 6 changed files
... ...
@@ -1,3 +1,8 @@
1
+Sat Apr 15 19:55:35 CEST 2006 (tk)
2
+----------------------------------
3
+  * clamconf: initial version of configuration tool
4
+	      Requested by Tomasz Papszun <tomek*clamav.net>
5
+
1 6
 Tue Apr 11 21:29:41 BST 2006 (njh)
2 7
 ----------------------------------
3 8
   * libclamav/pdf.c:	Fix the handling of the trailing few bytes in
4 9
new file mode 100644
... ...
@@ -0,0 +1,33 @@
0
+#
1
+#  Copyright (C) 2006 Tomasz Kojm <tkojm@clamav.net>
2
+#
3
+#  This program is free software; you can redistribute it and/or modify
4
+#  it under the terms of the GNU General Public License as published by
5
+#  the Free Software Foundation; either version 2 of the License, or
6
+#  (at your option) any later version.
7
+#
8
+#  This program is distributed in the hope that it will be useful,
9
+#  but WITHOUT ANY WARRANTY; without even the implied warranty of
10
+#  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
11
+#  GNU General Public License for more details.
12
+#
13
+#  You should have received a copy of the GNU General Public License
14
+#  along with this program; if not, write to the Free Software
15
+#  Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston,
16
+#  MA 02110-1301, USA.
17
+
18
+bin_PROGRAMS = clamconf
19
+
20
+clamconf_SOURCES = \
21
+    $(top_srcdir)/shared/cfgparser.c \
22
+    $(top_srcdir)/shared/cfgparser.h \
23
+    $(top_srcdir)/shared/memory.c \
24
+    $(top_srcdir)/shared/memory.h \
25
+    $(top_srcdir)/shared/misc.c \
26
+    $(top_srcdir)/shared/misc.h \
27
+    $(top_srcdir)/shared/getopt.c \
28
+    $(top_srcdir)/shared/getopt.h \
29
+    clamconf.c
30
+
31
+INCLUDES = -I$(top_srcdir)/shared
32
+LIBS = $(top_builddir)/libclamav/libclamav.la
0 33
new file mode 100644
... ...
@@ -0,0 +1,546 @@
0
+# Makefile.in generated by automake 1.9.6 from Makefile.am.
1
+# @configure_input@
2
+
3
+# Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002,
4
+# 2003, 2004, 2005  Free Software Foundation, Inc.
5
+# This Makefile.in is free software; the Free Software Foundation
6
+# gives unlimited permission to copy and/or distribute it,
7
+# with or without modifications, as long as this notice is preserved.
8
+
9
+# This program is distributed in the hope that it will be useful,
10
+# but WITHOUT ANY WARRANTY, to the extent permitted by law; without
11
+# even the implied warranty of MERCHANTABILITY or FITNESS FOR A
12
+# PARTICULAR PURPOSE.
13
+
14
+@SET_MAKE@
15
+
16
+#
17
+#  Copyright (C) 2006 Tomasz Kojm <tkojm@clamav.net>
18
+#
19
+#  This program is free software; you can redistribute it and/or modify
20
+#  it under the terms of the GNU General Public License as published by
21
+#  the Free Software Foundation; either version 2 of the License, or
22
+#  (at your option) any later version.
23
+#
24
+#  This program is distributed in the hope that it will be useful,
25
+#  but WITHOUT ANY WARRANTY; without even the implied warranty of
26
+#  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
27
+#  GNU General Public License for more details.
28
+#
29
+#  You should have received a copy of the GNU General Public License
30
+#  along with this program; if not, write to the Free Software
31
+#  Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston,
32
+#  MA 02110-1301, USA.
33
+
34
+srcdir = @srcdir@
35
+top_srcdir = @top_srcdir@
36
+VPATH = @srcdir@
37
+pkgdatadir = $(datadir)/@PACKAGE@
38
+pkglibdir = $(libdir)/@PACKAGE@
39
+pkgincludedir = $(includedir)/@PACKAGE@
40
+top_builddir = ..
41
+am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd
42
+INSTALL = @INSTALL@
43
+install_sh_DATA = $(install_sh) -c -m 644
44
+install_sh_PROGRAM = $(install_sh) -c
45
+install_sh_SCRIPT = $(install_sh) -c
46
+INSTALL_HEADER = $(INSTALL_DATA)
47
+transform = $(program_transform_name)
48
+NORMAL_INSTALL = :
49
+PRE_INSTALL = :
50
+POST_INSTALL = :
51
+NORMAL_UNINSTALL = :
52
+PRE_UNINSTALL = :
53
+POST_UNINSTALL = :
54
+build_triplet = @build@
55
+host_triplet = @host@
56
+target_triplet = @target@
57
+bin_PROGRAMS = clamconf$(EXEEXT)
58
+subdir = clamconf
59
+DIST_COMMON = $(srcdir)/Makefile.am $(srcdir)/Makefile.in
60
+ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
61
+am__aclocal_m4_deps = $(top_srcdir)/acinclude.m4 \
62
+	$(top_srcdir)/configure.in
63
+am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
64
+	$(ACLOCAL_M4)
65
+mkinstalldirs = $(SHELL) $(top_srcdir)/mkinstalldirs
66
+CONFIG_HEADER = $(top_builddir)/clamav-config.h
67
+CONFIG_CLEAN_FILES =
68
+am__installdirs = "$(DESTDIR)$(bindir)"
69
+binPROGRAMS_INSTALL = $(INSTALL_PROGRAM)
70
+PROGRAMS = $(bin_PROGRAMS)
71
+am_clamconf_OBJECTS = cfgparser.$(OBJEXT) memory.$(OBJEXT) \
72
+	misc.$(OBJEXT) getopt.$(OBJEXT) clamconf.$(OBJEXT)
73
+clamconf_OBJECTS = $(am_clamconf_OBJECTS)
74
+clamconf_LDADD = $(LDADD)
75
+DEFAULT_INCLUDES = -I. -I$(srcdir) -I$(top_builddir)
76
+depcomp = $(SHELL) $(top_srcdir)/depcomp
77
+am__depfiles_maybe = depfiles
78
+COMPILE = $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) \
79
+	$(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS)
80
+LTCOMPILE = $(LIBTOOL) --mode=compile $(CC) $(DEFS) \
81
+	$(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) \
82
+	$(AM_CFLAGS) $(CFLAGS)
83
+CCLD = $(CC)
84
+LINK = $(LIBTOOL) --mode=link $(CCLD) $(AM_CFLAGS) $(CFLAGS) \
85
+	$(AM_LDFLAGS) $(LDFLAGS) -o $@
86
+SOURCES = $(clamconf_SOURCES)
87
+DIST_SOURCES = $(clamconf_SOURCES)
88
+ETAGS = etags
89
+CTAGS = ctags
90
+DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
91
+ACLOCAL = @ACLOCAL@
92
+ADDITIONAL_LIBS = @ADDITIONAL_LIBS@
93
+AMDEP_FALSE = @AMDEP_FALSE@
94
+AMDEP_TRUE = @AMDEP_TRUE@
95
+AMTAR = @AMTAR@
96
+AUTOCONF = @AUTOCONF@
97
+AUTOHEADER = @AUTOHEADER@
98
+AUTOMAKE = @AUTOMAKE@
99
+AWK = @AWK@
100
+BUILD_CLAMD_FALSE = @BUILD_CLAMD_FALSE@
101
+BUILD_CLAMD_TRUE = @BUILD_CLAMD_TRUE@
102
+CC = @CC@
103
+CCDEPMODE = @CCDEPMODE@
104
+CFGDIR = @CFGDIR@
105
+CFLAGS = @CFLAGS@
106
+CLAMAVGROUP = @CLAMAVGROUP@
107
+CLAMAVUSER = @CLAMAVUSER@
108
+CLAMAV_MILTER_LIBS = @CLAMAV_MILTER_LIBS@
109
+CLAMD_LIBS = @CLAMD_LIBS@
110
+CPP = @CPP@
111
+CPPFLAGS = @CPPFLAGS@
112
+CYGPATH_W = @CYGPATH_W@
113
+DBDIR = @DBDIR@
114
+DEFS = @DEFS@
115
+DEPDIR = @DEPDIR@
116
+ECHO = @ECHO@
117
+ECHO_C = @ECHO_C@
118
+ECHO_N = @ECHO_N@
119
+ECHO_T = @ECHO_T@
120
+EGREP = @EGREP@
121
+EXEEXT = @EXEEXT@
122
+FRESHCLAM_LIBS = @FRESHCLAM_LIBS@
123
+GETENT = @GETENT@
124
+HAVE_MILTER_FALSE = @HAVE_MILTER_FALSE@
125
+HAVE_MILTER_TRUE = @HAVE_MILTER_TRUE@
126
+INSTALL_DATA = @INSTALL_DATA@
127
+INSTALL_PROGRAM = @INSTALL_PROGRAM@
128
+INSTALL_SCRIPT = @INSTALL_SCRIPT@
129
+INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@
130
+LDFLAGS = @LDFLAGS@
131
+LIBCLAMAV_LIBS = @LIBCLAMAV_LIBS@
132
+LIBCLAMAV_VERSION = @LIBCLAMAV_VERSION@
133
+LIBOBJS = @LIBOBJS@
134
+LIBS = $(top_builddir)/libclamav/libclamav.la
135
+LIBTOOL = @LIBTOOL@
136
+LN_S = @LN_S@
137
+LTLIBOBJS = @LTLIBOBJS@
138
+MAINT = @MAINT@
139
+MAINTAINER_MODE_FALSE = @MAINTAINER_MODE_FALSE@
140
+MAINTAINER_MODE_TRUE = @MAINTAINER_MODE_TRUE@
141
+MAKEINFO = @MAKEINFO@
142
+OBJEXT = @OBJEXT@
143
+PACKAGE = @PACKAGE@
144
+PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@
145
+PACKAGE_NAME = @PACKAGE_NAME@
146
+PACKAGE_STRING = @PACKAGE_STRING@
147
+PACKAGE_TARNAME = @PACKAGE_TARNAME@
148
+PACKAGE_VERSION = @PACKAGE_VERSION@
149
+PATH_SEPARATOR = @PATH_SEPARATOR@
150
+RANLIB = @RANLIB@
151
+SET_MAKE = @SET_MAKE@
152
+SHELL = @SHELL@
153
+STRIP = @STRIP@
154
+TH_SAFE = @TH_SAFE@
155
+VERSION = @VERSION@
156
+ac_ct_CC = @ac_ct_CC@
157
+ac_ct_RANLIB = @ac_ct_RANLIB@
158
+ac_ct_STRIP = @ac_ct_STRIP@
159
+am__fastdepCC_FALSE = @am__fastdepCC_FALSE@
160
+am__fastdepCC_TRUE = @am__fastdepCC_TRUE@
161
+am__include = @am__include@
162
+am__leading_dot = @am__leading_dot@
163
+am__quote = @am__quote@
164
+am__tar = @am__tar@
165
+am__untar = @am__untar@
166
+bindir = @bindir@
167
+build = @build@
168
+build_alias = @build_alias@
169
+build_cpu = @build_cpu@
170
+build_os = @build_os@
171
+build_vendor = @build_vendor@
172
+datadir = @datadir@
173
+exec_prefix = @exec_prefix@
174
+host = @host@
175
+host_alias = @host_alias@
176
+host_cpu = @host_cpu@
177
+host_os = @host_os@
178
+host_vendor = @host_vendor@
179
+includedir = @includedir@
180
+infodir = @infodir@
181
+install_sh = @install_sh@
182
+libdir = @libdir@
183
+libexecdir = @libexecdir@
184
+localstatedir = @localstatedir@
185
+mandir = @mandir@
186
+mkdir_p = @mkdir_p@
187
+oldincludedir = @oldincludedir@
188
+prefix = @prefix@
189
+program_transform_name = @program_transform_name@
190
+sbindir = @sbindir@
191
+sendmailprog = @sendmailprog@
192
+sharedstatedir = @sharedstatedir@
193
+sysconfdir = @sysconfdir@
194
+target = @target@
195
+target_alias = @target_alias@
196
+target_cpu = @target_cpu@
197
+target_os = @target_os@
198
+target_vendor = @target_vendor@
199
+clamconf_SOURCES = \
200
+    $(top_srcdir)/shared/cfgparser.c \
201
+    $(top_srcdir)/shared/cfgparser.h \
202
+    $(top_srcdir)/shared/memory.c \
203
+    $(top_srcdir)/shared/memory.h \
204
+    $(top_srcdir)/shared/misc.c \
205
+    $(top_srcdir)/shared/misc.h \
206
+    $(top_srcdir)/shared/getopt.c \
207
+    $(top_srcdir)/shared/getopt.h \
208
+    clamconf.c
209
+
210
+INCLUDES = -I$(top_srcdir)/shared
211
+all: all-am
212
+
213
+.SUFFIXES:
214
+.SUFFIXES: .c .lo .o .obj
215
+$(srcdir)/Makefile.in: @MAINTAINER_MODE_TRUE@ $(srcdir)/Makefile.am  $(am__configure_deps)
216
+	@for dep in $?; do \
217
+	  case '$(am__configure_deps)' in \
218
+	    *$$dep*) \
219
+	      cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh \
220
+		&& exit 0; \
221
+	      exit 1;; \
222
+	  esac; \
223
+	done; \
224
+	echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu  clamconf/Makefile'; \
225
+	cd $(top_srcdir) && \
226
+	  $(AUTOMAKE) --gnu  clamconf/Makefile
227
+.PRECIOUS: Makefile
228
+Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status
229
+	@case '$?' in \
230
+	  *config.status*) \
231
+	    cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \
232
+	  *) \
233
+	    echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \
234
+	    cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \
235
+	esac;
236
+
237
+$(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES)
238
+	cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
239
+
240
+$(top_srcdir)/configure: @MAINTAINER_MODE_TRUE@ $(am__configure_deps)
241
+	cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
242
+$(ACLOCAL_M4): @MAINTAINER_MODE_TRUE@ $(am__aclocal_m4_deps)
243
+	cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
244
+install-binPROGRAMS: $(bin_PROGRAMS)
245
+	@$(NORMAL_INSTALL)
246
+	test -z "$(bindir)" || $(mkdir_p) "$(DESTDIR)$(bindir)"
247
+	@list='$(bin_PROGRAMS)'; for p in $$list; do \
248
+	  p1=`echo $$p|sed 's/$(EXEEXT)$$//'`; \
249
+	  if test -f $$p \
250
+	     || test -f $$p1 \
251
+	  ; then \
252
+	    f=`echo "$$p1" | sed 's,^.*/,,;$(transform);s/$$/$(EXEEXT)/'`; \
253
+	   echo " $(INSTALL_PROGRAM_ENV) $(LIBTOOL) --mode=install $(binPROGRAMS_INSTALL) '$$p' '$(DESTDIR)$(bindir)/$$f'"; \
254
+	   $(INSTALL_PROGRAM_ENV) $(LIBTOOL) --mode=install $(binPROGRAMS_INSTALL) "$$p" "$(DESTDIR)$(bindir)/$$f" || exit 1; \
255
+	  else :; fi; \
256
+	done
257
+
258
+uninstall-binPROGRAMS:
259
+	@$(NORMAL_UNINSTALL)
260
+	@list='$(bin_PROGRAMS)'; for p in $$list; do \
261
+	  f=`echo "$$p" | sed 's,^.*/,,;s/$(EXEEXT)$$//;$(transform);s/$$/$(EXEEXT)/'`; \
262
+	  echo " rm -f '$(DESTDIR)$(bindir)/$$f'"; \
263
+	  rm -f "$(DESTDIR)$(bindir)/$$f"; \
264
+	done
265
+
266
+clean-binPROGRAMS:
267
+	@list='$(bin_PROGRAMS)'; for p in $$list; do \
268
+	  f=`echo $$p|sed 's/$(EXEEXT)$$//'`; \
269
+	  echo " rm -f $$p $$f"; \
270
+	  rm -f $$p $$f ; \
271
+	done
272
+clamconf$(EXEEXT): $(clamconf_OBJECTS) $(clamconf_DEPENDENCIES) 
273
+	@rm -f clamconf$(EXEEXT)
274
+	$(LINK) $(clamconf_LDFLAGS) $(clamconf_OBJECTS) $(clamconf_LDADD) $(LIBS)
275
+
276
+mostlyclean-compile:
277
+	-rm -f *.$(OBJEXT)
278
+
279
+distclean-compile:
280
+	-rm -f *.tab.c
281
+
282
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/cfgparser.Po@am__quote@
283
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/clamconf.Po@am__quote@
284
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/getopt.Po@am__quote@
285
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/memory.Po@am__quote@
286
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/misc.Po@am__quote@
287
+
288
+.c.o:
289
+@am__fastdepCC_TRUE@	if $(COMPILE) -MT $@ -MD -MP -MF "$(DEPDIR)/$*.Tpo" -c -o $@ $<; \
290
+@am__fastdepCC_TRUE@	then mv -f "$(DEPDIR)/$*.Tpo" "$(DEPDIR)/$*.Po"; else rm -f "$(DEPDIR)/$*.Tpo"; exit 1; fi
291
+@AMDEP_TRUE@@am__fastdepCC_FALSE@	source='$<' object='$@' libtool=no @AMDEPBACKSLASH@
292
+@AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
293
+@am__fastdepCC_FALSE@	$(COMPILE) -c $<
294
+
295
+.c.obj:
296
+@am__fastdepCC_TRUE@	if $(COMPILE) -MT $@ -MD -MP -MF "$(DEPDIR)/$*.Tpo" -c -o $@ `$(CYGPATH_W) '$<'`; \
297
+@am__fastdepCC_TRUE@	then mv -f "$(DEPDIR)/$*.Tpo" "$(DEPDIR)/$*.Po"; else rm -f "$(DEPDIR)/$*.Tpo"; exit 1; fi
298
+@AMDEP_TRUE@@am__fastdepCC_FALSE@	source='$<' object='$@' libtool=no @AMDEPBACKSLASH@
299
+@AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
300
+@am__fastdepCC_FALSE@	$(COMPILE) -c `$(CYGPATH_W) '$<'`
301
+
302
+.c.lo:
303
+@am__fastdepCC_TRUE@	if $(LTCOMPILE) -MT $@ -MD -MP -MF "$(DEPDIR)/$*.Tpo" -c -o $@ $<; \
304
+@am__fastdepCC_TRUE@	then mv -f "$(DEPDIR)/$*.Tpo" "$(DEPDIR)/$*.Plo"; else rm -f "$(DEPDIR)/$*.Tpo"; exit 1; fi
305
+@AMDEP_TRUE@@am__fastdepCC_FALSE@	source='$<' object='$@' libtool=yes @AMDEPBACKSLASH@
306
+@AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
307
+@am__fastdepCC_FALSE@	$(LTCOMPILE) -c -o $@ $<
308
+
309
+cfgparser.o: $(top_srcdir)/shared/cfgparser.c
310
+@am__fastdepCC_TRUE@	if $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT cfgparser.o -MD -MP -MF "$(DEPDIR)/cfgparser.Tpo" -c -o cfgparser.o `test -f '$(top_srcdir)/shared/cfgparser.c' || echo '$(srcdir)/'`$(top_srcdir)/shared/cfgparser.c; \
311
+@am__fastdepCC_TRUE@	then mv -f "$(DEPDIR)/cfgparser.Tpo" "$(DEPDIR)/cfgparser.Po"; else rm -f "$(DEPDIR)/cfgparser.Tpo"; exit 1; fi
312
+@AMDEP_TRUE@@am__fastdepCC_FALSE@	source='$(top_srcdir)/shared/cfgparser.c' object='cfgparser.o' libtool=no @AMDEPBACKSLASH@
313
+@AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
314
+@am__fastdepCC_FALSE@	$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o cfgparser.o `test -f '$(top_srcdir)/shared/cfgparser.c' || echo '$(srcdir)/'`$(top_srcdir)/shared/cfgparser.c
315
+
316
+cfgparser.obj: $(top_srcdir)/shared/cfgparser.c
317
+@am__fastdepCC_TRUE@	if $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT cfgparser.obj -MD -MP -MF "$(DEPDIR)/cfgparser.Tpo" -c -o cfgparser.obj `if test -f '$(top_srcdir)/shared/cfgparser.c'; then $(CYGPATH_W) '$(top_srcdir)/shared/cfgparser.c'; else $(CYGPATH_W) '$(srcdir)/$(top_srcdir)/shared/cfgparser.c'; fi`; \
318
+@am__fastdepCC_TRUE@	then mv -f "$(DEPDIR)/cfgparser.Tpo" "$(DEPDIR)/cfgparser.Po"; else rm -f "$(DEPDIR)/cfgparser.Tpo"; exit 1; fi
319
+@AMDEP_TRUE@@am__fastdepCC_FALSE@	source='$(top_srcdir)/shared/cfgparser.c' object='cfgparser.obj' libtool=no @AMDEPBACKSLASH@
320
+@AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
321
+@am__fastdepCC_FALSE@	$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o cfgparser.obj `if test -f '$(top_srcdir)/shared/cfgparser.c'; then $(CYGPATH_W) '$(top_srcdir)/shared/cfgparser.c'; else $(CYGPATH_W) '$(srcdir)/$(top_srcdir)/shared/cfgparser.c'; fi`
322
+
323
+memory.o: $(top_srcdir)/shared/memory.c
324
+@am__fastdepCC_TRUE@	if $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT memory.o -MD -MP -MF "$(DEPDIR)/memory.Tpo" -c -o memory.o `test -f '$(top_srcdir)/shared/memory.c' || echo '$(srcdir)/'`$(top_srcdir)/shared/memory.c; \
325
+@am__fastdepCC_TRUE@	then mv -f "$(DEPDIR)/memory.Tpo" "$(DEPDIR)/memory.Po"; else rm -f "$(DEPDIR)/memory.Tpo"; exit 1; fi
326
+@AMDEP_TRUE@@am__fastdepCC_FALSE@	source='$(top_srcdir)/shared/memory.c' object='memory.o' libtool=no @AMDEPBACKSLASH@
327
+@AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
328
+@am__fastdepCC_FALSE@	$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o memory.o `test -f '$(top_srcdir)/shared/memory.c' || echo '$(srcdir)/'`$(top_srcdir)/shared/memory.c
329
+
330
+memory.obj: $(top_srcdir)/shared/memory.c
331
+@am__fastdepCC_TRUE@	if $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT memory.obj -MD -MP -MF "$(DEPDIR)/memory.Tpo" -c -o memory.obj `if test -f '$(top_srcdir)/shared/memory.c'; then $(CYGPATH_W) '$(top_srcdir)/shared/memory.c'; else $(CYGPATH_W) '$(srcdir)/$(top_srcdir)/shared/memory.c'; fi`; \
332
+@am__fastdepCC_TRUE@	then mv -f "$(DEPDIR)/memory.Tpo" "$(DEPDIR)/memory.Po"; else rm -f "$(DEPDIR)/memory.Tpo"; exit 1; fi
333
+@AMDEP_TRUE@@am__fastdepCC_FALSE@	source='$(top_srcdir)/shared/memory.c' object='memory.obj' libtool=no @AMDEPBACKSLASH@
334
+@AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
335
+@am__fastdepCC_FALSE@	$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o memory.obj `if test -f '$(top_srcdir)/shared/memory.c'; then $(CYGPATH_W) '$(top_srcdir)/shared/memory.c'; else $(CYGPATH_W) '$(srcdir)/$(top_srcdir)/shared/memory.c'; fi`
336
+
337
+misc.o: $(top_srcdir)/shared/misc.c
338
+@am__fastdepCC_TRUE@	if $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT misc.o -MD -MP -MF "$(DEPDIR)/misc.Tpo" -c -o misc.o `test -f '$(top_srcdir)/shared/misc.c' || echo '$(srcdir)/'`$(top_srcdir)/shared/misc.c; \
339
+@am__fastdepCC_TRUE@	then mv -f "$(DEPDIR)/misc.Tpo" "$(DEPDIR)/misc.Po"; else rm -f "$(DEPDIR)/misc.Tpo"; exit 1; fi
340
+@AMDEP_TRUE@@am__fastdepCC_FALSE@	source='$(top_srcdir)/shared/misc.c' object='misc.o' libtool=no @AMDEPBACKSLASH@
341
+@AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
342
+@am__fastdepCC_FALSE@	$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o misc.o `test -f '$(top_srcdir)/shared/misc.c' || echo '$(srcdir)/'`$(top_srcdir)/shared/misc.c
343
+
344
+misc.obj: $(top_srcdir)/shared/misc.c
345
+@am__fastdepCC_TRUE@	if $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT misc.obj -MD -MP -MF "$(DEPDIR)/misc.Tpo" -c -o misc.obj `if test -f '$(top_srcdir)/shared/misc.c'; then $(CYGPATH_W) '$(top_srcdir)/shared/misc.c'; else $(CYGPATH_W) '$(srcdir)/$(top_srcdir)/shared/misc.c'; fi`; \
346
+@am__fastdepCC_TRUE@	then mv -f "$(DEPDIR)/misc.Tpo" "$(DEPDIR)/misc.Po"; else rm -f "$(DEPDIR)/misc.Tpo"; exit 1; fi
347
+@AMDEP_TRUE@@am__fastdepCC_FALSE@	source='$(top_srcdir)/shared/misc.c' object='misc.obj' libtool=no @AMDEPBACKSLASH@
348
+@AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
349
+@am__fastdepCC_FALSE@	$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o misc.obj `if test -f '$(top_srcdir)/shared/misc.c'; then $(CYGPATH_W) '$(top_srcdir)/shared/misc.c'; else $(CYGPATH_W) '$(srcdir)/$(top_srcdir)/shared/misc.c'; fi`
350
+
351
+getopt.o: $(top_srcdir)/shared/getopt.c
352
+@am__fastdepCC_TRUE@	if $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT getopt.o -MD -MP -MF "$(DEPDIR)/getopt.Tpo" -c -o getopt.o `test -f '$(top_srcdir)/shared/getopt.c' || echo '$(srcdir)/'`$(top_srcdir)/shared/getopt.c; \
353
+@am__fastdepCC_TRUE@	then mv -f "$(DEPDIR)/getopt.Tpo" "$(DEPDIR)/getopt.Po"; else rm -f "$(DEPDIR)/getopt.Tpo"; exit 1; fi
354
+@AMDEP_TRUE@@am__fastdepCC_FALSE@	source='$(top_srcdir)/shared/getopt.c' object='getopt.o' libtool=no @AMDEPBACKSLASH@
355
+@AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
356
+@am__fastdepCC_FALSE@	$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o getopt.o `test -f '$(top_srcdir)/shared/getopt.c' || echo '$(srcdir)/'`$(top_srcdir)/shared/getopt.c
357
+
358
+getopt.obj: $(top_srcdir)/shared/getopt.c
359
+@am__fastdepCC_TRUE@	if $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT getopt.obj -MD -MP -MF "$(DEPDIR)/getopt.Tpo" -c -o getopt.obj `if test -f '$(top_srcdir)/shared/getopt.c'; then $(CYGPATH_W) '$(top_srcdir)/shared/getopt.c'; else $(CYGPATH_W) '$(srcdir)/$(top_srcdir)/shared/getopt.c'; fi`; \
360
+@am__fastdepCC_TRUE@	then mv -f "$(DEPDIR)/getopt.Tpo" "$(DEPDIR)/getopt.Po"; else rm -f "$(DEPDIR)/getopt.Tpo"; exit 1; fi
361
+@AMDEP_TRUE@@am__fastdepCC_FALSE@	source='$(top_srcdir)/shared/getopt.c' object='getopt.obj' libtool=no @AMDEPBACKSLASH@
362
+@AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
363
+@am__fastdepCC_FALSE@	$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o getopt.obj `if test -f '$(top_srcdir)/shared/getopt.c'; then $(CYGPATH_W) '$(top_srcdir)/shared/getopt.c'; else $(CYGPATH_W) '$(srcdir)/$(top_srcdir)/shared/getopt.c'; fi`
364
+
365
+mostlyclean-libtool:
366
+	-rm -f *.lo
367
+
368
+clean-libtool:
369
+	-rm -rf .libs _libs
370
+
371
+distclean-libtool:
372
+	-rm -f libtool
373
+uninstall-info-am:
374
+
375
+ID: $(HEADERS) $(SOURCES) $(LISP) $(TAGS_FILES)
376
+	list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \
377
+	unique=`for i in $$list; do \
378
+	    if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
379
+	  done | \
380
+	  $(AWK) '    { files[$$0] = 1; } \
381
+	       END { for (i in files) print i; }'`; \
382
+	mkid -fID $$unique
383
+tags: TAGS
384
+
385
+TAGS:  $(HEADERS) $(SOURCES)  $(TAGS_DEPENDENCIES) \
386
+		$(TAGS_FILES) $(LISP)
387
+	tags=; \
388
+	here=`pwd`; \
389
+	list='$(SOURCES) $(HEADERS)  $(LISP) $(TAGS_FILES)'; \
390
+	unique=`for i in $$list; do \
391
+	    if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
392
+	  done | \
393
+	  $(AWK) '    { files[$$0] = 1; } \
394
+	       END { for (i in files) print i; }'`; \
395
+	if test -z "$(ETAGS_ARGS)$$tags$$unique"; then :; else \
396
+	  test -n "$$unique" || unique=$$empty_fix; \
397
+	  $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \
398
+	    $$tags $$unique; \
399
+	fi
400
+ctags: CTAGS
401
+CTAGS:  $(HEADERS) $(SOURCES)  $(TAGS_DEPENDENCIES) \
402
+		$(TAGS_FILES) $(LISP)
403
+	tags=; \
404
+	here=`pwd`; \
405
+	list='$(SOURCES) $(HEADERS)  $(LISP) $(TAGS_FILES)'; \
406
+	unique=`for i in $$list; do \
407
+	    if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
408
+	  done | \
409
+	  $(AWK) '    { files[$$0] = 1; } \
410
+	       END { for (i in files) print i; }'`; \
411
+	test -z "$(CTAGS_ARGS)$$tags$$unique" \
412
+	  || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \
413
+	     $$tags $$unique
414
+
415
+GTAGS:
416
+	here=`$(am__cd) $(top_builddir) && pwd` \
417
+	  && cd $(top_srcdir) \
418
+	  && gtags -i $(GTAGS_ARGS) $$here
419
+
420
+distclean-tags:
421
+	-rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags
422
+
423
+distdir: $(DISTFILES)
424
+	@srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`; \
425
+	topsrcdirstrip=`echo "$(top_srcdir)" | sed 's|.|.|g'`; \
426
+	list='$(DISTFILES)'; for file in $$list; do \
427
+	  case $$file in \
428
+	    $(srcdir)/*) file=`echo "$$file" | sed "s|^$$srcdirstrip/||"`;; \
429
+	    $(top_srcdir)/*) file=`echo "$$file" | sed "s|^$$topsrcdirstrip/|$(top_builddir)/|"`;; \
430
+	  esac; \
431
+	  if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \
432
+	  dir=`echo "$$file" | sed -e 's,/[^/]*$$,,'`; \
433
+	  if test "$$dir" != "$$file" && test "$$dir" != "."; then \
434
+	    dir="/$$dir"; \
435
+	    $(mkdir_p) "$(distdir)$$dir"; \
436
+	  else \
437
+	    dir=''; \
438
+	  fi; \
439
+	  if test -d $$d/$$file; then \
440
+	    if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \
441
+	      cp -pR $(srcdir)/$$file $(distdir)$$dir || exit 1; \
442
+	    fi; \
443
+	    cp -pR $$d/$$file $(distdir)$$dir || exit 1; \
444
+	  else \
445
+	    test -f $(distdir)/$$file \
446
+	    || cp -p $$d/$$file $(distdir)/$$file \
447
+	    || exit 1; \
448
+	  fi; \
449
+	done
450
+check-am: all-am
451
+check: check-am
452
+all-am: Makefile $(PROGRAMS)
453
+installdirs:
454
+	for dir in "$(DESTDIR)$(bindir)"; do \
455
+	  test -z "$$dir" || $(mkdir_p) "$$dir"; \
456
+	done
457
+install: install-am
458
+install-exec: install-exec-am
459
+install-data: install-data-am
460
+uninstall: uninstall-am
461
+
462
+install-am: all-am
463
+	@$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am
464
+
465
+installcheck: installcheck-am
466
+install-strip:
467
+	$(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
468
+	  install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \
469
+	  `test -z '$(STRIP)' || \
470
+	    echo "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'"` install
471
+mostlyclean-generic:
472
+
473
+clean-generic:
474
+
475
+distclean-generic:
476
+	-test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES)
477
+
478
+maintainer-clean-generic:
479
+	@echo "This command is intended for maintainers to use"
480
+	@echo "it deletes files that may require special tools to rebuild."
481
+clean: clean-am
482
+
483
+clean-am: clean-binPROGRAMS clean-generic clean-libtool mostlyclean-am
484
+
485
+distclean: distclean-am
486
+	-rm -rf ./$(DEPDIR)
487
+	-rm -f Makefile
488
+distclean-am: clean-am distclean-compile distclean-generic \
489
+	distclean-libtool distclean-tags
490
+
491
+dvi: dvi-am
492
+
493
+dvi-am:
494
+
495
+html: html-am
496
+
497
+info: info-am
498
+
499
+info-am:
500
+
501
+install-data-am:
502
+
503
+install-exec-am: install-binPROGRAMS
504
+
505
+install-info: install-info-am
506
+
507
+install-man:
508
+
509
+installcheck-am:
510
+
511
+maintainer-clean: maintainer-clean-am
512
+	-rm -rf ./$(DEPDIR)
513
+	-rm -f Makefile
514
+maintainer-clean-am: distclean-am maintainer-clean-generic
515
+
516
+mostlyclean: mostlyclean-am
517
+
518
+mostlyclean-am: mostlyclean-compile mostlyclean-generic \
519
+	mostlyclean-libtool
520
+
521
+pdf: pdf-am
522
+
523
+pdf-am:
524
+
525
+ps: ps-am
526
+
527
+ps-am:
528
+
529
+uninstall-am: uninstall-binPROGRAMS uninstall-info-am
530
+
531
+.PHONY: CTAGS GTAGS all all-am check check-am clean clean-binPROGRAMS \
532
+	clean-generic clean-libtool ctags distclean distclean-compile \
533
+	distclean-generic distclean-libtool distclean-tags distdir dvi \
534
+	dvi-am html html-am info info-am install install-am \
535
+	install-binPROGRAMS install-data install-data-am install-exec \
536
+	install-exec-am install-info install-info-am install-man \
537
+	install-strip installcheck installcheck-am installdirs \
538
+	maintainer-clean maintainer-clean-generic mostlyclean \
539
+	mostlyclean-compile mostlyclean-generic mostlyclean-libtool \
540
+	pdf pdf-am ps ps-am tags uninstall uninstall-am \
541
+	uninstall-binPROGRAMS uninstall-info-am
542
+
543
+# Tell versions [3.59,3.63) of GNU make to not export all variables.
544
+# Otherwise a system limit (for SysV at least) may be exceeded.
545
+.NOEXPORT:
0 546
new file mode 100644
... ...
@@ -0,0 +1,243 @@
0
+/*
1
+ *  Copyright (C) 2006 Tomasz Kojm <tkojm@clamav.net>
2
+ *
3
+ *  This program is free software; you can redistribute it and/or modify
4
+ *  it under the terms of the GNU General Public License as published by
5
+ *  the Free Software Foundation; either version 2 of the License, or
6
+ *  (at your option) any later version.
7
+ *
8
+ *  This program is distributed in the hope that it will be useful,
9
+ *  but WITHOUT ANY WARRANTY; without even the implied warranty of
10
+ *  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
11
+ *  GNU General Public License for more details.
12
+ *
13
+ *  You should have received a copy of the GNU General Public License
14
+ *  along with this program; if not, write to the Free Software
15
+ *  Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston,
16
+ *  MA 02110-1301, USA.
17
+ */
18
+
19
+#if HAVE_CONFIG_H
20
+#include "clamav-config.h"
21
+#endif
22
+
23
+#include <stdio.h>
24
+#include <stdlib.h>
25
+#include <string.h>
26
+#include <sys/types.h>
27
+#include <sys/stat.h>
28
+#include <unistd.h>
29
+
30
+#include "cfgparser.h"
31
+#define _GNU_SOURCE
32
+#include "getopt.h"
33
+
34
+void printopt(const struct cfgoption *opt, const struct cfgstruct *cpt)
35
+{
36
+    if(!cpt->enabled) {
37
+	printf("%s not set\n", opt->name);
38
+	return;
39
+    }
40
+
41
+    /*
42
+    printf("opt: %s, %d, %d, %s, %d, %d\n", opt->name, opt->argtype, opt->numarg, opt->strarg, opt->multiple, opt->owner);
43
+    printf("cpt: %s, %s, %d, %d, %d\n", cpt->optname, cpt->strarg, cpt->numarg, cpt->enabled, cpt->multiple);
44
+    */
45
+
46
+    switch(opt->argtype) {
47
+	case OPT_STR:
48
+	case OPT_FULLSTR:
49
+	    printf("%s = \"%s\"\n", opt->name, cpt->strarg);
50
+	    break;
51
+	case OPT_NUM:
52
+	case OPT_COMPSIZE:
53
+	    printf("%s = %d\n", opt->name, cpt->numarg);
54
+	    break;
55
+	case OPT_BOOL:
56
+	    if(cpt->enabled)
57
+		printf("%s = yes\n", opt->name);
58
+	    else
59
+		printf("%s = no\n", opt->name);
60
+	    break;
61
+	default:
62
+	    printf("%s: UNKNOWN ARGUMENT TYPE\n, opt->name");
63
+    }
64
+}
65
+
66
+void printcfg(const char *cfgfile)
67
+{
68
+	const struct cfgoption *opt;
69
+	const struct cfgstruct *cpt;
70
+	struct cfgstruct *cfg;
71
+	int i;
72
+	unsigned short cfgowner = 0;
73
+
74
+
75
+    if(!(cfg = getcfg(cfgfile, 1))) {
76
+	printf("Can't parse %s\n", cfgfile);
77
+	return;
78
+    }
79
+
80
+    /* pre loop to detect merged config */
81
+    for(i = 0; ; i++) {
82
+	opt = &cfg_options[i];
83
+
84
+	if(!opt->name)
85
+	    break;
86
+
87
+	cpt = cfgopt(cfg, opt->name);
88
+
89
+	if((cpt->numarg != opt->numarg) || (cpt->strarg && opt->strarg && strcmp(cpt->strarg, opt->strarg))) {
90
+	    if((opt->owner & OPT_CLAMD) && !(opt->owner & OPT_FRESHCLAM))
91
+		cfgowner |= OPT_CLAMD;
92
+	    else if((opt->owner & OPT_FRESHCLAM) && !(opt->owner & OPT_CLAMD))
93
+		cfgowner |= OPT_FRESHCLAM;
94
+	}
95
+    }
96
+
97
+    if((cfgowner & OPT_CLAMD) && (cfgowner & OPT_FRESHCLAM)) { /* merged cfg */
98
+	printf("%s: clamd and freshclam directives\n", cfgfile);
99
+	printf("-----------------\n");
100
+
101
+	printf("\n[common]\n");
102
+	for(i = 0; ; i++) {
103
+	    opt = &cfg_options[i];
104
+	    if(!opt->name)
105
+		break;
106
+	    if((opt->owner & OPT_CLAMD) && (opt->owner & OPT_FRESHCLAM)) {
107
+		cpt = cfgopt(cfg, opt->name);
108
+		printopt(opt, cpt);
109
+	    }
110
+	}
111
+
112
+	printf("\n[clamd]\n");
113
+	for(i = 0; ; i++) {
114
+	    opt = &cfg_options[i];
115
+	    if(!opt->name)
116
+		break;
117
+	    if((opt->owner & OPT_CLAMD) && !(opt->owner & OPT_FRESHCLAM)) {
118
+		cpt = cfgopt(cfg, opt->name);
119
+		printopt(opt, cpt);
120
+	    }
121
+	}
122
+
123
+	printf("\n[freshclam]\n");
124
+	for(i = 0; ; i++) {
125
+	    opt = &cfg_options[i];
126
+	    if(!opt->name)
127
+		break;
128
+	    if((opt->owner & OPT_FRESHCLAM) && !(opt->owner & OPT_CLAMD)) {
129
+		cpt = cfgopt(cfg, opt->name);
130
+		printopt(opt, cpt);
131
+	    }
132
+	}
133
+
134
+    } else { /* separate cfg */
135
+
136
+	if(cfgowner & OPT_CLAMD) {
137
+	    printf("%s: clamd directives\n", cfgfile);
138
+	    printf("-----------------\n");
139
+
140
+	    for(i = 0; ; i++) {
141
+		opt = &cfg_options[i];
142
+		if(!opt->name)
143
+		    break;
144
+		if(opt->owner & OPT_CLAMD) {
145
+		    cpt = cfgopt(cfg, opt->name);
146
+		    printopt(opt, cpt);
147
+		}
148
+	    }
149
+	} else {
150
+	    printf("%s: freshclam directives\n", cfgfile);
151
+	    printf("-----------------\n");
152
+
153
+	    for(i = 0; ; i++) {
154
+		opt = &cfg_options[i];
155
+		if(!opt->name)
156
+		    break;
157
+		if(opt->owner & OPT_FRESHCLAM) {
158
+		    cpt = cfgopt(cfg, opt->name);
159
+		    printopt(opt, cpt);
160
+		}
161
+	    }
162
+	}
163
+    }
164
+
165
+    freecfg(cfg);
166
+}
167
+
168
+void help(void)
169
+{
170
+    printf("\n");
171
+    printf("             Clam AntiVirus: Configuration Tool "VERSION"\n");
172
+    printf("      (C) 2006 ClamAV Team - http://www.clamav.net/team.html\n\n");
173
+
174
+    printf("    --help                 -h              show help\n");
175
+    printf("    --config-dir DIR       -c DIR          search for config files in DIR\n");
176
+    printf("\n");
177
+}
178
+
179
+int main(int argc, char **argv)
180
+{
181
+	char path[1024];
182
+	struct stat sb;
183
+	int ret, opt_index;
184
+	const char *getopt_parameters = "hc:";
185
+	static struct option long_options[] = {
186
+	    {"help", 0, 0, 'h'},
187
+	    {"config-dir", 1, 0, 'c'},
188
+	    {0, 0, 0, 0}
189
+    	};
190
+	char *confdir = strdup(CONFDIR);
191
+	int found = 0;
192
+
193
+
194
+    while(1) {
195
+	opt_index = 0;
196
+	ret = getopt_long(argc, argv, getopt_parameters, long_options, &opt_index);
197
+
198
+	if (ret == -1)
199
+	    break;
200
+
201
+	switch (ret) {
202
+	    case 0:
203
+		break;
204
+
205
+	    case 'c':
206
+		free(confdir);
207
+		confdir = optarg;
208
+		break;
209
+
210
+	    case 'h':
211
+		help();
212
+		free(confdir);
213
+		exit(0);
214
+
215
+    	    default:
216
+		printf("ERROR: Unknown option passed\n");
217
+		free(confdir);
218
+		exit(1);
219
+        }
220
+    }
221
+
222
+    snprintf(path, sizeof(path), "%s/clamd.conf", confdir);
223
+    if(stat(path, &sb) != -1) {
224
+	printcfg(path);
225
+	found = 1;
226
+	printf("\n");
227
+    }
228
+
229
+    snprintf(path, sizeof(path), "%s/freshclam.conf", confdir);
230
+    if(stat(path, &sb) != -1) {
231
+	printcfg(path);
232
+	found = 1;
233
+    }
234
+
235
+    if(!found) {
236
+	printf("No config files found in %s\n", confdir);
237
+	free(confdir);
238
+	return 1;
239
+    }
240
+
241
+    return 0;
242
+}
... ...
@@ -14624,7 +14624,7 @@ cat >>confdefs.h <<_ACEOF
14624 14624
 _ACEOF
14625 14625
 
14626 14626
 
14627
-                                                                                                                                                                          ac_config_files="$ac_config_files libclamav/Makefile clamscan/Makefile database/Makefile docs/Makefile clamd/Makefile clamdscan/Makefile clamav-milter/Makefile freshclam/Makefile sigtool/Makefile etc/Makefile Makefile clamav-config libclamav.pc docs/man/clamd.8 docs/man/clamd.conf.5 docs/man/freshclam.1 docs/man/freshclam.conf.5"
14627
+                                                                                                                                                                                    ac_config_files="$ac_config_files libclamav/Makefile clamscan/Makefile database/Makefile docs/Makefile clamd/Makefile clamdscan/Makefile clamav-milter/Makefile freshclam/Makefile sigtool/Makefile clamconf/Makefile etc/Makefile Makefile clamav-config libclamav.pc docs/man/clamd.8 docs/man/clamd.conf.5 docs/man/freshclam.1 docs/man/freshclam.conf.5"
14628 14628
 cat >confcache <<\_ACEOF
14629 14629
 # This file is a shell script that caches the results of configure
14630 14630
 # tests run on this system so they can be shared between configure
... ...
@@ -15204,6 +15204,7 @@ do
15204 15204
   "clamav-milter/Makefile" ) CONFIG_FILES="$CONFIG_FILES clamav-milter/Makefile" ;;
15205 15205
   "freshclam/Makefile" ) CONFIG_FILES="$CONFIG_FILES freshclam/Makefile" ;;
15206 15206
   "sigtool/Makefile" ) CONFIG_FILES="$CONFIG_FILES sigtool/Makefile" ;;
15207
+  "clamconf/Makefile" ) CONFIG_FILES="$CONFIG_FILES clamconf/Makefile" ;;
15207 15208
   "etc/Makefile" ) CONFIG_FILES="$CONFIG_FILES etc/Makefile" ;;
15208 15209
   "Makefile" ) CONFIG_FILES="$CONFIG_FILES Makefile" ;;
15209 15210
   "clamav-config" ) CONFIG_FILES="$CONFIG_FILES clamav-config" ;;
... ...
@@ -1004,6 +1004,7 @@ clamdscan/Makefile
1004 1004
 clamav-milter/Makefile
1005 1005
 freshclam/Makefile
1006 1006
 sigtool/Makefile
1007
+clamconf/Makefile
1007 1008
 etc/Makefile
1008 1009
 Makefile
1009 1010
 clamav-config