git-svn-id: file:///var/lib/svn/clamav-devel/branches/0.88-stable@2777 77e5149b-7576-45b1-b177-96237e5ba77b
... | ... |
@@ -86,6 +86,7 @@ libclamav/mspack: Stuart Caie |
86 | 86 |
Patch submitters (in alphabetical order): |
87 | 87 |
|
88 | 88 |
Kamil Andrusz <wizz*mniam.net> |
89 |
+Alexandre Biancalana <ale*seudns.net> |
|
89 | 90 |
Patrick Bihan-Faou <patrick*mindstep.com> |
90 | 91 |
Martin Blapp <mb*imp.ch> |
91 | 92 |
Igor Brezac <igor*ipass.net> |
... | ... |
@@ -168,6 +169,7 @@ David Santinoli <david*santinoli.com> |
168 | 168 |
Vijay Sarvepalli <vssarvep*office.uncg.edu> |
169 | 169 |
Theo Schlossnagle <jesus*omniti.com> |
170 | 170 |
Matthew Seaman <m.seaman*infracaninophile.co.uk> |
171 |
+GertJan Spoelman <cav*gjs.cc> |
|
171 | 172 |
Sven Strickroth <sstrickroth*gym-oha.de> |
172 | 173 |
Matt Sullivan <matt*sullivan.gen.nz> |
173 | 174 |
Joe Talbott <josepht*cstone.net> |
... | ... |
@@ -1,3 +1,24 @@ |
1 |
+Wed May 11 17:48:27 CEST 2005 |
|
2 |
+----------------------------- |
|
3 |
+ V 0.85 |
|
4 |
+ * Fixes backported from CVS: |
|
5 |
+ - freshclam/manager.c: fix socket descriptor leak in --no-dns mode (patch |
|
6 |
+ by GertJan Spoelman <cav*gjs.cc>) (tk) |
|
7 |
+ - clamscan, freshclam: return with 62 (instead of 1) when logger can't be |
|
8 |
+ initialized (tk) |
|
9 |
+ - libclamav/matcher-ac.c, libclamav/matcher-bm.c: fix detection problem |
|
10 |
+ with *.ndb OLE2 signatures (problem reported by Trog) (tk) |
|
11 |
+ - fix signature offset calculation in large files (problem reported by |
|
12 |
+ Christoph) (tk) |
|
13 |
+ - clamav-milter: print segfault diagnostic, even if print_trace is not |
|
14 |
+ available (njh) |
|
15 |
+ - sigtool/sigtool.c: fix support for *.fp databases (tk) |
|
16 |
+ - clamav-milter: Better handling of log file errors. Always send 451 when |
|
17 |
+ loading a new database when --external is not set (njh) |
|
18 |
+ - libclamav/tnef.c: If a parse fails and debugging is on, the file being |
|
19 |
+ scanned is dumped to a temporary file (njh) |
|
20 |
+ - libclamav/scanners.c: do not report I/O error with encrypted zips (tk) |
|
21 |
+ |
|
1 | 22 |
Fri Apr 29 14:18:18 CEST 2005 |
2 | 23 |
----------------------------- |
3 | 24 |
V 0.84 |
... | ... |
@@ -1,86 +1,8 @@ |
1 |
-0.84 |
|
1 |
+0.85 |
|
2 | 2 |
---- |
3 | 3 |
|
4 |
-This version improves detection of JPEG (MS04-028) based exploits, introduces |
|
5 |
-support for TNEF files and new detection mechanisms. Various bugfixes |
|
6 |
-(including problems with scanning of digest mail files) and improvements |
|
7 |
-have been made. |
|
8 |
- |
|
9 |
- |
|
10 |
-** We encourage users to help testing the development versions, now with ** |
|
11 |
-** rewritten RAR code and support for 3.0 archives! ** |
|
12 |
-** http://www.clamav.net/snapshot/ ** |
|
13 |
- |
|
14 |
- |
|
15 |
--) libclamav: |
|
16 |
- + JPEG exploit detector now also checks embedded Photoshop thumbnail images |
|
17 |
- + archive meta-data scanner (improves malware detection within encrypted |
|
18 |
- archives) |
|
19 |
- + support for TNEF (winmail.dat) decoding |
|
20 |
- + support for all tar archive formats |
|
21 |
- + MD5 implementation replaced with a slightly faster one |
|
22 |
- + improved database reloading with reference counter |
|
23 |
- + database updateable false positive eliminator |
|
24 |
- + speed improvements |
|
25 |
- + various bugfixes |
|
26 |
- |
|
27 |
--) clamd: |
|
28 |
- + VirusEvent now sets CLAM_VIRUSEVENT_FILENAME and CLAM_VIRUSEVENT_VIRUSNAME |
|
29 |
- environment variables |
|
30 |
- |
|
31 |
--) clamav-milter: |
|
32 |
- + improved database update detection when not --external |
|
33 |
- |
|
34 |
--) clamscan: |
|
35 |
- + new options --include-dir and exclude-dir |
|
36 |
- + new option --max-dir-recursion |
|
37 |
- |
|
38 |
--) freshclam: |
|
39 |
- + new directive LocalIPAddress |
|
40 |
- |
|
41 |
--) contrib: |
|
42 |
- + clamdmon 1.0 - clamdwatch replacement written in C |
|
43 |
- |
|
44 |
--) 3rd party software: |
|
45 |
- + hMailServer - open source e-mail server for Microsoft Window |
|
46 |
- + pop3.proxy - proxy server for the POP3 protocol |
|
47 |
- + HTTP Anti Virus Proxy |
|
48 |
- + SmarterMail Filter - ClamAV based plugin for SmarterMail Mail Server |
|
49 |
- + smf-clamd - small & fast virus filter for Sendmail |
|
50 |
- + Squidclam - replacement for SquidClamAV-Redirector.py written in C |
|
51 |
- + QtClamAVclient - remote clamd client based on the Qt Toolkit |
|
52 |
- + qpsmtp - flexible smtpd daemon written in Perl |
|
53 |
- |
|
54 |
-News: |
|
55 |
- |
|
56 |
-Palo Alto, Calif. March 31st 2005 - Clam AntiVirus, the leading Open Source |
|
57 |
-antivirus toolkit, and Sensory Networks, the leading provider of hardware |
|
58 |
-acceleration for network security applications, announced a partnership |
|
59 |
-to provide hardware acceleration support for the Clam AntiVirus suite. |
|
60 |
-[...] |
|
61 |
-Support for Sensory Networks' NodalCore acceleration in ClamAV will be |
|
62 |
-available in version 0.90 of the software suite in Q3 2005. For more |
|
63 |
-information please visit: |
|
64 |
-http://www.clamav.net/partners/partner-sn.html |
|
65 |
-http://www.sensorynetworks.com/ |
|
66 |
- |
|
67 |
- |
|
68 |
-The ClamAV project announces the opening of the official merchandise store: |
|
69 |
- |
|
70 |
-http://www.cafepress.com/clamav/ |
|
71 |
- |
|
72 |
-A big thank you to Finndesign (http://www.finndesign.fi) which |
|
73 |
-volunteered to design the whole line of products, including: |
|
74 |
- |
|
75 |
-- t-shirts (for women and men) |
|
76 |
-- golf shirt |
|
77 |
-- sweatshirt |
|
78 |
-- coffee mug |
|
79 |
-- mousepad |
|
80 |
-- stickers |
|
81 |
-- scrapbook |
|
82 |
- |
|
83 |
-By purchasing our merchandise, you contribute to the development of ClamAV. |
|
4 |
+Bugfixes in this release include correct signature offset calculation in large |
|
5 |
+files, proper handling of encrypted zip archives, and others. |
|
84 | 6 |
|
85 | 7 |
-- |
86 | 8 |
The ClamAV team (http://www.clamav.net/team.html) |
... | ... |
@@ -2,6 +2,15 @@ Note: This README/NEWS file refers to the source tarball. Some things described |
2 | 2 |
here may not be available in binary packages. |
3 | 3 |
-- |
4 | 4 |
|
5 |
+0.85 |
|
6 |
+---- |
|
7 |
+ |
|
8 |
+Bugfixes in this release include correct signature offset calculation in large |
|
9 |
+files, proper handling of encrypted zip archives, and others. |
|
10 |
+ |
|
11 |
+-- |
|
12 |
+The ClamAV team (http://www.clamav.net/team.html) |
|
13 |
+ |
|
5 | 14 |
0.84 |
6 | 15 |
---- |
7 | 16 |
|
... | ... |
@@ -16,7 +16,8 @@ Fails to compile on Linux/x86 with icc6.0 (complains about stdio.h...) |
16 | 16 |
Fails to build on Linux/x86 with icc7.1 with -ipo (fails on libclamav.a - keeps saying run ranlib). Otherwise it builds and runs OK. |
17 | 17 |
icc -O2 -tpp7 -xiMKW -parallel -i_dynamic -w2 -march=pentium4 -mcpu=pentium4 clamav-milter.c... |
18 | 18 |
|
19 |
-Tested with Electric Fence 2.2.2 |
|
19 |
+Tested with Electric Fence 2.2.2, and the bounds checking C compiler from |
|
20 |
+ http://web.inter.nl.net/hcc/Haj.Ten.Brugge/ |
|
20 | 21 |
|
21 | 22 |
Compiles OK on Linux/ppc (YDL2.3) with gcc2.95.4. Needs -lsmutil to link. |
22 | 23 |
cc -O3 -pedantic -Wuninitialized -Wall -pipe -fomit-frame-pointer -ffast-math -finline-functions -funroll-loop -pthread -lmilter ../libclamav/.libs/libclamav.a ../clamd/cfgfile.o ../clamd/others.o -lsmutil |
... | ... |
@@ -761,6 +762,11 @@ Changes |
761 | 761 |
0.84e 18/4/05: Fixed a multi-threading problem relating to updating |
762 | 762 |
the database when in internal mode |
763 | 763 |
Use HAVE_CTIME_R_[23] |
764 |
+0.84f 4/5/05: Better handling of open failures for LogFile |
|
765 |
+ Always send 451 when reloading a database, even if |
|
766 |
+ dont-wait isn't set |
|
767 |
+0.84g 9/5/05: Print an error in the log if a segfault is received |
|
768 |
+0.85 11/5/05: Up-issue |
|
764 | 769 |
|
765 | 770 |
4. INTERNATIONALISATION |
766 | 771 |
|
... | ... |
@@ -775,6 +781,10 @@ author an e-mail. |
775 | 775 |
Please send bug reports and/or comments to Nigel Horne <njh@despammed.com> or |
776 | 776 |
bugs@clamav.net. |
777 | 777 |
|
778 |
+Various tips will go here, for example |
|
779 |
+ define(`confMILTER_LOG_LEVEL',`22') |
|
780 |
+Running in the foreground, valgrind, LogSyslog, LogVerbose, LogFile etc. |
|
781 |
+ |
|
778 | 782 |
6. TODO |
779 | 783 |
|
780 | 784 |
There are several ideas marked as TODO in the source code. If anyone has |
... | ... |
@@ -22,9 +22,9 @@ |
22 | 22 |
* |
23 | 23 |
* For installation instructions see the file INSTALL that came with this file |
24 | 24 |
*/ |
25 |
-static char const rcsid[] = "$Id: clamav-milter.c,v 1.192 2005/04/18 10:53:34 nigelhorne Exp $"; |
|
25 |
+static char const rcsid[] = "$Id: clamav-milter.c,v 1.199 2005/05/11 12:26:44 nigelhorne Exp $"; |
|
26 | 26 |
|
27 |
-#define CM_VERSION "0.84e" |
|
27 |
+#define CM_VERSION "0.85" |
|
28 | 28 |
|
29 | 29 |
#if HAVE_CONFIG_H |
30 | 30 |
#include "clamav-config.h" |
... | ... |
@@ -367,11 +367,11 @@ static int debug_level = 0; |
367 | 367 |
|
368 | 368 |
static pthread_mutex_t n_children_mutex = PTHREAD_MUTEX_INITIALIZER; |
369 | 369 |
static pthread_cond_t n_children_cond = PTHREAD_COND_INITIALIZER; |
370 |
-static unsigned int n_children = 0; |
|
370 |
+static volatile unsigned int n_children = 0; |
|
371 | 371 |
static unsigned int max_children = 0; |
372 | 372 |
static pthread_mutex_t accept_mutex = PTHREAD_MUTEX_INITIALIZER; |
373 | 373 |
static pthread_cond_t accept_cond = PTHREAD_COND_INITIALIZER; |
374 |
-static int accept_inputs; |
|
374 |
+static volatile int accept_inputs; |
|
375 | 375 |
static int child_timeout = 0; /* number of seconds to wait for |
376 | 376 |
* a child to die. Set to 0 to |
377 | 377 |
* wait forever |
... | ... |
@@ -441,10 +441,11 @@ static const char *pidfile; |
441 | 441 |
#endif |
442 | 442 |
#endif |
443 | 443 |
|
444 |
+static void sigsegv(int sig); |
|
445 |
+ |
|
444 | 446 |
#ifdef HAVE_BACKTRACE |
445 | 447 |
#include <execinfo.h> |
446 | 448 |
|
447 |
-static void sigsegv(int sig); |
|
448 | 449 |
static void print_trace(void); |
449 | 450 |
|
450 | 451 |
#define BACKTRACE_SIZE 200 |
... | ... |
@@ -1029,8 +1030,13 @@ main(int argc, char **argv) |
1029 | 1029 |
if(cfgopt(copt, "LogSyslog")) { |
1030 | 1030 |
int fac = LOG_LOCAL6; |
1031 | 1031 |
|
1032 |
- if(cfgopt(copt, "LogVerbose")) |
|
1032 |
+ if(cfgopt(copt, "LogVerbose")) { |
|
1033 | 1033 |
logVerbose = 1; |
1034 |
+#if 0 |
|
1035 |
+ /* Only supported by Sendmail >= V8.13 */ |
|
1036 |
+ smfi_setdbg(6); |
|
1037 |
+#endif |
|
1038 |
+ } |
|
1034 | 1039 |
use_syslog = 1; |
1035 | 1040 |
|
1036 | 1041 |
if((cpt = cfgopt(copt, "LogFacility")) != NULL) |
... | ... |
@@ -1329,7 +1335,6 @@ main(int argc, char **argv) |
1329 | 1329 |
|
1330 | 1330 |
#ifndef CL_DEBUG |
1331 | 1331 |
close(1); |
1332 |
- close(2); |
|
1333 | 1332 |
|
1334 | 1333 |
if((cpt = cfgopt(copt, "LogFile"))) { |
1335 | 1334 |
logFile = cpt->strarg; |
... | ... |
@@ -1342,12 +1347,20 @@ main(int argc, char **argv) |
1342 | 1342 |
fprintf(stderr, "%s: LogFile requires full path\n", argv[0]); |
1343 | 1343 |
return EX_CONFIG; |
1344 | 1344 |
} |
1345 |
- } else |
|
1345 |
+ if(open(logFile, O_WRONLY|O_APPEND) < 0) { |
|
1346 |
+ perror(logFile); |
|
1347 |
+ return EX_CANTCREAT; |
|
1348 |
+ } |
|
1349 |
+ } else { |
|
1346 | 1350 |
logFile = "/dev/console"; |
1351 |
+ if(open(logFile, O_WRONLY) < 0) { |
|
1352 |
+ perror(logFile); |
|
1353 |
+ return EX_OSFILE; |
|
1354 |
+ } |
|
1355 |
+ } |
|
1347 | 1356 |
|
1348 |
- if((open(logFile, O_WRONLY|O_APPEND) == 1) || |
|
1349 |
- (open("/dev/null", O_WRONLY) == 1)) |
|
1350 |
- dup(1); |
|
1357 |
+ close(2); |
|
1358 |
+ dup(1); |
|
1351 | 1359 |
if(cfgopt(copt, "LogTime")) |
1352 | 1360 |
logTime++; |
1353 | 1361 |
#endif /*!CL_DEBUG*/ |
... | ... |
@@ -1428,7 +1441,7 @@ main(int argc, char **argv) |
1428 | 1428 |
|
1429 | 1429 |
#ifdef SESSION |
1430 | 1430 |
/* FIXME: add localSocket support to watchdog */ |
1431 |
- if(localSocket == NULL) |
|
1431 |
+ if((localSocket == NULL) || external) |
|
1432 | 1432 |
#endif |
1433 | 1433 |
pthread_create(&tid, NULL, watchdog, NULL); |
1434 | 1434 |
|
... | ... |
@@ -1439,26 +1452,49 @@ main(int argc, char **argv) |
1439 | 1439 |
|
1440 | 1440 |
if(pidfile) { |
1441 | 1441 |
/* save the PID */ |
1442 |
+ char *p, *q; |
|
1442 | 1443 |
FILE *fd; |
1443 | 1444 |
const mode_t old_umask = umask(0006); |
1444 | 1445 |
|
1446 |
+ if(pidfile[0] != '/') { |
|
1447 |
+ if(use_syslog) |
|
1448 |
+ syslog(LOG_ERR, _("pidfile: '%s' must be a full pathname"), |
|
1449 |
+ pidfile); |
|
1450 |
+ cli_errmsg(_("pidfile '%s' must be a full pathname\n"), pidfile); |
|
1451 |
+ |
|
1452 |
+ return EX_CONFIG; |
|
1453 |
+ } |
|
1454 |
+ p = strdup(pidfile); |
|
1455 |
+ q = strrchr(p, '/'); |
|
1456 |
+ *q = '\0'; |
|
1457 |
+ |
|
1458 |
+ if(chdir(p) < 0) /* safety */ |
|
1459 |
+ perror(p); |
|
1460 |
+ free(p); |
|
1461 |
+ |
|
1445 | 1462 |
if((fd = fopen(pidfile, "w")) == NULL) { |
1446 | 1463 |
if(use_syslog) |
1447 | 1464 |
syslog(LOG_ERR, _("Can't save PID in file %s"), |
1448 | 1465 |
pidfile); |
1449 | 1466 |
cli_errmsg(_("Can't save PID in file %s\n"), pidfile); |
1450 | 1467 |
return EX_CONFIG; |
1451 |
- } else { |
|
1468 |
+ } |
|
1452 | 1469 |
#ifdef C_LINUX |
1453 |
- /* Ensure that all threads are kill()ed */ |
|
1454 |
- fprintf(fd, "-%d\n", (int)getpgrp()); |
|
1470 |
+ /* Ensure that all threads are kill()ed */ |
|
1471 |
+ fprintf(fd, "-%d\n", (int)getpgrp()); |
|
1455 | 1472 |
#else |
1456 |
- fprintf(fd, "%d\n", (int)getpid()); |
|
1473 |
+ fprintf(fd, "%d\n", (int)getpid()); |
|
1457 | 1474 |
#endif |
1458 |
- fclose(fd); |
|
1459 |
- } |
|
1475 |
+ fclose(fd); |
|
1460 | 1476 |
umask(old_umask); |
1461 |
- } |
|
1477 |
+ } else if(tmpdir) |
|
1478 |
+ chdir(tmpdir); /* safety */ |
|
1479 |
+ else |
|
1480 |
+#ifdef P_tmpdir |
|
1481 |
+ chdir(P_tmpdir); |
|
1482 |
+#else |
|
1483 |
+ chdir("/tmp"); |
|
1484 |
+#endif |
|
1462 | 1485 |
|
1463 | 1486 |
if(cfgopt(copt, "FixStaleSocket")) { |
1464 | 1487 |
/* |
... | ... |
@@ -1490,14 +1526,14 @@ main(int argc, char **argv) |
1490 | 1490 |
} |
1491 | 1491 |
|
1492 | 1492 |
#if 0 |
1493 |
- /* Only supported by later libmilter */ |
|
1493 |
+ /* Only supported by Sendmail >= V8.13 */ |
|
1494 | 1494 |
if(smfi_opensocket(1) == MI_FAILURE) { |
1495 | 1495 |
cli_errmsg("can't open/create %s\n", port); |
1496 | 1496 |
return EX_CONFIG; |
1497 | 1497 |
} |
1498 | 1498 |
#endif |
1499 | 1499 |
|
1500 |
- signal(SIGPIPE, SIG_IGN); |
|
1500 |
+ signal(SIGPIPE, SIG_IGN); /* libmilter probably does this as well */ |
|
1501 | 1501 |
|
1502 | 1502 |
#ifdef SESSION |
1503 | 1503 |
pthread_mutex_lock(&version_mutex); |
... | ... |
@@ -1515,9 +1551,7 @@ main(int argc, char **argv) |
1515 | 1515 |
pthread_mutex_unlock(&version_mutex); |
1516 | 1516 |
#endif |
1517 | 1517 |
|
1518 |
-#ifdef HAVE_BACKTRACE |
|
1519 | 1518 |
(void)signal(SIGSEGV, sigsegv); |
1520 |
-#endif |
|
1521 | 1519 |
|
1522 | 1520 |
return smfi_main(); |
1523 | 1521 |
} |
... | ... |
@@ -1917,7 +1951,14 @@ clamfi_connect(SMFICTX *ctx, char *hostname, _SOCK_ADDR *hostaddr) |
1917 | 1917 |
accepting = accept_inputs; |
1918 | 1918 |
pthread_mutex_unlock(&accept_mutex); |
1919 | 1919 |
if(!accepting) { |
1920 |
+#if 1 |
|
1920 | 1921 |
cli_warnmsg("Not accepting inputs at the moment\n"); |
1922 |
+ /* |
|
1923 |
+ * We must refuse here even if dont_wait isn't set, since |
|
1924 |
+ * it could take some time, and sendmail could time us out |
|
1925 |
+ * and refuse to have anything more to do with us until |
|
1926 |
+ * the program is restarted |
|
1927 |
+ */ |
|
1921 | 1928 |
if(dont_wait) |
1922 | 1929 |
return SMFIS_TEMPFAIL; |
1923 | 1930 |
pthread_mutex_lock(&accept_mutex); |
... | ... |
@@ -1925,6 +1966,8 @@ clamfi_connect(SMFICTX *ctx, char *hostname, _SOCK_ADDR *hostaddr) |
1925 | 1925 |
pthread_cond_wait(&accept_cond, &accept_mutex); |
1926 | 1926 |
pthread_mutex_unlock(&accept_mutex); |
1927 | 1927 |
cli_warnmsg("Accepting inputs again\n"); |
1928 |
+#endif |
|
1929 |
+ /*return SMFIS_TEMPFAIL;*/ |
|
1928 | 1930 |
} |
1929 | 1931 |
|
1930 | 1932 |
if(ctx == NULL) { |
... | ... |
@@ -2425,6 +2468,9 @@ clamfi_body(SMFICTX *ctx, u_char *bodyp, size_t len) |
2425 | 2425 |
cli_dbgmsg(_("clamfi_envbody: %u bytes\n"), len); |
2426 | 2426 |
#endif |
2427 | 2427 |
|
2428 |
+ if(len == 0) /* unlikely */ |
|
2429 |
+ return SMFIS_CONTINUE; |
|
2430 |
+ |
|
2428 | 2431 |
nbytes = clamfi_send(privdata, len, (char *)bodyp); |
2429 | 2432 |
if(streamMaxLength > 0L) { |
2430 | 2433 |
if(privdata->numBytes > streamMaxLength) { |
... | ... |
@@ -2618,8 +2664,8 @@ clamfi_eom(SMFICTX *ctx) |
2618 | 2618 |
#endif |
2619 | 2619 |
/* |
2620 | 2620 |
* TODO: if more than one host has been specified, try |
2621 |
- * another one - setting cl_error to SMFIS_TEMPFAIL helps |
|
2622 |
- * by forcing a retry |
|
2621 |
+ * another one - setting cl_error to SMFIS_TEMPFAIL |
|
2622 |
+ * helps by forcing a retry |
|
2623 | 2623 |
*/ |
2624 | 2624 |
clamfi_cleanup(ctx); |
2625 | 2625 |
syslog(LOG_NOTICE, _("clamfi_eom: read nothing from clamd on %s"), hostname); |
... | ... |
@@ -2962,10 +3008,7 @@ clamfi_eom(SMFICTX *ctx) |
2962 | 2962 |
syslog(LOG_ERR, _("Can't set quarantine user %s"), quarantine); |
2963 | 2963 |
else |
2964 | 2964 |
cli_warnmsg(_("Can't set quarantine user %s\n"), quarantine); |
2965 |
- if(privdata->discard) |
|
2966 |
- rc = SMFIS_DISCARD; |
|
2967 |
- else |
|
2968 |
- rc = SMFIS_REJECT; |
|
2965 |
+ rc = (privdata->discard) ? SMFIS_DISCARD : SMFIS_REJECT; |
|
2969 | 2966 |
} else { |
2970 | 2967 |
if(use_syslog) |
2971 | 2968 |
syslog(LOG_DEBUG, "Redirected virus to %s", quarantine); |
... | ... |
@@ -4366,13 +4409,15 @@ watchdog(void *a) |
4366 | 4366 |
} else if(dbstatus == 0) |
4367 | 4367 |
cli_dbgmsg("Database has not changed\n"); |
4368 | 4368 |
else if(dbstatus == 1) { |
4369 |
- cli_warnmsg("Not reloading database until idle\n"); |
|
4369 |
+ cli_warnmsg("Not reloading database until idle - waiting for %d children\n", n_children); |
|
4370 | 4370 |
pthread_mutex_lock(&accept_mutex); |
4371 | 4371 |
accept_inputs = 0; |
4372 | 4372 |
pthread_mutex_unlock(&accept_mutex); |
4373 | 4373 |
|
4374 |
- while(n_children > 0) |
|
4374 |
+ while(n_children > 0) { |
|
4375 | 4375 |
pthread_cond_wait(&n_children_cond, &n_children_mutex); |
4376 |
+ cli_warnmsg("Waiting for %d children until databae reload\n", n_children); |
|
4377 |
+ } |
|
4376 | 4378 |
|
4377 | 4379 |
cl_statfree(&dbstat); |
4378 | 4380 |
if(use_syslog) |
... | ... |
@@ -4555,12 +4600,15 @@ watchdog(void *a) |
4555 | 4555 |
} else if(dbstatus == 0) |
4556 | 4556 |
cli_dbgmsg("Database has not changed\n"); |
4557 | 4557 |
else if(dbstatus == 1) { |
4558 |
- cli_warnmsg("Not reloading database until idle\n"); |
|
4558 |
+ cli_warnmsg("Not reloading database until idle - waiting for %d children\n", n_children); |
|
4559 | 4559 |
pthread_mutex_lock(&accept_mutex); |
4560 | 4560 |
accept_inputs = 0; |
4561 | 4561 |
pthread_mutex_unlock(&accept_mutex); |
4562 |
- while(n_children > 0) |
|
4562 |
+ |
|
4563 |
+ while(n_children > 0) { |
|
4563 | 4564 |
pthread_cond_wait(&n_children_cond, &n_children_mutex); |
4565 |
+ cli_warnmsg("Waiting for %d children until databae reload\n", n_children); |
|
4566 |
+ } |
|
4564 | 4567 |
cl_statfree(&dbstat); |
4565 | 4568 |
if(use_syslog) |
4566 | 4569 |
syslog(LOG_WARNING, _("Loading new database")); |
... | ... |
@@ -4571,7 +4619,8 @@ watchdog(void *a) |
4571 | 4571 |
} |
4572 | 4572 |
pthread_mutex_lock(&accept_mutex); |
4573 | 4573 |
accept_inputs = 1; |
4574 |
- pthread_cond_broadcast(&accept_cond); |
|
4574 |
+ if(pthread_cond_broadcast(&accept_cond) < 0) |
|
4575 |
+ perror("pthread_cond_broadcast"); |
|
4575 | 4576 |
pthread_mutex_unlock(&accept_mutex); |
4576 | 4577 |
} else { |
4577 | 4578 |
smfi_stop(); |
... | ... |
@@ -4861,19 +4910,23 @@ loadDatabase(void) |
4861 | 4861 |
return cl_statinidir(dbdir, &dbstat); |
4862 | 4862 |
} |
4863 | 4863 |
|
4864 |
-#ifdef HAVE_BACKTRACE |
|
4865 | 4864 |
static void |
4866 | 4865 |
sigsegv(int sig) |
4867 | 4866 |
{ |
4868 | 4867 |
signal(SIGSEGV, SIG_DFL); |
4868 |
+ |
|
4869 |
+#ifdef HAVE_BACKTRACE |
|
4869 | 4870 |
print_trace(); |
4871 |
+#endif |
|
4872 |
+ |
|
4870 | 4873 |
if(use_syslog) |
4871 | 4874 |
syslog(LOG_ERR, "Segmentation fault :-( Bye.."); |
4872 |
- cli_dbgmsg("Segmentation fault :-( Bye..\n"); |
|
4875 |
+ cli_errmsg("Segmentation fault :-( Bye..\n"); |
|
4873 | 4876 |
|
4874 | 4877 |
smfi_stop(); |
4875 | 4878 |
} |
4876 | 4879 |
|
4880 |
+#ifdef HAVE_BACKTRACE |
|
4877 | 4881 |
static void |
4878 | 4882 |
print_trace(void) |
4879 | 4883 |
{ |
... | ... |
@@ -5038,7 +5091,7 @@ logger(const char *mess) |
5038 | 5038 |
#else |
5039 | 5039 |
ctime_r(&currtime, buf); |
5040 | 5040 |
#endif |
5041 |
- fprintf(fout, "%.*s -> %s\n", strlen(buf) - 1, buf, mess); |
|
5041 |
+ fprintf(fout, "%.*s -> %s\n", (int)strlen(buf) - 1, buf, mess); |
|
5042 | 5042 |
#else /*!HAVE_CTIME_R*/ |
5043 | 5043 |
/* TODO */ |
5044 | 5044 |
fprintf(fout, "%s\n", mess); |
... | ... |
@@ -112,7 +112,7 @@ int clamscan(struct optstruct *opt) |
112 | 112 |
logg_file = getargc(opt, 'l'); |
113 | 113 |
if(logg("--------------------------------------\n")) { |
114 | 114 |
mprintf("!Problem with internal logger.\n"); |
115 |
- return 1; |
|
115 |
+ return 62; |
|
116 | 116 |
} |
117 | 117 |
} else |
118 | 118 |
logg_file = NULL; |
... | ... |
@@ -122,19 +122,19 @@ int clamscan(struct optstruct *opt) |
122 | 122 |
if(!strchr(getargl(opt, "max-space"), 'M') && !strchr(getargl(opt, "max-space"), 'm')) |
123 | 123 |
if(!isnumb(getargl(opt, "max-space"))) { |
124 | 124 |
mprintf("!--max-space requires natural number.\n"); |
125 |
- exit(40); |
|
125 |
+ return 40; |
|
126 | 126 |
} |
127 | 127 |
|
128 | 128 |
if(optl(opt, "max-files")) |
129 | 129 |
if(!isnumb(getargl(opt, "max-files"))) { |
130 | 130 |
mprintf("!--max-files requires natural number.\n"); |
131 |
- exit(40); |
|
131 |
+ return 40; |
|
132 | 132 |
} |
133 | 133 |
|
134 | 134 |
if(optl(opt, "max-recursion")) |
135 | 135 |
if(!isnumb(getargl(opt, "max-recursion"))) { |
136 | 136 |
mprintf("!--max-recursion requires natural number.\n"); |
137 |
- exit(40); |
|
137 |
+ return 40; |
|
138 | 138 |
} |
139 | 139 |
|
140 | 140 |
|
... | ... |
@@ -2072,7 +2072,7 @@ fi |
2072 | 2072 |
|
2073 | 2073 |
# Define the identity of the package. |
2074 | 2074 |
PACKAGE=clamav |
2075 |
- VERSION="0.84" |
|
2075 |
+ VERSION="0.85" |
|
2076 | 2076 |
|
2077 | 2077 |
|
2078 | 2078 |
cat >>confdefs.h <<_ACEOF |
... | ... |
@@ -2206,7 +2206,7 @@ am__tar='${AMTAR} chof - "$$tardir"'; am__untar='${AMTAR} xf -' |
2206 | 2206 |
|
2207 | 2207 |
|
2208 | 2208 |
LC_CURRENT=1 |
2209 |
-LC_REVISION=10 |
|
2209 |
+LC_REVISION=11 |
|
2210 | 2210 |
LC_AGE=0 |
2211 | 2211 |
LIBCLAMAV_VERSION="$LC_CURRENT":"$LC_REVISION":"$LC_AGE" |
2212 | 2212 |
|
... | ... |
@@ -18,11 +18,11 @@ dnl Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. |
18 | 18 |
|
19 | 19 |
AC_INIT(clamscan/clamscan.c) |
20 | 20 |
AC_CREATE_TARGET_H(target.h) |
21 |
-AM_INIT_AUTOMAKE(clamav, "0.84") |
|
21 |
+AM_INIT_AUTOMAKE(clamav, "0.85") |
|
22 | 22 |
AM_CONFIG_HEADER(clamav-config.h) |
23 | 23 |
|
24 | 24 |
LC_CURRENT=1 |
25 |
-LC_REVISION=10 |
|
25 |
+LC_REVISION=11 |
|
26 | 26 |
LC_AGE=0 |
27 | 27 |
LIBCLAMAV_VERSION="$LC_CURRENT":"$LC_REVISION":"$LC_AGE" |
28 | 28 |
AC_SUBST(LIBCLAMAV_VERSION) |
... | ... |
@@ -69,7 +69,7 @@ |
69 | 69 |
\vspace{3cm} |
70 | 70 |
\begin{flushright} |
71 | 71 |
\rule[-1ex]{8cm}{3pt}\\ |
72 |
- \huge Clam AntiVirus 0.84\\ |
|
72 |
+ \huge Clam AntiVirus 0.85\\ |
|
73 | 73 |
\huge \emph{User Manual}\\ |
74 | 74 |
\end{flushright} |
75 | 75 |
|
... | ... |
@@ -2076,8 +2076,6 @@ level required:MD5 checksum:digital signature:builder name:build time (sec) |
2076 | 2076 |
& & & \email{<jfp*clearfield.com>}\\ \hline |
2077 | 2077 |
\url{clamav.oltrelinux.com} & 194.242.226.43 & Italy & Luca Gibelli\\ |
2078 | 2078 |
& & & \email{<l.gibelli*oltrelinux.com>}\\ \hline |
2079 |
- \url{clamav.artcoms.ru} & 80.244.224.247 & Russia & Syrnikov Alexei\\ |
|
2080 |
- & & & \email{<san*artcoms.ru>}\\ \hline |
|
2081 | 2079 |
\url{xarch.clamav.net} & 129.27.62.129 & Austria & Reini Urban\\ |
2082 | 2080 |
& & & \email{<rurban*x-ray.at>}\\ \hline |
2083 | 2081 |
\url{clamav.linux.it} & 213.92.8.5 & Italy & Marco d'Itri\\ |
... | ... |
@@ -2358,6 +2356,7 @@ level required:MD5 checksum:digital signature:builder name:build time (sec) |
2358 | 2358 |
\item Sergey Smitienko \email{<hunter*comsys.com.ua>} |
2359 | 2359 |
\item Solar Designer \email{<solar*openwall.com>} |
2360 | 2360 |
\item Kevin Spicer \email{<kevin*kevinspicer.co.uk>} |
2361 |
+ \item GertJan Spoelman \email{<cav*gjs.cc>} |
|
2361 | 2362 |
\item Ole Stanstrup \email{<ole*stanstrup.dk>} |
2362 | 2363 |
\item Adam Stein \email{<adam*scan.mc.xerox.com>} |
2363 | 2364 |
\item Steve \email{<steveb*webtribe.net>} |
... | ... |
@@ -24,18 +24,18 @@ original version by: Nikos Drakos, CBLU, University of Leeds |
24 | 24 |
|
25 | 25 |
<BODY > |
26 | 26 |
<!--Navigation Panel--> |
27 |
-<A NAME="tex2html305" |
|
27 |
+<A NAME="tex2html304" |
|
28 | 28 |
HREF="node1.html"> |
29 | 29 |
<IMG WIDTH="37" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="next" SRC="next.png"></A> |
30 | 30 |
<IMG WIDTH="26" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="up" SRC="up_g.png"> |
31 | 31 |
<IMG WIDTH="63" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="previous" SRC="prev_g.png"> |
32 |
-<A NAME="tex2html303" |
|
32 |
+<A NAME="tex2html302" |
|
33 | 33 |
HREF="node1.html"> |
34 | 34 |
<IMG WIDTH="65" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="contents" SRC="contents.png"></A> |
35 | 35 |
<BR> |
36 |
-<B> Next:</B> <A NAME="tex2html306" |
|
36 |
+<B> Next:</B> <A NAME="tex2html305" |
|
37 | 37 |
HREF="node1.html">Contents</A> |
38 |
-   <B> <A NAME="tex2html304" |
|
38 |
+   <B> <A NAME="tex2html303" |
|
39 | 39 |
HREF="node1.html">Contents</A></B> |
40 | 40 |
<BR> |
41 | 41 |
<BR> |
... | ... |
@@ -59,7 +59,7 @@ original version by: Nikos Drakos, CBLU, University of Leeds |
59 | 59 |
<BR> |
60 | 60 |
<BR> |
61 | 61 |
<DIV ALIGN="RIGHT"> |
62 |
-<BR> <FONT SIZE="+3">Clam AntiVirus 0.84 |
|
62 |
+<BR> <FONT SIZE="+3">Clam AntiVirus 0.85 |
|
63 | 63 |
<BR> <FONT SIZE="+3"><I>User Manual</I> |
64 | 64 |
<BR> |
65 | 65 |
</FONT></FONT></DIV> |
... | ... |
@@ -71,366 +71,366 @@ original version by: Nikos Drakos, CBLU, University of Leeds |
71 | 71 |
<A NAME="CHILD_LINKS"></A> |
72 | 72 |
|
73 | 73 |
<UL> |
74 |
-<LI><A NAME="tex2html307" |
|
74 |
+<LI><A NAME="tex2html306" |
|
75 | 75 |
HREF="node1.html">Contents</A> |
76 |
-<LI><A NAME="tex2html308" |
|
76 |
+<LI><A NAME="tex2html307" |
|
77 | 77 |
HREF="node2.html">Introduction</A> |
78 | 78 |
<UL> |
79 |
-<LI><A NAME="tex2html309" |
|
79 |
+<LI><A NAME="tex2html308" |
|
80 | 80 |
HREF="node3.html">Features</A> |
81 |
-<LI><A NAME="tex2html310" |
|
81 |
+<LI><A NAME="tex2html309" |
|
82 | 82 |
HREF="node4.html">Mailing lists</A> |
83 |
-<LI><A NAME="tex2html311" |
|
83 |
+<LI><A NAME="tex2html310" |
|
84 | 84 |
HREF="node5.html">Virus submitting</A> |
85 | 85 |
</UL> |
86 |
-<LI><A NAME="tex2html312" |
|
86 |
+<LI><A NAME="tex2html311" |
|
87 | 87 |
HREF="node6.html">Base package</A> |
88 | 88 |
<UL> |
89 |
-<LI><A NAME="tex2html313" |
|
89 |
+<LI><A NAME="tex2html312" |
|
90 | 90 |
HREF="node7.html">Supported platforms</A> |
91 |
-<LI><A NAME="tex2html314" |
|
91 |
+<LI><A NAME="tex2html313" |
|
92 | 92 |
HREF="node8.html">Binary packages</A> |
93 |
-<LI><A NAME="tex2html315" |
|
93 |
+<LI><A NAME="tex2html314" |
|
94 | 94 |
HREF="node9.html">Daily built snapshots</A> |
95 | 95 |
</UL> |
96 |
-<LI><A NAME="tex2html316" |
|
96 |
+<LI><A NAME="tex2html315" |
|
97 | 97 |
HREF="node10.html">Installation</A> |
98 | 98 |
<UL> |
99 |
-<LI><A NAME="tex2html317" |
|
99 |
+<LI><A NAME="tex2html316" |
|
100 | 100 |
HREF="node11.html">Requirements</A> |
101 |
-<LI><A NAME="tex2html318" |
|
101 |
+<LI><A NAME="tex2html317" |
|
102 | 102 |
HREF="node12.html">Installing on a shell account</A> |
103 |
-<LI><A NAME="tex2html319" |
|
103 |
+<LI><A NAME="tex2html318" |
|
104 | 104 |
HREF="node13.html">Adding new system user and group</A> |
105 |
-<LI><A NAME="tex2html320" |
|
105 |
+<LI><A NAME="tex2html319" |
|
106 | 106 |
HREF="node14.html">Compilation of base package</A> |
107 |
-<LI><A NAME="tex2html321" |
|
107 |
+<LI><A NAME="tex2html320" |
|
108 | 108 |
HREF="node15.html">Compilation with clamav-milter enabled</A> |
109 | 109 |
</UL> |
110 |
-<LI><A NAME="tex2html322" |
|
110 |
+<LI><A NAME="tex2html321" |
|
111 | 111 |
HREF="node16.html">Configuration</A> |
112 | 112 |
<UL> |
113 |
-<LI><A NAME="tex2html323" |
|
113 |
+<LI><A NAME="tex2html322" |
|
114 | 114 |
HREF="node17.html">clamd</A> |
115 | 115 |
<UL> |
116 |
-<LI><A NAME="tex2html324" |
|
116 |
+<LI><A NAME="tex2html323" |
|
117 | 117 |
HREF="node18.html">On-access scanning</A> |
118 | 118 |
</UL> |
119 |
-<LI><A NAME="tex2html325" |
|
119 |
+<LI><A NAME="tex2html324" |
|
120 | 120 |
HREF="node19.html">clamav-milter</A> |
121 |
-<LI><A NAME="tex2html326" |
|
121 |
+<LI><A NAME="tex2html325" |
|
122 | 122 |
HREF="node20.html">Testing</A> |
123 |
-<LI><A NAME="tex2html327" |
|
123 |
+<LI><A NAME="tex2html326" |
|
124 | 124 |
HREF="node21.html">Setting up auto-updating</A> |
125 |
-<LI><A NAME="tex2html328" |
|
125 |
+<LI><A NAME="tex2html327" |
|
126 | 126 |
HREF="node22.html">Closest mirrors</A> |
127 | 127 |
</UL> |
128 |
-<LI><A NAME="tex2html329" |
|
128 |
+<LI><A NAME="tex2html328" |
|
129 | 129 |
HREF="node23.html">Usage</A> |
130 | 130 |
<UL> |
131 |
-<LI><A NAME="tex2html330" |
|
131 |
+<LI><A NAME="tex2html329" |
|
132 | 132 |
HREF="node24.html">Clam daemon</A> |
133 |
-<LI><A NAME="tex2html331" |
|
133 |
+<LI><A NAME="tex2html330" |
|
134 | 134 |
HREF="node25.html">Clam<B>d</B>scan</A> |
135 |
-<LI><A NAME="tex2html332" |
|
135 |
+<LI><A NAME="tex2html331" |
|
136 | 136 |
HREF="node26.html">Clamuko</A> |
137 |
-<LI><A NAME="tex2html333" |
|
137 |
+<LI><A NAME="tex2html332" |
|
138 | 138 |
HREF="node27.html">Output format</A> |
139 | 139 |
<UL> |
140 |
-<LI><A NAME="tex2html334" |
|
140 |
+<LI><A NAME="tex2html333" |
|
141 | 141 |
HREF="node28.html">clamscan</A> |
142 |
-<LI><A NAME="tex2html335" |
|
142 |
+<LI><A NAME="tex2html334" |
|
143 | 143 |
HREF="node29.html">clamd</A> |
144 | 144 |
</UL> |
145 | 145 |
</UL> |
146 |
-<LI><A NAME="tex2html336" |
|
146 |
+<LI><A NAME="tex2html335" |
|
147 | 147 |
HREF="node30.html">LibClamAV</A> |
148 | 148 |
<UL> |
149 |
-<LI><A NAME="tex2html337" |
|
149 |
+<LI><A NAME="tex2html336" |
|
150 | 150 |
HREF="node31.html">Licence</A> |
151 |
-<LI><A NAME="tex2html338" |
|
151 |
+<LI><A NAME="tex2html337" |
|
152 | 152 |
HREF="node32.html">Features</A> |
153 | 153 |
<UL> |
154 |
-<LI><A NAME="tex2html339" |
|
154 |
+<LI><A NAME="tex2html338" |
|
155 | 155 |
HREF="node33.html">Archives and compressed files</A> |
156 |
-<LI><A NAME="tex2html340" |
|
156 |
+<LI><A NAME="tex2html339" |
|
157 | 157 |
HREF="node34.html">Mail files</A> |
158 | 158 |
</UL> |
159 |
-<LI><A NAME="tex2html341" |
|
159 |
+<LI><A NAME="tex2html340" |
|
160 | 160 |
HREF="node35.html">API</A> |
161 | 161 |
<UL> |
162 |
-<LI><A NAME="tex2html342" |
|
162 |
+<LI><A NAME="tex2html341" |
|
163 | 163 |
HREF="node36.html">Header file</A> |
164 |
-<LI><A NAME="tex2html343" |
|
164 |
+<LI><A NAME="tex2html342" |
|
165 | 165 |
HREF="node37.html">Database loading</A> |
166 |
-<LI><A NAME="tex2html344" |
|
166 |
+<LI><A NAME="tex2html343" |
|
167 | 167 |
HREF="node38.html">Error handling</A> |
168 |
-<LI><A NAME="tex2html345" |
|
168 |
+<LI><A NAME="tex2html344" |
|
169 | 169 |
HREF="node39.html">Database structure</A> |
170 | 170 |
</UL> |
171 |
-<LI><A NAME="tex2html346" |
|
171 |
+<LI><A NAME="tex2html345" |
|
172 | 172 |
HREF="node40.html">Database reloading</A> |
173 | 173 |
<UL> |
174 |
-<LI><A NAME="tex2html347" |
|
174 |
+<LI><A NAME="tex2html346" |
|
175 | 175 |
HREF="node41.html">Data scan functions</A> |
176 |
-<LI><A NAME="tex2html348" |
|
176 |
+<LI><A NAME="tex2html347" |
|
177 | 177 |
HREF="node42.html">Memory</A> |
178 |
-<LI><A NAME="tex2html349" |
|
178 |
+<LI><A NAME="tex2html348" |
|
179 | 179 |
HREF="node43.html">clamav-config</A> |
180 |
-<LI><A NAME="tex2html350" |
|
180 |
+<LI><A NAME="tex2html349" |
|
181 | 181 |
HREF="node44.html">Example</A> |
182 | 182 |
</UL> |
183 |
-<LI><A NAME="tex2html351" |
|
183 |
+<LI><A NAME="tex2html350" |
|
184 | 184 |
HREF="node45.html">CVD format</A> |
185 | 185 |
</UL> |
186 |
-<LI><A NAME="tex2html352" |
|
186 |
+<LI><A NAME="tex2html351" |
|
187 | 187 |
HREF="node46.html">Frequently Asked Questions</A> |
188 |
-<LI><A NAME="tex2html353" |
|
188 |
+<LI><A NAME="tex2html352" |
|
189 | 189 |
HREF="node47.html">Third party software</A> |
190 | 190 |
<UL> |
191 |
-<LI><A NAME="tex2html354" |
|
191 |
+<LI><A NAME="tex2html353" |
|
192 | 192 |
HREF="node48.html"><I>MTA + ClamAV</I></A> |
193 | 193 |
<UL> |
194 |
-<LI><A NAME="tex2html355" |
|
194 |
+<LI><A NAME="tex2html354" |
|
195 | 195 |
HREF="node49.html">amavisd-new</A> |
196 |
-<LI><A NAME="tex2html356" |
|
196 |
+<LI><A NAME="tex2html355" |
|
197 | 197 |
HREF="node50.html">AMaViS - "Next Generation"</A> |
198 |
-<LI><A NAME="tex2html357" |
|
198 |
+<LI><A NAME="tex2html356" |
|
199 | 199 |
HREF="node51.html">ClamdMail</A> |
200 |
-<LI><A NAME="tex2html358" |
|
200 |
+<LI><A NAME="tex2html357" |
|
201 | 201 |
HREF="node52.html">cgpav</A> |
202 |
-<LI><A NAME="tex2html359" |
|
202 |
+<LI><A NAME="tex2html358" |
|
203 | 203 |
HREF="node53.html">ClamCour</A> |
204 |
-<LI><A NAME="tex2html360" |
|
204 |
+<LI><A NAME="tex2html359" |
|
205 | 205 |
HREF="node54.html">clamfilter</A> |
206 |
-<LI><A NAME="tex2html361" |
|
206 |
+<LI><A NAME="tex2html360" |
|
207 | 207 |
HREF="node55.html">ClamSMTP</A> |
208 |
-<LI><A NAME="tex2html362" |
|
208 |
+<LI><A NAME="tex2html361" |
|
209 | 209 |
HREF="node56.html">clapf</A> |
210 |
-<LI><A NAME="tex2html363" |
|
210 |
+<LI><A NAME="tex2html362" |
|
211 | 211 |
HREF="node57.html">DSpamPD</A> |
212 |
-<LI><A NAME="tex2html364" |
|
212 |
+<LI><A NAME="tex2html363" |
|
213 | 213 |
HREF="node58.html">exiscan</A> |
214 |
-<LI><A NAME="tex2html365" |
|
214 |
+<LI><A NAME="tex2html364" |
|
215 | 215 |
HREF="node59.html">Gadoyanvirus</A> |
216 |
-<LI><A NAME="tex2html366" |
|
216 |
+<LI><A NAME="tex2html365" |
|
217 | 217 |
HREF="node60.html">hMailServer</A> |
218 |
-<LI><A NAME="tex2html367" |
|
218 |
+<LI><A NAME="tex2html366" |
|
219 | 219 |
HREF="node61.html">IVS Milter</A> |
220 |
-<LI><A NAME="tex2html368" |
|
220 |
+<LI><A NAME="tex2html367" |
|
221 | 221 |
HREF="node62.html">j-chkmail</A> |
222 |
-<LI><A NAME="tex2html369" |
|
222 |
+<LI><A NAME="tex2html368" |
|
223 | 223 |
HREF="node63.html">Mail Avenger</A> |
224 |
-<LI><A NAME="tex2html370" |
|
224 |
+<LI><A NAME="tex2html369" |
|
225 | 225 |
HREF="node64.html">Mailnees</A> |
226 |
-<LI><A NAME="tex2html371" |
|
226 |
+<LI><A NAME="tex2html370" |
|
227 | 227 |
HREF="node65.html">MailScanner</A> |
228 |
-<LI><A NAME="tex2html372" |
|
228 |
+<LI><A NAME="tex2html371" |
|
229 | 229 |
HREF="node66.html">Maverix</A> |
230 |
-<LI><A NAME="tex2html373" |
|
230 |
+<LI><A NAME="tex2html372" |
|
231 | 231 |
HREF="node67.html">MIMEDefang</A> |
232 |
-<LI><A NAME="tex2html374" |
|
232 |
+<LI><A NAME="tex2html373" |
|
233 | 233 |
HREF="node68.html">mxGuard for IMail</A> |
234 |
-<LI><A NAME="tex2html375" |
|
234 |
+<LI><A NAME="tex2html374" |
|
235 | 235 |
HREF="node69.html">OdeiaVir</A> |
236 |
-<LI><A NAME="tex2html376" |
|
236 |
+<LI><A NAME="tex2html375" |
|
237 | 237 |
HREF="node70.html">OpenProtect</A> |
238 |
-<LI><A NAME="tex2html377" |
|
238 |
+<LI><A NAME="tex2html376" |
|
239 | 239 |
HREF="node71.html">Protea AntiVirus Tools</A> |
240 |
-<LI><A NAME="tex2html378" |
|
240 |
+<LI><A NAME="tex2html377" |
|
241 | 241 |
HREF="node72.html">PTSMail Utilities</A> |
242 |
-<LI><A NAME="tex2html379" |
|
242 |
+<LI><A NAME="tex2html378" |
|
243 | 243 |
HREF="node73.html">pymavis</A> |
244 |
-<LI><A NAME="tex2html380" |
|
244 |
+<LI><A NAME="tex2html379" |
|
245 | 245 |
HREF="node74.html">Qmail-Scanner</A> |
246 |
-<LI><A NAME="tex2html381" |
|
246 |
+<LI><A NAME="tex2html380" |
|
247 | 247 |
HREF="node75.html">qpsmtp</A> |
248 |
-<LI><A NAME="tex2html382" |
|
248 |
+<LI><A NAME="tex2html381" |
|
249 | 249 |
HREF="node76.html">qscanq</A> |
250 |
-<LI><A NAME="tex2html383" |
|
250 |
+<LI><A NAME="tex2html382" |
|
251 | 251 |
HREF="node77.html">qSheff</A> |
252 |
-<LI><A NAME="tex2html384" |
|
252 |
+<LI><A NAME="tex2html383" |
|
253 | 253 |
HREF="node78.html">RevolSys SMTP kit for Postfix</A> |
254 |
-<LI><A NAME="tex2html385" |
|
254 |
+<LI><A NAME="tex2html384" |
|
255 | 255 |
HREF="node79.html">Sagator</A> |
256 |
-<LI><A NAME="tex2html386" |
|
256 |
+<LI><A NAME="tex2html385" |
|
257 | 257 |
HREF="node80.html">Scrubber</A> |
258 |
-<LI><A NAME="tex2html387" |
|
258 |
+<LI><A NAME="tex2html386" |
|
259 | 259 |
HREF="node81.html">Secure Mail Intelligence!</A> |
260 |
-<LI><A NAME="tex2html388" |
|
260 |
+<LI><A NAME="tex2html387" |
|
261 | 261 |
HREF="node82.html">simscan</A> |
262 |
-<LI><A NAME="tex2html389" |
|
262 |
+<LI><A NAME="tex2html388" |
|
263 | 263 |
HREF="node83.html">SmarterMail Filter</A> |
264 |
-<LI><A NAME="tex2html390" |
|
264 |
+<LI><A NAME="tex2html389" |
|
265 | 265 |
HREF="node84.html">smf-clamd</A> |
266 |
-<LI><A NAME="tex2html391" |
|
266 |
+<LI><A NAME="tex2html390" |
|
267 | 267 |
HREF="node85.html">smtpfilter</A> |
268 |
-<LI><A NAME="tex2html392" |
|
268 |
+<LI><A NAME="tex2html391" |
|
269 | 269 |
HREF="node86.html">smtp-vilter</A> |
270 |
-<LI><A NAME="tex2html393" |
|
270 |
+<LI><A NAME="tex2html392" |
|
271 | 271 |
HREF="node87.html">Zabit</A> |
272 | 272 |
</UL> |
273 |
-<LI><A NAME="tex2html394" |
|
273 |
+<LI><A NAME="tex2html393" |
|
274 | 274 |
HREF="node88.html"><I>MTA + POP3 Proxy + ClamAV</I></A> |
275 | 275 |
<UL> |
276 |
-<LI><A NAME="tex2html395" |
|
276 |
+<LI><A NAME="tex2html394" |
|
277 | 277 |
HREF="node89.html">ClamMail</A> |
278 |
-<LI><A NAME="tex2html396" |
|
278 |
+<LI><A NAME="tex2html395" |
|
279 | 279 |
HREF="node90.html">POP3 Virus Scanner Daemon</A> |
280 |
-<LI><A NAME="tex2html397" |
|
280 |
+<LI><A NAME="tex2html396" |
|
281 | 281 |
HREF="node91.html">pop3.proxy</A> |
282 | 282 |
</UL> |
283 |
-<LI><A NAME="tex2html398" |
|
283 |
+<LI><A NAME="tex2html397" |
|
284 | 284 |
HREF="node92.html"><I>Web/FTP Proxy + ClamAV</I></A> |
285 | 285 |
<UL> |
286 |
-<LI><A NAME="tex2html399" |
|
286 |
+<LI><A NAME="tex2html398" |
|
287 | 287 |
HREF="node93.html">DansGuardian Anti-Virus Patch</A> |
288 |
-<LI><A NAME="tex2html400" |
|
288 |
+<LI><A NAME="tex2html399" |
|
289 | 289 |
HREF="node94.html">Frox</A> |
290 |
-<LI><A NAME="tex2html401" |
|
290 |
+<LI><A NAME="tex2html400" |
|
291 | 291 |
HREF="node95.html">HTTP Anti Virus Proxy</A> |
292 |
-<LI><A NAME="tex2html402" |
|
292 |
+<LI><A NAME="tex2html401" |
|
293 | 293 |
HREF="node96.html">Frox</A> |
294 |
-<LI><A NAME="tex2html403" |
|
294 |
+<LI><A NAME="tex2html402" |
|
295 | 295 |
HREF="node97.html">mod_clamav</A> |
296 |
-<LI><A NAME="tex2html404" |
|
296 |
+<LI><A NAME="tex2html403" |
|
297 | 297 |
HREF="node98.html">SafeSquid</A> |
298 |
-<LI><A NAME="tex2html405" |
|
298 |
+<LI><A NAME="tex2html404" |
|
299 | 299 |
HREF="node99.html">SquidClamAV Redirector</A> |
300 |
-<LI><A NAME="tex2html406" |
|
300 |
+<LI><A NAME="tex2html405" |
|
301 | 301 |
HREF="node100.html">Squidclam</A> |
302 |
-<LI><A NAME="tex2html407" |
|
302 |
+<LI><A NAME="tex2html406" |
|
303 | 303 |
HREF="node101.html">Viralator</A> |
304 | 304 |
</UL> |
305 |
-<LI><A NAME="tex2html408" |
|
305 |
+<LI><A NAME="tex2html407" |
|
306 | 306 |
HREF="node102.html"><I>Filesystem + ClamAV</I></A> |
307 | 307 |
<UL> |
308 |
-<LI><A NAME="tex2html409" |
|
308 |
+<LI><A NAME="tex2html408" |
|
309 | 309 |
HREF="node103.html">Dazuko</A> |
310 |
-<LI><A NAME="tex2html410" |
|
310 |
+<LI><A NAME="tex2html409" |
|
311 | 311 |
HREF="node104.html">Famuko</A> |
312 |
-<LI><A NAME="tex2html411" |
|
312 |
+<LI><A NAME="tex2html410" |
|
313 | 313 |
HREF="node105.html">OpenAntiVirus samba-vscan</A> |
314 | 314 |
</UL> |
315 |
-<LI><A NAME="tex2html412" |
|
315 |
+<LI><A NAME="tex2html411" |
|
316 | 316 |
HREF="node106.html"><I>Mail User Agent + ClamAV</I></A> |
317 | 317 |
<UL> |
318 |
-<LI><A NAME="tex2html413" |
|
318 |
+<LI><A NAME="tex2html412" |
|
319 | 319 |
HREF="node107.html">clamailfilter</A> |
320 |
-<LI><A NAME="tex2html414" |
|
320 |
+<LI><A NAME="tex2html413" |
|
321 | 321 |
HREF="node108.html">ClamAssassin</A> |
322 |
-<LI><A NAME="tex2html415" |
|
322 |
+<LI><A NAME="tex2html414" |
|
323 | 323 |
HREF="node109.html">clamscan-procfilter</A> |
324 |
-<LI><A NAME="tex2html416" |
|
324 |
+<LI><A NAME="tex2html415" |
|
325 | 325 |
HREF="node110.html">KMail</A> |
326 |
-<LI><A NAME="tex2html417" |
|
326 |
+<LI><A NAME="tex2html416" |
|
327 | 327 |
HREF="node111.html">MyClamMailFilter</A> |
328 |
-<LI><A NAME="tex2html418" |
|
328 |
+<LI><A NAME="tex2html417" |
|
329 | 329 |
HREF="node112.html">OpenWebMail</A> |
330 |
-<LI><A NAME="tex2html419" |
|
330 |
+<LI><A NAME="tex2html418" |
|
331 | 331 |
HREF="node113.html">QClam</A> |
332 |
-<LI><A NAME="tex2html420" |
|
332 |
+<LI><A NAME="tex2html419" |
|
333 | 333 |
HREF="node114.html">QMVC - Qmail Mail and Virus Control</A> |
334 |
-<LI><A NAME="tex2html421" |
|
334 |
+<LI><A NAME="tex2html420" |
|
335 | 335 |
HREF="node115.html">Sylpheed Claws</A> |
336 |
-<LI><A NAME="tex2html422" |
|
336 |
+<LI><A NAME="tex2html421" |
|
337 | 337 |
HREF="node116.html">SoftlabsAV</A> |
338 | 338 |
</UL> |
339 |
-<LI><A NAME="tex2html423" |
|
339 |
+<LI><A NAME="tex2html422" |
|
340 | 340 |
HREF="node117.html"><I>Graphical User Interface + ClamAV</I></A> |
341 | 341 |
<UL> |
342 |
-<LI><A NAME="tex2html424" |
|
342 |
+<LI><A NAME="tex2html423" |
|
343 | 343 |
HREF="node118.html">AVScan</A> |
344 |
-<LI><A NAME="tex2html425" |
|
344 |
+<LI><A NAME="tex2html424" |
|
345 | 345 |
HREF="node119.html">BeClam</A> |
346 |
-<LI><A NAME="tex2html426" |
|
346 |
+<LI><A NAME="tex2html425" |
|
347 | 347 |
HREF="node120.html">Clamaktion</A> |
348 |
-<LI><A NAME="tex2html427" |
|
348 |
+<LI><A NAME="tex2html426" |
|
349 | 349 |
HREF="node121.html">ClamShell</A> |
350 |
-<LI><A NAME="tex2html428" |
|
350 |
+<LI><A NAME="tex2html427" |
|
351 | 351 |
HREF="node122.html">ClamTk</A> |
352 |
-<LI><A NAME="tex2html429" |
|
352 |
+<LI><A NAME="tex2html428" |
|
353 | 353 |
HREF="node123.html">clamXav</A> |
354 |
-<LI><A NAME="tex2html430" |
|
354 |
+<LI><A NAME="tex2html429" |
|
355 | 355 |
HREF="node124.html">ClamWin</A> |
356 |
-<LI><A NAME="tex2html431" |
|
356 |
+<LI><A NAME="tex2html430" |
|
357 | 357 |
HREF="node125.html">FETCAV</A> |
358 |
-<LI><A NAME="tex2html432" |
|
358 |
+<LI><A NAME="tex2html431" |
|
359 | 359 |
HREF="node126.html">KlamAV</A> |
360 |
-<LI><A NAME="tex2html433" |
|
360 |
+<LI><A NAME="tex2html432" |
|
361 | 361 |
HREF="node127.html">QtClamAVclient</A> |
362 |
-<LI><A NAME="tex2html434" |
|
362 |
+<LI><A NAME="tex2html433" |
|
363 | 363 |
HREF="node128.html">wbmclamav</A> |
364 | 364 |
</UL> |
365 |
-<LI><A NAME="tex2html435" |
|
365 |
+<LI><A NAME="tex2html434" |
|
366 | 366 |
HREF="node129.html"><I>Library + ClamAV</I></A> |
367 | 367 |
<UL> |
368 |
-<LI><A NAME="tex2html436" |
|
368 |
+<LI><A NAME="tex2html435" |
|
369 | 369 |
HREF="node130.html">ClamAVPlugin</A> |
370 |
-<LI><A NAME="tex2html437" |
|
370 |
+<LI><A NAME="tex2html436" |
|
371 | 371 |
HREF="node131.html">clamavr</A> |
372 |
-<LI><A NAME="tex2html438" |
|
372 |
+<LI><A NAME="tex2html437" |
|
373 | 373 |
HREF="node132.html">D bindings for ClamAV</A> |
374 |
-<LI><A NAME="tex2html439" |
|
374 |
+<LI><A NAME="tex2html438" |
|
375 | 375 |
HREF="node133.html">File::Scan::ClamAV</A> |
376 |
-<LI><A NAME="tex2html440" |
|
376 |
+<LI><A NAME="tex2html439" |
|
377 | 377 |
HREF="node134.html">Mail::ClamAV</A> |
378 |
-<LI><A NAME="tex2html441" |
|
378 |
+<LI><A NAME="tex2html440" |
|
379 | 379 |
HREF="node135.html">php-clamav</A> |
380 |
-<LI><A NAME="tex2html442" |
|
380 |
+<LI><A NAME="tex2html441" |
|
381 | 381 |
HREF="node136.html">pyclamav</A> |
382 |
-<LI><A NAME="tex2html443" |
|
382 |
+<LI><A NAME="tex2html442" |
|
383 | 383 |
HREF="node137.html">WRAVLib</A> |
384 | 384 |
</UL> |
385 |
-<LI><A NAME="tex2html444" |
|
385 |
+<LI><A NAME="tex2html443" |
|
386 | 386 |
HREF="node138.html"><I>Miscellaneous + ClamAV</I></A> |
387 | 387 |
<UL> |
388 |
-<LI><A NAME="tex2html445" |
|
388 |
+<LI><A NAME="tex2html444" |
|
389 | 389 |
HREF="node139.html">INSERT</A> |
390 |
-<LI><A NAME="tex2html446" |
|
390 |
+<LI><A NAME="tex2html445" |
|
391 | 391 |
HREF="node140.html">Local Area Security</A> |
392 |
-<LI><A NAME="tex2html447" |
|
392 |
+<LI><A NAME="tex2html446" |
|
393 | 393 |
HREF="node141.html">mailgraph</A> |
394 |
-<LI><A NAME="tex2html448" |
|
394 |
+<LI><A NAME="tex2html447" |
|
395 | 395 |
HREF="node142.html">mailman-clamav</A> |
396 |
-<LI><A NAME="tex2html449" |
|
396 |
+<LI><A NAME="tex2html448" |
|
397 | 397 |
HREF="node143.html">Moodle</A> |
398 |
-<LI><A NAME="tex2html450" |
|
398 |
+<LI><A NAME="tex2html449" |
|
399 | 399 |
HREF="node144.html">nclamd</A> |
400 |
-<LI><A NAME="tex2html451" |
|
400 |
+<LI><A NAME="tex2html450" |
|
401 | 401 |
HREF="node145.html">qmailmrtg7</A> |
402 |
-<LI><A NAME="tex2html452" |
|
402 |
+<LI><A NAME="tex2html451" |
|
403 | 403 |
HREF="node146.html">redWall Firewall</A> |
404 |
-<LI><A NAME="tex2html453" |
|
404 |
+<LI><A NAME="tex2html452" |
|
405 | 405 |
HREF="node147.html">Scan Log Analyzer</A> |
406 |
-<LI><A NAME="tex2html454" |
|
406 |
+<LI><A NAME="tex2html453" |
|
407 | 407 |
HREF="node148.html">snort-inline</A> |
408 | 408 |
</UL> |
409 | 409 |
</UL> |
410 |
-<LI><A NAME="tex2html455" |
|
410 |
+<LI><A NAME="tex2html454" |
|
411 | 411 |
HREF="node149.html">Credits</A> |
412 | 412 |
<UL> |
413 |
-<LI><A NAME="tex2html456" |
|
413 |
+<LI><A NAME="tex2html455" |
|
414 | 414 |
HREF="node150.html">Database mirrors</A> |
415 |
-<LI><A NAME="tex2html457" |
|
415 |
+<LI><A NAME="tex2html456" |
|
416 | 416 |
HREF="node151.html">Contributors</A> |
417 |
-<LI><A NAME="tex2html458" |
|
417 |
+<LI><A NAME="tex2html457" |
|
418 | 418 |
HREF="node152.html">Donors</A> |
419 |
-<LI><A NAME="tex2html459" |
|
419 |
+<LI><A NAME="tex2html458" |
|
420 | 420 |
HREF="node153.html">Graphics</A> |
421 |
-<LI><A NAME="tex2html460" |
|
421 |
+<LI><A NAME="tex2html459" |
|
422 | 422 |
HREF="node154.html">OpenAntiVirus</A> |
423 | 423 |
</UL> |
424 |
-<LI><A NAME="tex2html461" |
|
424 |
+<LI><A NAME="tex2html460" |
|
425 | 425 |
HREF="node155.html">Authors</A> |
426 |
-<LI><A NAME="tex2html462" |
|
426 |
+<LI><A NAME="tex2html461" |
|
427 | 427 |
HREF="node156.html">About this document ...</A> |
428 | 428 |
</UL> |
429 | 429 |
<!--End of Table of Child-Links--> |
430 | 430 |
<BR><HR> |
431 | 431 |
<ADDRESS> |
432 | 432 |
Tomasz Kojm |
433 |
-2005-04-29 |
|
433 |
+2005-05-11 |
|
434 | 434 |
</ADDRESS> |
435 | 435 |
</BODY> |
436 | 436 |
</HTML> |
... | ... |
@@ -24,18 +24,18 @@ original version by: Nikos Drakos, CBLU, University of Leeds |
24 | 24 |
|
25 | 25 |
<BODY > |
26 | 26 |
<!--Navigation Panel--> |
27 |
-<A NAME="tex2html305" |
|
27 |
+<A NAME="tex2html304" |
|
28 | 28 |
HREF="node1.html"> |
29 | 29 |
<IMG WIDTH="37" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="next" SRC="next.png"></A> |
30 | 30 |
<IMG WIDTH="26" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="up" SRC="up_g.png"> |
31 | 31 |
<IMG WIDTH="63" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="previous" SRC="prev_g.png"> |
32 |
-<A NAME="tex2html303" |
|
32 |
+<A NAME="tex2html302" |
|
33 | 33 |
HREF="node1.html"> |
34 | 34 |
<IMG WIDTH="65" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="contents" SRC="contents.png"></A> |
35 | 35 |
<BR> |
36 |
-<B> Next:</B> <A NAME="tex2html306" |
|
36 |
+<B> Next:</B> <A NAME="tex2html305" |
|
37 | 37 |
HREF="node1.html">Contents</A> |
38 |
-   <B> <A NAME="tex2html304" |
|
38 |
+   <B> <A NAME="tex2html303" |
|
39 | 39 |
HREF="node1.html">Contents</A></B> |
40 | 40 |
<BR> |
41 | 41 |
<BR> |
... | ... |
@@ -59,7 +59,7 @@ original version by: Nikos Drakos, CBLU, University of Leeds |
59 | 59 |
<BR> |
60 | 60 |
<BR> |
61 | 61 |
<DIV ALIGN="RIGHT"> |
62 |
-<BR> <FONT SIZE="+3">Clam AntiVirus 0.84 |
|
62 |
+<BR> <FONT SIZE="+3">Clam AntiVirus 0.85 |
|
63 | 63 |
<BR> <FONT SIZE="+3"><I>User Manual</I> |
64 | 64 |
<BR> |
65 | 65 |
</FONT></FONT></DIV> |
... | ... |
@@ -71,366 +71,366 @@ original version by: Nikos Drakos, CBLU, University of Leeds |
71 | 71 |
<A NAME="CHILD_LINKS"></A> |
72 | 72 |
|
73 | 73 |
<UL> |
74 |
-<LI><A NAME="tex2html307" |
|
74 |
+<LI><A NAME="tex2html306" |
|
75 | 75 |
HREF="node1.html">Contents</A> |
76 |
-<LI><A NAME="tex2html308" |
|
76 |
+<LI><A NAME="tex2html307" |
|
77 | 77 |
HREF="node2.html">Introduction</A> |
78 | 78 |
<UL> |
79 |
-<LI><A NAME="tex2html309" |
|
79 |
+<LI><A NAME="tex2html308" |
|
80 | 80 |
HREF="node3.html">Features</A> |
81 |
-<LI><A NAME="tex2html310" |
|
81 |
+<LI><A NAME="tex2html309" |
|
82 | 82 |
HREF="node4.html">Mailing lists</A> |
83 |
-<LI><A NAME="tex2html311" |
|
83 |
+<LI><A NAME="tex2html310" |
|
84 | 84 |
HREF="node5.html">Virus submitting</A> |
85 | 85 |
</UL> |
86 |
-<LI><A NAME="tex2html312" |
|
86 |
+<LI><A NAME="tex2html311" |
|
87 | 87 |
HREF="node6.html">Base package</A> |
88 | 88 |
<UL> |
89 |
-<LI><A NAME="tex2html313" |
|
89 |
+<LI><A NAME="tex2html312" |
|
90 | 90 |
HREF="node7.html">Supported platforms</A> |
91 |
-<LI><A NAME="tex2html314" |
|
91 |
+<LI><A NAME="tex2html313" |
|
92 | 92 |
HREF="node8.html">Binary packages</A> |
93 |
-<LI><A NAME="tex2html315" |
|
93 |
+<LI><A NAME="tex2html314" |
|
94 | 94 |
HREF="node9.html">Daily built snapshots</A> |
95 | 95 |
</UL> |
96 |
-<LI><A NAME="tex2html316" |
|
96 |
+<LI><A NAME="tex2html315" |
|
97 | 97 |
HREF="node10.html">Installation</A> |
98 | 98 |
<UL> |
99 |
-<LI><A NAME="tex2html317" |
|
99 |
+<LI><A NAME="tex2html316" |
|
100 | 100 |
HREF="node11.html">Requirements</A> |
101 |
-<LI><A NAME="tex2html318" |
|
101 |
+<LI><A NAME="tex2html317" |
|
102 | 102 |
HREF="node12.html">Installing on a shell account</A> |
103 |
-<LI><A NAME="tex2html319" |
|
103 |
+<LI><A NAME="tex2html318" |
|
104 | 104 |
HREF="node13.html">Adding new system user and group</A> |
105 |
-<LI><A NAME="tex2html320" |
|
105 |
+<LI><A NAME="tex2html319" |
|
106 | 106 |
HREF="node14.html">Compilation of base package</A> |
107 |
-<LI><A NAME="tex2html321" |
|
107 |
+<LI><A NAME="tex2html320" |
|
108 | 108 |
HREF="node15.html">Compilation with clamav-milter enabled</A> |
109 | 109 |
</UL> |
110 |
-<LI><A NAME="tex2html322" |
|
110 |
+<LI><A NAME="tex2html321" |
|
111 | 111 |
HREF="node16.html">Configuration</A> |
112 | 112 |
<UL> |
113 |
-<LI><A NAME="tex2html323" |
|
113 |
+<LI><A NAME="tex2html322" |
|
114 | 114 |
HREF="node17.html">clamd</A> |
115 | 115 |
<UL> |
116 |
-<LI><A NAME="tex2html324" |
|
116 |
+<LI><A NAME="tex2html323" |
|
117 | 117 |
HREF="node18.html">On-access scanning</A> |
118 | 118 |
</UL> |
119 |
-<LI><A NAME="tex2html325" |
|
119 |
+<LI><A NAME="tex2html324" |
|
120 | 120 |
HREF="node19.html">clamav-milter</A> |
121 |
-<LI><A NAME="tex2html326" |
|
121 |
+<LI><A NAME="tex2html325" |
|
122 | 122 |
HREF="node20.html">Testing</A> |
123 |
-<LI><A NAME="tex2html327" |
|
123 |
+<LI><A NAME="tex2html326" |
|
124 | 124 |
HREF="node21.html">Setting up auto-updating</A> |
125 |
-<LI><A NAME="tex2html328" |
|
125 |
+<LI><A NAME="tex2html327" |
|
126 | 126 |
HREF="node22.html">Closest mirrors</A> |
127 | 127 |
</UL> |
128 |
-<LI><A NAME="tex2html329" |
|
128 |
+<LI><A NAME="tex2html328" |
|
129 | 129 |
HREF="node23.html">Usage</A> |
130 | 130 |
<UL> |
131 |
-<LI><A NAME="tex2html330" |
|
131 |
+<LI><A NAME="tex2html329" |
|
132 | 132 |
HREF="node24.html">Clam daemon</A> |
133 |
-<LI><A NAME="tex2html331" |
|
133 |
+<LI><A NAME="tex2html330" |
|
134 | 134 |
HREF="node25.html">Clam<B>d</B>scan</A> |
135 |
-<LI><A NAME="tex2html332" |
|
135 |
+<LI><A NAME="tex2html331" |
|
136 | 136 |
HREF="node26.html">Clamuko</A> |
137 |
-<LI><A NAME="tex2html333" |
|
137 |
+<LI><A NAME="tex2html332" |
|
138 | 138 |
HREF="node27.html">Output format</A> |
139 | 139 |
<UL> |
140 |
-<LI><A NAME="tex2html334" |
|
140 |
+<LI><A NAME="tex2html333" |
|
141 | 141 |
HREF="node28.html">clamscan</A> |
142 |
-<LI><A NAME="tex2html335" |
|
142 |
+<LI><A NAME="tex2html334" |
|
143 | 143 |
HREF="node29.html">clamd</A> |
144 | 144 |
</UL> |
145 | 145 |
</UL> |
146 |
-<LI><A NAME="tex2html336" |
|
146 |
+<LI><A NAME="tex2html335" |
|
147 | 147 |
HREF="node30.html">LibClamAV</A> |
148 | 148 |
<UL> |
149 |
-<LI><A NAME="tex2html337" |
|
149 |
+<LI><A NAME="tex2html336" |
|
150 | 150 |
HREF="node31.html">Licence</A> |
151 |
-<LI><A NAME="tex2html338" |
|
151 |
+<LI><A NAME="tex2html337" |
|
152 | 152 |
HREF="node32.html">Features</A> |
153 | 153 |
<UL> |
154 |
-<LI><A NAME="tex2html339" |
|
154 |
+<LI><A NAME="tex2html338" |
|
155 | 155 |
HREF="node33.html">Archives and compressed files</A> |
156 |
-<LI><A NAME="tex2html340" |
|
156 |
+<LI><A NAME="tex2html339" |
|
157 | 157 |
HREF="node34.html">Mail files</A> |
158 | 158 |
</UL> |
159 |
-<LI><A NAME="tex2html341" |
|
159 |
+<LI><A NAME="tex2html340" |
|
160 | 160 |
HREF="node35.html">API</A> |
161 | 161 |
<UL> |
162 |
-<LI><A NAME="tex2html342" |
|
162 |
+<LI><A NAME="tex2html341" |
|
163 | 163 |
HREF="node36.html">Header file</A> |
164 |
-<LI><A NAME="tex2html343" |
|
164 |
+<LI><A NAME="tex2html342" |
|
165 | 165 |
HREF="node37.html">Database loading</A> |
166 |
-<LI><A NAME="tex2html344" |
|
166 |
+<LI><A NAME="tex2html343" |
|
167 | 167 |
HREF="node38.html">Error handling</A> |
168 |
-<LI><A NAME="tex2html345" |
|
168 |
+<LI><A NAME="tex2html344" |
|
169 | 169 |
HREF="node39.html">Database structure</A> |
170 | 170 |
</UL> |
171 |
-<LI><A NAME="tex2html346" |
|
171 |
+<LI><A NAME="tex2html345" |
|
172 | 172 |
HREF="node40.html">Database reloading</A> |
173 | 173 |
<UL> |
174 |
-<LI><A NAME="tex2html347" |
|
174 |
+<LI><A NAME="tex2html346" |
|
175 | 175 |
HREF="node41.html">Data scan functions</A> |
176 |
-<LI><A NAME="tex2html348" |
|
176 |
+<LI><A NAME="tex2html347" |
|
177 | 177 |
HREF="node42.html">Memory</A> |
178 |
-<LI><A NAME="tex2html349" |
|
178 |
+<LI><A NAME="tex2html348" |
|
179 | 179 |
HREF="node43.html">clamav-config</A> |
180 |
-<LI><A NAME="tex2html350" |
|
180 |
+<LI><A NAME="tex2html349" |
|
181 | 181 |
HREF="node44.html">Example</A> |
182 | 182 |
</UL> |
183 |
-<LI><A NAME="tex2html351" |
|
183 |
+<LI><A NAME="tex2html350" |
|
184 | 184 |
HREF="node45.html">CVD format</A> |
185 | 185 |
</UL> |
186 |
-<LI><A NAME="tex2html352" |
|
186 |
+<LI><A NAME="tex2html351" |
|
187 | 187 |
HREF="node46.html">Frequently Asked Questions</A> |
188 |
-<LI><A NAME="tex2html353" |
|
188 |
+<LI><A NAME="tex2html352" |
|
189 | 189 |
HREF="node47.html">Third party software</A> |
190 | 190 |
<UL> |
191 |
-<LI><A NAME="tex2html354" |
|
191 |
+<LI><A NAME="tex2html353" |
|
192 | 192 |
HREF="node48.html"><I>MTA + ClamAV</I></A> |
193 | 193 |
<UL> |
194 |
-<LI><A NAME="tex2html355" |
|
194 |
+<LI><A NAME="tex2html354" |
|
195 | 195 |
HREF="node49.html">amavisd-new</A> |
196 |
-<LI><A NAME="tex2html356" |
|
196 |
+<LI><A NAME="tex2html355" |
|
197 | 197 |
HREF="node50.html">AMaViS - "Next Generation"</A> |
198 |
-<LI><A NAME="tex2html357" |
|
198 |
+<LI><A NAME="tex2html356" |
|
199 | 199 |
HREF="node51.html">ClamdMail</A> |
200 |
-<LI><A NAME="tex2html358" |
|
200 |
+<LI><A NAME="tex2html357" |
|
201 | 201 |
HREF="node52.html">cgpav</A> |
202 |
-<LI><A NAME="tex2html359" |
|
202 |
+<LI><A NAME="tex2html358" |
|
203 | 203 |
HREF="node53.html">ClamCour</A> |
204 |
-<LI><A NAME="tex2html360" |
|