10/29/07 Ken Jones - release version 1.4.0 with p0f code moved to qmail-smtpd 03/11/07 Ken Jones - for dspam only authorized users can send email to spam@ and nospam@, includes support for custom smtp error message 05/18/06 George Breahna - first version of DSPAM support R - add u_char casting to isupper and tolower 01/07/06 Ken Jones - envoke ripmime with --disable-qmail-bounce 01/07/06 Ken Jones - reject blank envelopes with proper error 10/05/05 Ken Jones - found an IsSpam=1.0 instead of IsSpam==1 for the spam passthru setting 10/04/05 Ken Jones - virus drop message was not exiting at the right time. Found by Russ Lists - use per domain hit count on spam log message if set. - if read from standard in fails the temp file was not closed so the temporary work directory would not be removed. 09/30/05 Ken Jones - put 's' at the end of processing time and move to after status. - add RELAYCLIENT log line. suggested by Sim - replace --with-pcre with two new ones --with-pcre-lib --with-pcre-include - update configure regex section to report the two new --with-pcre lines - A value of 5 was being checked instead of the SPAM_HITS value. Found by Jeremy Kister. - Change SpamHits > to SpamHits >= 09/28/05 Ken Jones - update logging documentation on qmailwiki.org - add VIRUS DROPPED logging message - clearer --enable-spam-auth-user config message - put #ifdef ENABLE_SPAM around the spam processing section in per_domain_lookup() function Reported by Gerad Earley - Change received header printf to %d for compiler warnings - add SPAM DROPPED log message - add processing time field to logging - add spam score and required hits to logging 09/27/05 Ken Jones - New global IsSpam flag - rewrite is_spam() to assume one line per invocation - rewrite check_spam() to use FILE and fgets to call is_spam with one line per invocation - Use IsSpam flag instead of over loaded SpamHits=1.0 to determine if email is spam. This also returns a valid spam hit count in custom smtp error message - move definition of qmail_queue outside per domain ifdef - new configure option --enable-spam-auth-user default to not scan authenticated users with spamassasin - update copyright year - add standarized reporting line for attachment and regex rejects 09/27/05 Bruno Negrao - in per domain processing an attachment list should override the global attachment list 02/08/05 Tom Collins - simscan.c do not spam scan for RELAYCLIENT users - complier warnings for getpid(),getppid() 02/06/05 Itamar Reis Peixoto - rc.spamd sample init script change to remove clamd with spamd - rc.qmail same change to this init script sample 02/02/05 Ken Jones - 1.1 release 01/26/05 Alex Pleiner - clean up for addr parse bug and per domain pass through debug 01/21/05 Flavio Curti - spam passthru change in how it returns a value Daniel Maglione - spam passthru log changes 11/30/04 Ken Jones / Tren Blackburn - add --enable-controldir option for over riding the default location for simscan control files. Default: /var/qmail/control 11/24/05 Daniel Maglione - change logging message for per domain spam pass thru 11/24/04 Ken Jones - strsep code if system does not support strsep: solaris - change int fd to static int fd in main for warning - change %d to %ld for getpid value warning - set HAS_ULIMIT_NPROC on all systems except solaris - ifdef around ulimit setting 11/22/04 Daniel Maglione - support for spam passthru in per domain code 11/20/04 Flavio Curti - support for regex matching on per domain basis --enable-regex --with-pcre=/prefix/of/pcre - change strtok to strsep 11/17/04 Ken Jones - clamav does not enable ripmime by default - clean up configure option report - attempt to auto detect spamassassin path with received header and spam processsing enabled 11/17/04 Flavio Curti / Ken Jones - add /usr/bin/sigtool and /var/lib/clamav to auto detect paths for received header processing 11/16/04 Ken Jones - configure attempts to auto detect where clamavdb and sigtool are - add -v version switch to simscan 11/15/04 Ken Jones - re-do rcpt to handling for unlimited rcpt to's. 11/10/04 Ken Jones - attachment checking should be case insensitive - do not check . and .. directory entries on attachments - "single character".exe would not match .exe attachment 11/09/04 Flavio Curti / Ken Jones - with per domain, disable spam/clam/trophie by default 11/08/04 Ken Jones - changed while loop to for loop and boundary check on processing RcptTo array. 11/08/04 Jason Frisvold / Niek - fix drop message code when not enabled 11/05/04 Daniel Maglione - set system fork limits high to overcome fork process limits on heavily loaded systems - new --enable-quarantinedir=DIR option to allow for quarantine of messages for later processing - new -enable-dropmsg option to accept email and silently drop viruses and spam emails. 11/04/04 Dmitriy MiksIr / Ken Jones - allow disabling ripmime in configure script --disable-ripmime even if virus scanning is selected - allow disabling ripmime in simscan based on configure script - Makefile: set mode on simscan binary after setting ownership 10/30/04 Flavio Curti - fixes the version grabber with spamassassin 3.0 10/29/04 Ken Jones - Update README on how to list attachments 10/28/04 Flavio Curti - simscanmk has new -g option to build the version database for the new received header option - if you enable per domain and use attach= and have other options after attach= those would have been ignored, this is fixed. - log format update, no more spaces between the different rcpts, and if received is enabled the run-time gets added as well at the end (time: ) - the way the injection into qmail-queue works has changed. in any case. it does work the same way as before. - optionally add a received header with version information --enable-received=y|n Simscan adds a Received line, showing the runtime, and a version string of the scanners that checked the message: Received: by simscan 1.0.6 ppid: 25399, pid: 25400, t: 4.7007s scanners: attach: 1.0.6 clamav: 0.80/m:27/d:556 trophie: 7.000-1011/218/74141 spam: 2.63 - new options for --enable-received option --enable-spamassassin-path=PATH Path to the spamassassin binary --enable-clamavdb-path=PATH Directory where the clamav master.cvd and daily.cvd files are saved --enable-sigtool-path=PATH Path to the sigtool binary --enable-trophie-path=PATH (if trophie is used) These are used to build the version database information - configure.in needs to use ENABLE_SPAMC_ARGS on info line 10/28/04 Ken Jones - Makefile.am simscanmk.o needed to depend on config.h - have ENABLE_SPAM 1 instead of just ENABLE_SPAM - have ENABLE_TROPHIE 1 instead of just ENABLE_TROPHIE 10/27/04 Kiril Todorov / Ken Jones - fix configure.in syntax error on --enable-spamc-args - configure --help should show --enable-spam-passthru 10/27/04 Niek / Ken Jones - remove un-needed "./" clamdscan argument 10/26/04 Eduardo M. Bragatto / Ken Jones - Do not use per user spamc option if more than one receipient. 10/26/04 Jason Frisvold - more comprehensive readme documentation 10/23/04 Ken Jones / Jason Frisvold - added --enable-spamc-args to set spamc args during configure instead of having to edit simscan.c - added --enable-spamc-user to set the -u user@domain option to spamc 10/22/04 Ken Jones - added --enable-spam-passthru feature to allow email to run through spamassassin and then passed through to the user - fix another line in spam header parsing code from 10/21/04 10/21/04 Jason Frisvold / Ken Jones - support for spamassassin 3 default setup use "score=" instead of "hits=" - do not die if either one of the above is not found. Added debug statement when not found. 10/21/04 Jason Frisvold - add support for spam hit count in simcontrol file, for example: :spam=yes,clam=yes,spam_hits=32.5 - a bunch of additional debugging printouts 10/19/04 Flavio Curti / Ken Jones - call ripmime if either attachment blocking or clamav is enabled - modifications to configure.in to support the above 10/17/04 Flavio Curti - Trophie can be enabled/disabled in the per_domain_file (trophie=) - attachments can be handled by the per_domain_file attach=listof files separated by colons - per_domain checks now sender and all reciepients - per_domain handles now qmail extensions, read the README on how it works - debug messages so they get only displayed with a debuglevel > 1 10/16/04 Flavio Curti - support for trophie http://www.vanja.com/tools/ an interface to Trend Micro virus scanner - when SIMSCAN_DEBUG is set do not delete the work files 10/16/05 Ken Jones - Allow group access to work directories so clamd can access the work directories when clamd runs as clamav user and added to simscan group 10/14/05 Ken Jones - update reject message code to support file descriptor 4 in the new qmail-queue-custom-error.patch version - attachment reads /var/qmail/control/ssattach file now - custom reject message for bad attachments - log attachment rejections - new RcptTo/MailFrom parsing code. The old stuff was broken. - hardcoded /var/qmail paths now use QMAILDIR 10/13/04 Ken Jones / Jeremy Kitchen - use SIMSCAN_DEBUG environment variable to enable error logging - debug output now goes to stderr for logging - Makefile.am: simscan.o needs to depend on config.h - new --enable-custom-smtp-reject option to return an smtp reject message with the virus name detected. Requires the contrib directory qmail-queue-custom-error.patch patch to be applied to the qmail source. 10/12/04 Ken Jones - new log output format includes ip, virus name, to/from addresses - read clamdscan's output to get virus name - parse to/from addresses into global variable 10/08/04 Jeremy Kitchen - removed extra paren in an if statement that would cause compilation failures if debugging was enabled. tx Al Battrick 10/05/04 Version 1.0.5 (devel) Jeremy Kitchen - fixed bug in Makefile.am, thanks Bastiaan van der Put. - fixed clamdscan exit code handling. *smacks Ken* :) - changed check_scan to not close fd 1 and 2 - changed installation a little more. - switching to CVS tree to make life easier. 10/04/04 Version 1.0.4 (devel) Jeremy Kitchen - changed Makefile.am to set proper permissions on simscan binary - changed configure.in to better test for the simscan user - added support for command line changing of simscan user --enable-user= - changed Makefile.am to set the mode on the working directory to 700 09/14/04 Version 1.0.4 (devel) Ken Jones / Jeremy Kitchen - print to stderr when virus detected with IP address Suggested by Rick Macdougall coded by Ken Jones - make unique file names for the message, to/from headers and the optional spamassassin output. These files get unlinked before exec'ing the --enable-qmail-queue=PATH program. Configure defaults this value to the real qmail-queue program. data file name ____________ _______________ message fd 0 = msg.X.Y.Z where X = unix seconds to/from fd 1 = addr.X.Y.Z Y = microseconds spamassassin = spamc.msg.X.Y.Z Z = simscan process id fd 0 and fd 1 normally come from the qmail smtp daemon. Simcan can optionally be turned on or off for different incoming IP ranges using the standard tcp.smtp.cdb file used by tcpserver/qmail-smtpd with the -x option. - spam-hits was checking only greater than the reported hits. It should check for greater than or equal to. Ken Jones - updated INSTALL, README and ChangeLog documentation. - fstat works on pipes, so switched per-domain code to allocate memory for the envelope with one read and one write instead of a read/write per character of the envelope. 09/13/04 Version 1.0.3 (devel) Ken Jones - The --enable-spam option now checks for an X-Spam-Flag: YES header. If found it returns a permenent refusal to accept message. The error code translates to an SMTP 500 series message refusal. - The --enable-spam-hits=hit_number option combinded with the --enable-spam option the perment refusal is based on the calculated hit: value in the X-Spam-Status: header. This option allows a system administrator to refuse email that has a fairly high hit count from spamassassin, like 10. Email that passes through can then be scanned again with a users personal perferences. 09/11/04 Version 1.0.2 (devel) Ken Jones - Enable clamav or spamassassin per domain - new simscanmk program to build clamav or spamasassing enable lists 07/20/04 Version 1.0 (production) Ken Jones - First production version