From 02b4b0c7f13d2e95bfbe1e4ab3ee8526ca94f81d Mon Sep 17 00:00:00 2001 From: Tomasz Kojm Date: Fri, 1 Oct 2004 00:31:18 +0000 Subject: [PATCH] update git-svn: trunk@955 --- clamav-devel/ChangeLog | 8 ++++++++ clamav-devel/clamd/defaults.h | 1 + clamav-devel/clamd/server-th.c | 9 ++++++++- clamav-devel/clamscan/manager.c | 1 + clamav-devel/clamscan/others.c | 18 ++++++++++++++++++ clamav-devel/docs/man/clamdscan.1 | 4 ++-- clamav-devel/docs/man/clamscan.1 | 2 +- clamav-devel/docs/man/sigtool.1 | 3 +++ clamav-devel/etc/clamd.conf | 4 ++++ clamav-devel/libclamav/Makefile.am | 2 +- clamav-devel/libclamav/Makefile.in | 2 +- clamav-devel/libclamav/matcher.c | 2 +- clamav-devel/shared/cfgparser.c | 1 + 13 files changed, 50 insertions(+), 7 deletions(-) diff --git a/clamav-devel/ChangeLog b/clamav-devel/ChangeLog index 9eb3a1c11..943a5cfd9 100644 --- a/clamav-devel/ChangeLog +++ b/clamav-devel/ChangeLog @@ -1,3 +1,11 @@ +Fri Oct 1 02:28:08 CEST 2004 (tk) +---------------------------------- + * clamd: add new directive IdleTimeout (patch by Andrey J. Melnikoff (TEMHOTA) + ) + * clamscan/others.c: preserve Mac OS X resource forks in filecopy() + (thanks to Remi Mommsen ) + * cosmetic fixes (thanks to Damian Menscher ) + Thu Sep 30 22:48:53 BST 2004 (njh) ---------------------------------- * libclamav/mbox.c: Remove unneeded strdup() calls diff --git a/clamav-devel/clamd/defaults.h b/clamav-devel/clamd/defaults.h index 0e6a9eefa..370b01c03 100644 --- a/clamav-devel/clamd/defaults.h +++ b/clamav-devel/clamd/defaults.h @@ -30,5 +30,6 @@ #define CL_DEFAULT_MAXPORTSCAN 1000 #define CL_DEFAULT_MAXDIRREC 15 #define CL_DEFAULT_STREAMMAXLEN 10 * 1048576 +#define CL_DEFAULT_IDLETIMEOUT 30 #endif diff --git a/clamav-devel/clamd/server-th.c b/clamav-devel/clamd/server-th.c index bf8df3066..d48d88b70 100644 --- a/clamav-devel/clamd/server-th.c +++ b/clamav-devel/clamd/server-th.c @@ -211,6 +211,7 @@ int acceptloop_th(int socketd, struct cl_node *root, const struct cfgstruct *cop unsigned int selfchk; time_t start_time, current_time; pid_t mainpid; + int idletimeout; #if defined(C_BIGSTACK) || defined(C_BSD) size_t stacksize; @@ -452,7 +453,13 @@ int acceptloop_th(int socketd, struct cl_node *root, const struct cfgstruct *cop pthread_mutex_init(&exit_mutex, NULL); pthread_mutex_init(&reload_mutex, NULL); - if((thr_pool=thrmgr_new(max_threads, 30, scanner_thread)) == NULL) { + + if((cpt = cfgopt(copt, "IdleTimeout"))) + idletimeout = cpt->numarg; + else + idletimeout = CL_DEFAULT_IDLETIMEOUT; + + if((thr_pool=thrmgr_new(max_threads, idletimeout, scanner_thread)) == NULL) { logg("!thrmgr_new failed\n"); exit(-1); } diff --git a/clamav-devel/clamscan/manager.c b/clamav-devel/clamscan/manager.c index a63534c51..323c7454e 100644 --- a/clamav-devel/clamscan/manager.c +++ b/clamav-devel/clamscan/manager.c @@ -821,6 +821,7 @@ int checkstdin(const struct cl_node *root, const struct cl_limits *limits, int o fclose(fs); + mprintf("*Checking %s\n", file); claminfo.files++; if((ret = cl_scanfile(file, &virname, &claminfo.blocks, root, limits, options)) == CL_VIRUS) { diff --git a/clamav-devel/clamscan/others.c b/clamav-devel/clamscan/others.c index 840075d49..b31978fb5 100644 --- a/clamav-devel/clamscan/others.c +++ b/clamav-devel/clamscan/others.c @@ -115,6 +115,21 @@ int checkaccess(const char *path, const char *username, int mode) int filecopy(const char *src, const char *dest) { + +#ifdef C_DARWIN + /* On Mac OS X use ditto and copy resource fork, too. */ + char *ditto = (char *) mcalloc(strlen(src) + strlen(dest) + 30, sizeof(char)); + sprintf(ditto, "/usr/bin/ditto --rsrc %s %s", src, dest); + + if(system(ditto)) { + free(ditto); + return -1; + } + + free(ditto); + return 0; + +#else char buffer[FILEBUFF]; int s, d, bytes; @@ -133,6 +148,9 @@ int filecopy(const char *src, const char *dest) /* njh@bandsman.co.uk: check result of close for NFS file */ return close(d); + +#endif //__APPLE_CC__ + } int isnumb(const char *str) diff --git a/clamav-devel/docs/man/clamdscan.1 b/clamav-devel/docs/man/clamdscan.1 index e7a715da6..fb3ab0a9b 100644 --- a/clamav-devel/docs/man/clamdscan.1 +++ b/clamav-devel/docs/man/clamdscan.1 @@ -37,8 +37,8 @@ Save the scan report to FILE. \fB\-\-log\-verbose\fR Save additional messages (mostly useless) to the report file. .TP -\fB\-\-disable\-summary\fR -Disable summary at the end of scanning. +\fB\-\-no\-summary\fR +Do not display summary at the end of scanning. .SH "EXAMPLES" .LP .TP diff --git a/clamav-devel/docs/man/clamscan.1 b/clamav-devel/docs/man/clamscan.1 index e6e24de89..f9c6fd78a 100644 --- a/clamav-devel/docs/man/clamscan.1 +++ b/clamav-devel/docs/man/clamscan.1 @@ -50,7 +50,7 @@ Scan directories recursively. All the subdirectories in the given directory will Sound bell on virus detection. .TP \fB\-\-no\-summary\fR -Disable summary printing at the end of scanning. +Do not display summary at the end of scanning. .TP \fB\-\-exclude=PATT\fR Don't scan file names containing PATT. It may be used multiple times. diff --git a/clamav-devel/docs/man/sigtool.1 b/clamav-devel/docs/man/sigtool.1 index feac6ead2..fa8b35ece 100644 --- a/clamav-devel/docs/man/sigtool.1 +++ b/clamav-devel/docs/man/sigtool.1 @@ -49,6 +49,9 @@ Unpack a selected CVD file to a current directory. .TP \fB\-\-unpack\-current\fR Unpack a local CVD file to a current directory. +.TP +\fB\-l, \-\-list\-sigs\fR +List signature names. .SH "EXAMPLES" .LP .TP diff --git a/clamav-devel/etc/clamd.conf b/clamav-devel/etc/clamd.conf index cf3e4b0f5..4a2b3b576 100644 --- a/clamav-devel/etc/clamd.conf +++ b/clamav-devel/etc/clamd.conf @@ -103,6 +103,10 @@ FixStaleSocket # Default: 120 #ReadTimeout 300 +# Waiting for a new job will timeout after this time (seconds). +# Default: 30 +#IdleTimeout 60 + # Maximal depth directories are scanned at. # Default: 15 #MaxDirectoryRecursion 20 diff --git a/clamav-devel/libclamav/Makefile.am b/clamav-devel/libclamav/Makefile.am index cc4dba62e..a670712d7 100644 --- a/clamav-devel/libclamav/Makefile.am +++ b/clamav-devel/libclamav/Makefile.am @@ -20,7 +20,7 @@ INCLUDES = -I$(top_srcdir) -I@srcdir@/zziplib -I@srcdir@/mspack libclamav_la_LIBADD = @LIBCLAMAV_LIBS@ -libclamav_la_LDFLAGS = @TH_SAFE@ -version-info @LIBCLAMAV_VERSION@ +libclamav_la_LDFLAGS = @TH_SAFE@ -version-info @LIBCLAMAV_VERSION@ -no-undefined include_HEADERS = clamav.h diff --git a/clamav-devel/libclamav/Makefile.in b/clamav-devel/libclamav/Makefile.in index 44ae384fa..755e3aa0c 100644 --- a/clamav-devel/libclamav/Makefile.in +++ b/clamav-devel/libclamav/Makefile.in @@ -234,7 +234,7 @@ target_os = @target_os@ target_vendor = @target_vendor@ INCLUDES = -I$(top_srcdir) -I@srcdir@/zziplib -I@srcdir@/mspack libclamav_la_LIBADD = @LIBCLAMAV_LIBS@ -libclamav_la_LDFLAGS = @TH_SAFE@ -version-info @LIBCLAMAV_VERSION@ +libclamav_la_LDFLAGS = @TH_SAFE@ -version-info @LIBCLAMAV_VERSION@ -no-undefined include_HEADERS = clamav.h libclamav_la_SOURCES = \ clamav.h \ diff --git a/clamav-devel/libclamav/matcher.c b/clamav-devel/libclamav/matcher.c index a3bf41f5a..e9c0f5b8e 100644 --- a/clamav-devel/libclamav/matcher.c +++ b/clamav-devel/libclamav/matcher.c @@ -214,7 +214,7 @@ int cli_scandesc(int desc, const char **virname, long int *scanned, const struct /* prepare the buffer */ buffsize = root->maxpatlen + SCANBUFF; if(!(buffer = (char *) cli_calloc(buffsize, sizeof(char)))) { - cli_dbgmsg("cli_scandesc(): unable to cli_malloc(%d)\n", buffsize); + cli_dbgmsg("cli_scandesc(): unable to cli_calloc(%d)\n", buffsize); return CL_EMEM; } diff --git a/clamav-devel/shared/cfgparser.c b/clamav-devel/shared/cfgparser.c index ee3e1e980..4bf377e3d 100644 --- a/clamav-devel/shared/cfgparser.c +++ b/clamav-devel/shared/cfgparser.c @@ -86,6 +86,7 @@ struct cfgstruct *parsecfg(const char *cfgfile, int messages) {"StreamMaxLength", OPT_COMPSIZE}, {"MaxThreads", OPT_NUM}, {"ReadTimeout", OPT_NUM}, + {"IdleTimeout", OPT_NUM}, {"MaxDirectoryRecursion", OPT_NUM}, {"FollowDirectorySymlinks", OPT_NOARG}, {"FollowFileSymlinks", OPT_NOARG},