Mercurial > notdcc
diff CHANGES @ 0:c7f6b056b673
First import of vendor version
author | Peter Gervai <grin@grin.hu> |
---|---|
date | Tue, 10 Mar 2009 13:49:58 +0100 |
parents | |
children |
line wrap: on
line diff
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/CHANGES Tue Mar 10 13:49:58 2009 +0100 @@ -0,0 +1,2254 @@ +Changes to the Distributed Checksum Clearinghouse source. + + 2009/02/26 02:52:46 Rhyolite Software DCC 1.3.103-1.295 $Revision$ + +1.3.103 + Quiet RedHat versus Debian error message from rcDCC reported by Ken Rea. + Deal with corrupt /var/dcc/map reported by Steve Martin instead of + calling abort(). + Fix error in libexec/fetch-testmsg-whitelist reported by Horst Scheuermann + and William Taylor. + Tweak ./configure and makefiles to try to avoid the mysterious, + unreproducable linking problem reported by John Levine. + Fix bug with `./configure --with-max-log-size=0` reported by + Valentin Schmid. + `./configure --with-max-log-size=KB` now also applies to dccproc log files. + Generate man pages with /var/dcc and other directories replaced by + local ./configure choices. This is intended to help the FreeBSD + package and similar redistributions. + +1.3.102 + Fix build error reported by Steve Martin in dnsbl.c on MacOS X and other + systems without a resolver library found by ./configure. + +1.3.101 + Fix inconsistent declaration of grey_on in dccd/dump-clients/dump-clients.c + reported by Bobby Rose. + +1.3.100 + Support groups of DNS blacklists that can be independently enabled + in per-user whiteclnt files. + Follow Petar Bogdanovic's suggestion to make ./configure assume that + `su -` and the default file ownership on NetBSD should be like FreeBSD + Another tweak to reduce spurious DCC Reputations for 127.0.0.1. + Dccifd in query mode assumes one recipient and so always generates an + X-DCC header. + Tweak proof of concept per-user whitelist cgi scripts in cgi-bin. + Improve long term client request rate computation to improve how public + DCC servers handle too active clients. + Count anonymous clients ignored by `dccd -uFOREVER` among `cdcc stats` + "bad IDs" to more easily detect local clients that lack client-IDs + and passwords. + `misc/hackmc -M` now reports mail rejected with the sendmail + FEATURE(`badmx') to the DCC with counts of "MANY" + +1.3.99 + Fix typo in Makefile.inc for NetBSD and OSF1 reported by Petar Bogdanovic. + +1.3.98 + Change the DCC server to not sign responses to anonymous clients with + the client's sequence numbers in protocol version 9. + Add `dccd -T wlist` and `cdcc "trace wlist on"` to help find failures + by clients to whitelist IP addresses and other checksums + in /var/dcc/whitelist. + Let whitelisting by the MTA, DCC server, or other whiteclnt lines override + "option spam-trap-accept" and "option spam-trap-reject" whiteclnt + lines as suggested by Horst Scheuermann. + Finally document in the man pages parameters including %CIP that can be + used in dccifd and dccm rejection messages. + +1.3.97 + Fix "pthread_mutex_lock(cwf): Invalid argument; fatal error" reported + by Steve Martin. + +1.3.96 + Add `cdcc "clock check" to help detect broken clocks at DCC servers. + Fix intermittent complaints about whiteclnt.dccw reported by Gary Mills. + `cdcc clients` now indicates clients that have pegged a server's + anti-DoS delays. + +1.3.95 + Stop rare "fcntl(F_SETLKW F_WRLCK info -1): Bad file descriptor" complaints + when dccm and dccifd start. + +1.3.94 + Fix core new dump in version 1.3.93 of dccm with aborted mail messages. + +1.3.93 + Make the default value for the `dccm -j` and `dccifd -j` job limit + as large as possible. This makes -j settings unnecessary. + Dccproc and cdcc time out after about 1 minute when the /var/dcc/map + file is not unlocked. + Add "option spam-trap-accept" and "option spam-trap-reject" to + whiteclnt files. I think these are the best way to build + DCC spam traps. + +1.3.92 + Improve the hash function used in the DCC server database. + Replace -Bno-envelope for dccm, dccproc, and dccifd with + -Bno-client and -Bno-mail_host for Tony Del Porto. It seems that + Spamhaus' PBL should generally not be applied to SMTP envelope + Mail_From domain names to avoid rejecting mail received through an + ISP smart-host but with sender domain name hosted on a dynamically + assigned IP address. The now undocumented -Bno-envelope implies + -Bno-client and -Bno-mail_host. + Fix the @configsuffix@ mechanism in homedir/Makefile.in as suggested + by Craig Green. + Switch to -lpthread threads on FreeBSD starting with 6.2 because of + recent problems with libc_r threads. + Dccproc should not require a "option DNSBL-on" line in /var/dcc/whiteclnt + to pay attention to DNSBL hits. The -B settings on the dccproc + command line are sufficient to show that the user wants DNSBL checking. + Fix bug in compression of DCC Reputation reports. + +1.3.91 + Fix mechanism that should prevent dccd from starting dbclean for a quick + cleaning about the time the cron job runs. + Let DNSBL target addresses be CIDR blocks to improve the use of Spamhaus' + lists. + Fix DNSBL bug that caused false positives reported by Ray Gardener. + Tweak homedire/Makefile.in for the gento folks. + Fix recent compiling bug with Borland on WIN32 reported by Tommy Barberis. + +1.3.90 + Fix updatedcc problem reported by Chris Magnuson. + Updatedcc failed after shutting down the localhost DCC server and + finding no working server and when the environment variable + DCC_UPDATEDCC_FAST is not set to "yes". The easiest work-around + is to add the public DCC servers to the local /var/dcc/map file + with `cdcc "add dcc1.dcc-servers.net RTT+1000 ms"` Besides working + around the updatedcc problem, that uses the public DCC servers + as backups for the local server. + +1.3.89 + Repair compile problem on Solaris + +1.3.88 + Repair rate limiting on dccd syslog complaints. + Relax dccd load sharing enough to prevent spurious timeouts by + keepalive timers and some troubles with flood connections. + +1.3.87 + Add `./configure --enable-64-bits` to compile 64-bit DCC server code + for Solaris or Linux PowerPC. If you are using dccm, you will + need to build a 64-bit sendmail milter library. + Fix complaint from `cdcc "new map"` about the new file being empty. + Fix bug in `./configure --with-installroot=DIR` and `make install` + reported by Pavel Urban. + Fix at least some causes of "continue not asking Greylist" complaints + from dccm and dccifd. + Make dbclean on Linux systems with lots of RAM even closer to -F. + +1.3.86 + Disable automatic 64-bit compilation for Solaris again + +1.3.85 + Fix Redhat Enterprise 5.1 build bugs in 1.3.84 reported by Mark Thomas. + Fix old glitch in building for 64-bit Solaris systems. + +1.3.84 + Allow very large DCC database hash tables, including that used + for greylisting. + Add `./configure --with-configsuffix=.str` to improve FreeBSD port. + Add `rcDCC -m {dccd|dccm|...}` to improve FreeBSD port. + Add magic comments to rcDCC to make it work with SUSE insserv. + +1.3.83 + Deal with build problem on FreeBSD 7.0 reported by Craig Green. + Keep client IP addresses as old as 7 days in /var/dcc/dccd_clients + and /var/dcc/grey_clients + +1.3.82 + Fix automagic upgrade of old /var/dcc/map files reported by James Carlson + and Earl Killian. The bug was new with 1.3.81. + +1.3.81 + improve SMTP status messages from dccm and dccifd + improve dbclean handling of less frequent spam + do something like `dbclean -F` on systems that lack mmap(MAP_NOSYNC). + This should help recent versions of Linux that thrash themselves + much as Solaris always has. + perhaps fix the "Deadlock situation detected/avoided" messages long + but infrequently seen on Solaris. + fix a bug reported by Edward Toton in the mechanism that works around a + missing cron-dccd cron job. + fix problem in cron-dccd reported by Dean Maluski when a greylist server + is running but no DCC server. + +1.3.80 + fix bug with `dccm -t` log thresholds reported by Bart Dumon + +1.3.79 + remove -t arg. for dbclean + change lines in log files for DNSBL hits to include IP address from + the DNSBL + probe a DNSBL only once for several -B results with distinct SMTP + 4yz or 5yz rejection messages + reduce dccifd memory on some Linux systems by 4 MByte + do not use set-UID privileges outside the ./configure --homedir=DIR + directory + fix bug in 1.3.78 in sizing the window for large (>100 MByte) greylist + databases found by Tomasz Potega + +1.3.78 + Fix failure to reduce default dbclean expirations when working around + a missing cron-dccd cron job. + +1.3.77 + Improve dccd load limiting, including while catching up on flooding. + +1.3.76 + Add yet more system log tracing with `dccd -d` for the determination of + memory limits. + Tweak duplicate flooded report detection. + +1.3.75 + Fix false duplicate detection of flooded checksums introduced in + version 1.3.74. + Make the rep-total default threshold be 20, matching the documentation. + +1.3.74 + Repair rate limiting of dccd system log messages. + Another fix for detecting duplicate bulk mail reports. + +1.3.73 + Correct count of reputation hits. + +1.3.72 + Fix holes in the detection of duplicate flooded reports. + Fix quick database cleaning to not run dbclean 2 hours or less before + the usual cron cleaning. + Fix bug in counting DCC operations by the free DCC servers. + +1.3.71 + Fix confusion in daily log messages between incoming and outgoing + flood error messages. + +1.3.70 + /var/dcc/libexec/dcc-stats-graph no longer combines RRD files to + generate a graph. Instead the new /var/dcc/rrd-combine should be used + to generate a combined file that is then graphed. + Fix dccproc to report mail to the DCC server that DCC Reputations has + marked as spam. + Remove SOCKS flooding input bug that I added in 1.3.67. + Fix a failure by DCC Reputation servers to fail to detect flooded + duplicate reports. + +1.3.69 + Fix embarrassing build bug in 1.3.68 reported by Chris Pollock. + +1.3.68 + Enhance /var/dcc/libexec/list-clients + Increase flooding listen() queue to try to deal with connection timeouts. + dccifd should pay attention to thresholds in /var/dcc/whiteclnt + Fix new fix for reputation report counting. + +1.3.67 + Occassionally run a quick dbclean on the server database when the database + gets too big. + Report "connection refused" flooding problems in `cdcc "flood stats ..."` + `cdcc stats` on DCC Reputation servers report the number of client + reputation hits. + updatedcc -K does not try to download more than once per week. + -K is assumed if stdin is not a tty. Some installations seem to + have cron jobs that run updatedcc several times per day. + SOCKS flooding only doubles instead of quadruples the backoff or delay + before retrying connections. + Add more tracing of flood state changes to try to find the stickiness + with Solaris. + +1.3.66 + Fix SOCKS flood crash introduced in 1.3.65 and reported by Tomasz Potega. + +1.3.65 + Another tweak to the negotiation of DCC Reputations. + Restore recently lost logging of flooding error messages. + Fix missing reset of keepalive timer. + Include flooding position in `cdcc "flood stats ..."` + Fix rm and rmdir complaints from cron-dccd on Solaris reported + by Mark Thomas. + SUBMIT whiteclnt entries now also turn off DCC Reputation checking. + There are better ways to turn off mail from a local SMTP client + DCC Reputations. + Fix looping whitelisted flooded report bug reported by John L. + This bug might be related to crashes complaining + "ifp->ibuf_len=-111; fatal error" + +1.3.64 + Make ./configure and so updatedcc complaints about bad memory sizes + warnings instead of fatal errors. + +1.3.63 + Correct error in `cdcc "flood list"` announced negotiation of DCC + Reputations. + +1.3.62 + Let "option threshold type,val" lines in whiteclnt file accept "all" + and "cmn" for "type" as with `dccproc -c` and `dccm -t` and `dccifd -t`. + Use yet another scheme in updatedcc to detect download failures that + won't force unneeded downloads. + Fix dccifd man page about the location of the socket as suggested by + Carl Byington. + Fix several rare or potential bugs related to broken TCP connections with + DCC flooding including one that has caused a core dump. + +1.3.61 + Fix problems with Sun Studio 12 compilers reported by Rob McMahon. + `updatedcc -K` or cron mode is silent when things go ok, + or at least less chatty. + +1.3.60 + Fix confusion in flooding connection accounting. + Work around new Fedore Core 6 gcc Fortify buffer over-non-flow bug + reported by Joseph Breu by reducing the size of server-to-server + messages by 1 byte. + Reduce the number of socket() and bind() system calls in dccm and dccifd. + Close unused sockets in dccm and dccifd after bursts of mail such + as dictionary attacks. + Prevent complaints during flooding from between commercial and free + versions about bad protocol versions. + +1.3.59 + Fix crashing in dccifd reported by John M. Crawford. + Fix problem in flooding server-ID assertions. + +1.3.58 + Fix bug in recent versions of `/var/dcc/libexec/dcc-stats-graph -d` + reported by Kevin W. Gagel. + Deal with multiple A RR answers from DNSBLs such as Spamhaus' ZEN + for dccifd, dccproc, and dccm -B. + Turn off a "close(socket): Connection reset by peer" message from + dccifd in proxy mode when postfix gets anxious and closes early. + +1.3.57 + Fix bug in libexec/fetchblack adding a local blacklist file + reported by Krzysztof Snopek. + Make the system host name be the default value of `dccifd -D` + so that local user name for per-user logs and whiteclnt files + is "user" given SMTP recipient address "user@host.example.com" + on the system named user.host.example. + Support wildcards so that `dccifd '-D*example.com'` will take + "user" as the local name for per-user logs and whiteclnt files + vien SMTP recipient address user@host.exaple.com. + Fix bug in version 1.3.56 of dbclean in computing the hash table size + when upgrading from 1.3.42 reported by Domenico Diacono. + +1,3,56 + Dccd continues parsing /var/dcc/blacklist after a bad line instead + of stopping. + Change dcc-stats-graph to not use --alt-y-mrtg with rrdtool version 1.2. + Do not save dccd client list when running with -Gon. + Dccd continues to inflate queue wait for 5 minutes after flooding + resumes so that the database will be good for clients. + Add -K to updatedcc for "cron mode" to not install code, restart daemons, + or otherwise disturb things by installing the same version. + Improve server queue delay measurement when the system is too slow + to keep up with incoming floods. + Do not use MAXHOSTNAMELEN for domain name lengths because on Linux + it is only 64 bytes. This implies a new version of the /var/dcc/map + file. Old versions of the file are automatically upgraded, but that + implies problems if you install old versions of the DCC client + programs. + Dccm, dccifd, and dccproc delete all old X-DCC headers instead of only + those with the same brand name as the current DCC server to fix + problem reported by Frank Tegtmeyer. + Fix unrecognized data /var/dcc/dccd_clients message. + Improve DCC server hash table size estimation to help servers with + 1 GByte or less or more than 3 GByte of RAM. + Fix "flooding not stopped before ADMN DB UNLOCK" problem reported by + Tomasz Potega. + dcc-stats-graph no longer labels "Spam Ratio" graphs with '%' because + recent versions of rrdtool graph no longer understand "--units %%" + +1.3.55 + Dccd falls back on foreground DNS resolution of flooding peer names + when fork() fails, perhaps because of a lack of swap space. + Fix structure alignment bug introduced in 1.3.51/2.3.51 and seen in + Solaris on SPARC CPUs using `gcc -O` reported by Stephan Schulz. + +1.3.54 + Fix bug in proof-of-concept CGI script "LogOut/In" button introduced in + 1.3.48 on Apache without mod_unique_id. + Fix new bug in proof-of-concept list-log CGI script reported by + Krzysztof Snopek. It seems that in Solaris`ls -f` does not work on + a list of files. + Make `dccd -F` the default on Solaris to speed up the DCC server there. + +1.3.53 + More speed for dbclean on FreeBSD. + Fix recent damage to `dccproc -a` and dccproc -f`. + Fix -B "name too long" problem reported by Daniel Gehriger and + Giulio Cervera. + Fix bogus mail rejection by dccifd in proxy mode reported by + Daniel Gehriger. + Reduce BIND timeout for each lookup to whatever remains of the + -Bset:url-secs=X limit. + +1.3.52 + Fix bug in updatedcc found and diagnosed by Asgeir. + Speed up dbclean on FreeBSD. + +1.3.51 + Fix recently added bug with greylisting in dccifd reported by + Daniel Gehriger. + Fix database corruption bug in `dccd -F` added in version 1.3.49. + Fix bugs in queue delay reported by DCC servers to anonymous clients. + This change is important for the public DCC servers. + What the nightly cron job, /var/dcc/libexec/cron-dccd, to try to + restart dccd if it is not running but is turned on. + Include anonymous client queue delay in `cdcc stats` queue delay report. + Close hole that allowed deleting or adding hosts in /var/dcc/maps. + Reduce minimum default reduced dbclean expiriation durations to + 1 hour and 1 day from 2 hours and 2 days to help systems with + 1 GByte or less RAM. + Change cgi-bin/webuser-notify to use sendmail and include a + "Precedence: bulk" header so that the vacation program won't + respond to the CGI cron script's mail messages. + Change cgi-bin/webuser-notify to handle per-user log subdirectories + generated by "option log-subdirectory-*" in whiteclnt files. + +1.3.50 + Fix client random selection of public DCC servers. + /var/dcc/blacklist also affects flooding peers. + +1.3.49 + Change dbclean to use a dccd optimization and be faster on FreeBSD + systems that have less that 4 GByte of RAM. + Set the GID of dccifd, dccm, and dccproc log files and subdirectory + to be the same as the parent directory if running as root and + if necessary. + Possibly fix pthread_mutex_lock(user_log) bug on MaxOS X reported by + Steve Martin. + +1.3.48 + Turn off automatic generation of 64-bit DCC servers. + +1.3.47 + Remove support for external filters as part of the fix for the + thundering herd problem in `dccm -B` reported by Gary Mills. + Check NS IP addresses in DNS blacklists (DNSBLs) before MX IP addresses + for dccproc, dccifd, and dccm -B. + Fix `dccm -tsubstitute...` problem reported by Ludger Bolmerg-Berliner + Try to compile for 64-bit pointers on Solaris to use more than 2 GBytes + if available. + Significantly improve speed on large FreeBSD DCC servers. + Make dbclean automatic -e/-E adjustments much more stable to + significantly help DCC servers on Mondays and Tuesdays. + Fix bad Body and missing Fuz1 and Fuz2 checksums for dccifd and dccm + when previous messages had bad MIME encapsulation reported by + Gary Mills and Harel Tassa. + +1.3.46 + Do not greylist mail from SMTP submission clients marked by + "submit IP" lines in /var/dcc/whiteclnt. + Stop race with idle DNSBL helper processes. + More adjustments to help deal with large databases. + Deal with ./configure problem with BIND resolver on some versions + of Linux reported by Daniel Gehriger. + Change header checksums to ignore all instead of only some occurrences + characters matching [<>'"] + Dccm uses SMFIP_RCPT_REJ in sendmail 8.14 to detect dictionary attacks + and adjust the DCC Reputation of attackers. + Fix a very rare infinite loop in the MIME decoding code in DCC clients. + Add "option log-subdirectory-{day,hour,minute}" to whiteclnt files + to create per-user log files in subdirectories like the subdirectories + used for /var/dcc/log with dccm, dccifd, and dccproc -l. + Detect too-small file size resource limits in dccd and dbclean. + Compile with -D_FILE_OFFSET_BITS=64 on Linux as suggested by + Dmitry Konovalov. + Compile with -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64 as advised by + James Carlson. + Add dccm and dccifd -Bset:maxjobs=X + Suppress ENOENT errors from recvmsg() on Tru64-UNIX observed by + Alberto D'Ambrosio. + Fix printf(null) crash in dccifd acting as a proxy for CommuniGate + reported by Charles Chappell. + +1.3.45 + Fix memory leak in dccm and dccifd when DNSBLs (-B) are used. + Improve performance on current UNIX-like systems that have madvise() + with large DCC server databases. + Mention the "incompatible whitelists" message in the FAQ. + +1.3.44 + Remove some quoting in homedir/Makefile to try to work around Linux + "improvements." + +1.3.43 + Make "option forced-discard-nok" in /var/dcc/whiteclnt the default for + dccm as well as dccifd in proxy mode. + Add whiteclnt type of IP address entry "submit". + It is intended to be applied to the IP addresses of SMTP submission + clients such as web browsers that cannot tolerate 4yz temporary + rejections of mail, but that cannot be trusted to not send spam. + Let body and reputation checksum thresholds be set in the global and + per-user whiteclnt files. "Never" is a valid threshold and turns + off rejections for a checksum. + Overhaul proof of concept per-user whiteclnt CGI scripts to handle + per-user checksum thresholds. + Rationalize /var/dcc/libexec/dcc-stats-graph -tTITLE + Fix bugs with -eNEVER and -Enever in dbclean. + Add "submit" to "mx" and "mxdcc" values for IP addresses whiteclnt files + to mark SMTP clients that are submitting new messages and that + do not understand 4yz rejections for individual recipients. + Fix dccifd crash on bogus long recipient names diagnosed by Tomasz Potega. + /var/dcc/libexec/fetchblack is not as noisy when the sources of the + public DCC server blacklist are down for long periods. + Limit the database window to less than 2 GBytes on all 32-bit systems + including Solaris. Previous versions assumed that Solaris would + do the right thing if it allowed large files. + Fix bugs in the "skipping asking DCC server" mechanism that made it + too forgiving. + Remove the `dccd -t` thresholds in favor of simple constants. + Dccm, dccifd, and dccproc now emit X-DCC headers for locally white- + and blacklisted messages even when no DCC server responds. + Automatically compensate for incompatibility in newer versions of + rrdtool. + Prefer poll() to select() on Linux. + Increase the computed limit on `dccm -j` by not dedicating two FDs + to each thread for per-user log files but instead doing some locking. + +1.3.42 + Correct wrong count of `cdcc "clients -i 10.11.12.13"` + Change rcDCC.in back to allow the use of /var/run for PID files. + +1.3.41 + Finally fix ancient missing quote in start-dccm. + +1.3.40 + Make bad password-IDs in /var/dcc/flod a serious error that is reported + even when tracing is off. + Fix missing ';;' in libexec/logger as suggested by James Carlson. + Restore `start-dccm -c` that was removed from version 1.3.39 with the + mistaken idea that -c was not in use. + Fix bug counting clients of public DCC servers introduced in 1.3.39. + Adding -d to DCCD_ARGS or GREY_DCCD_ARGS causes dccd to say how it + determines the size of available memory. + Deal with sysctl(HW_PHYSMEM) on amd64 FreeBSD 6.* need for an 8-byte value + without breaking sysctl(HW_PHYSMEM) on FreeBSD 5.* that demands a + 4-byte value. + Allow databases larger than 3 GBytes on 64-bit systems. + +1.3.39 + Fix bug that caused `cdcc "clients -V"` to sometimes report version + numbers of '?'. + Change dccd to prefer recycling an old, almost idle client rate-limiting + block instead of the oldest block. + Modify /var/dcc/libexec/list-clients based on a suggestion from Chris Myers. + +1.3.38 + Add `cdcc "clients x.y.z.w/p"` + +1.3.37 + Fix problems in /var/dcc/libexec/list-clients and with `cdcc clients` + with IPv6 addresses reported by Vincent Schonau. + +1.3.36 + Fix bad ./configure check to see if `xargs` needs and can use -r + reported by Mark Thomas. + +1.3.35 + Fix dccm crash reported by John Doherty. + +1.3.34 + Fix bug in `make install` on Solaris introduced in 1.3.33. + +1.3.33 + Work around change to `sort` collating sequence in Fedore Cort 5 reported + by Jakob Hirsch. + +1.3.32 + Fix dccd crash as suggested by Wolfgang Breyha. + Do not try to stat() missing whiteclnt files more often than once every + 5 seconds. This should significantly reduce the number of stat() + system calls on busy systems using dccifd and SpamAssassin. + Fix some problems with determining the mail sender through MX forwarders + for second and subsequent mail messages in an SMTP session. + Recognize some more qmail variations of Received headers for obtaining + IP addresses. + Add `cdcc "clients -V"`. + Optionally in dccm and by default in dccifd in proxy mode temporarily + reject SMTP recipients that might be forced to have spam discarded + instead of rejected because it must be delivered to other + recipients. + +1.3.31 + Mention /var/dcc/libexec/uninstalldcc in the installation instructions. + Change dccm and dccifd per-user log message for mail that is now being + accepted after being temporarily rejected for some other recipient + to "accept after greylist embargo" from "accept", as requested by + Spike Ilacqua. + Fix failure to reset "continue not asking" counter problem reported + by Breno Moiana. + Reduce default value of `dbclean -e` from 2 days to 1. + Modify error messages to try to find some clues about the Solaris + "deadlock avoided" problem. + +1.3.30 + Fix leak in dccd blacklist. + Change client-server protocol so that `cdcc clients` gets more than + 16 bits of NOP counts. + updatedcc and fetchblack try two FTP and HTTP servers. + do not use stdio to parse whiteclnt files to deal with Solaris' + 255 limit on stdio file descriptors. + add /var/dcc/libexec/uninstalldcc + +1.3.29 + Fix dblist.c compiling problem in 1.3.28 on some versions of + Linux reported by Thomas Schwanhaeuser and Nigel Horne. + +1.3.28 + Turn off use of futimes() on Linux to resolve bug diagnosed by + Wolfgang Breyha. + Fix two locking problems dccm and dccifd that might cause the crashes + reported by Gary Mills. + Reduce dccifd and dccm thread stack size. + Fix bug that kept some DCC Reputations from being compressed in + the database. + Change the default DCC Reputation rejection message to the equivalent of + -r '%s bad reputation; see http://commercial-dcc.rhyolite.com/cgi-bin/reps.cgi?tgt=%s' + +1.3.27 + Fix an odd case where flooding connections between DCC servers were + not being shut down. I think it only happened when a firewall + or something else systematically filtered TCP FINs. + Use setresgid() for setegid() on HP-UX to fix problem reported by + Giacomo Fazio. + +1.3.26 + Compression reputation reports from the same week instead of from + the same half day. This significantly reduces the size of the + database on systems using DCC Reputations. + Restore the flood rate limiting based on TCP windows, but now just + ignore the bogus EAGAIN complaints from some versions of Solaris. + Fix server whitelists broken in 1.3.21. + +1.3.25 + Fix dccproc crash when given a bogus env_From value diagnosed by + Jeff Mincy. + Fix greylist triple checksum in dccm and dccifd log files. + Fix the default expiration of DCC Reputation checksums at 30 days and + 2 days unaffected by the system's amount of RAM. + Expire FUZ1 checksums in reports that also have FUZ2 checksums. This + significantly reduces the size of the DCC server database. + Remove new flood output rate limit using SO_SNDBUF because it causes some + versions of Solaris to generate persistent EAGAIN errors for send(). + Fix at least some of the dccifd memory leak reported by Chris Mikkelson. + It may be the same as the leak reported by Gunther Richter. + Limit worst case DCC client delays exclusive of delays caused by waiting + for DNS blacklists or external filters are limited to about 16 seconds. + +1.3.24 + Dccproc starts dccifd after 500 uses at least as fast as 0.1/second. + With luck SpamAssassin will notice and switch to dccifd. + Look for libsmutil.a in /usr/lib on Linx for old RedHat + as suggested by Jason Balicki. + Fix X-DCC header misplaced by dccproc reported by James McNutt. + +1.3.23 + Fix bug in dccm, dccproc, and dccifd that tripled effective DCC target + counts on messages being retransmitted after greylisting. I + introduced this bug in version 1.3.21, which was released 3 days ago. + +1.3.22 + Fix "POSSIBLE ATTACK" complaint from sendmail about trailing '\n' + on headers added by dccm reported by Paul Ganci. + +1.3.21 + Add a crude cache or database to the proof-of-concept scripts in + cgi-bin/common to speed them up on large log directories. + The goal is to handle log directories with 40,000 files within a + second or two. The caches files are built incrementally. + Invert the sort order of list-log in cgi scripts. + This change to cgi-bin/common should be upward compatible because + it is controlled by additional parameters to the Perl functions. + Complain about contradictory or ignored entries in whitelists, including + "from" checksums that are normally ignored in server whitelists. + Fix dccd craziness with gre (or any) interfaces with the same IP addresses + as other interfaces observed Craig Green. + Fix infinite loop in dccproc triggered by a To: header of more than + 20480 bytes and with a '\n' character in byte #20478 observed by + James McNutt. + Ignore a few failures by select() apparently caused by SOCKS libraries. + Increase default DNSBL timeouts to -Bset:msg-secs=40 and -BURL-secs=11 + +1.3.20 + Fix dbclean expiration of reputation checksums + +1.3.19 + Changed the midnight dccm and dccifd system log message to disclose + spam passed from whiteclnt-listed MX servers. + MX servers should now be listed in /var/dcc/whiteclnt with lines like: + mx ip 10.2.3.4 + mx ip 10.5.6.0/28 + mxdcc ip 10.7.8.9 + "MX" marks the IP address of one of your mail systems that should + be ignored in initial Received: headers and when reported by + sendmail to dccm. "MXDCC" marks IP addresss of your mail systems + that run DCC clients and that will have already reported mail + to the DCC. Continue using "OK" whitelist entries for mail systems + that you trust to never send or forward unsolicited bulk email. + Allow custom DNS blacklist SMTP rejection messages. See + -Bset:rej-msg=X in the dccifd and dccm man pages. + +1.3.18 + Fix `dccm -aIGNORE` crash reported by Juergen Georgi. + Fix detection of duplicates reputation reports. + Initial support for "mx ip" entries in whiteclnt files. + Fix compression by dccd of delayed reputation reports. + +1.3.17 + People have broken wget by changing the old "--non-verbose" to + "--no-verbose". That would have ok, except they do not understand + what they were doing enough to support the old form. Reportedly + "-nv" works on both versions. + `cdcc stats` on DCC Reputation servers includes an additional line + about reputation results. + Adjust logged reason when spam is ignored after greylist as suggested + by Spike Ilacqua. + Replace `dccproc -R` with `dccproc -r N` (Of course, `dccproc -R` + is still recognized.) + +1.3.16 + Fix bug introduced in 1.3.15 that caused greylist retransmissions + to be counted by the DCC server as separate messages contributing + to the "bulkness" of a message. + If /var/dcc/log is neither readable nor searchable by 'other', then + create log files with the same 'group' permissions as the directory + instead of the old default of 600. This allows the application of + cgi scripts to the main whiteclnt and log files. + `dccd -T ALL` no longer works. It never made much sense and continues + to cause confusion. + Dccifd in proxy mode no longer requires blanks after colons in SMTP + commands. Problem reported by Martin Pala. + Fix dccifd proxy mode crash on mail messages without bodies reported + by Martin Pala. + Complain about bad host name and other errors in whiteclnt files + every 30 minutes instead of every 5 minutes. + Allow whiteclnt files to be read-only with a new locking scheme. + Use Milter.macros.eom in sendmail 8.13 so that the ${dcc_isspam}, and + ${dcc_notspam}, ${dcc_userdir} macros can be set by sendmail.cf + rules that examin headers. This might also allow some hack_mc + settings to be used with delay_checks. + As suggested with discussions with Martin Pala, the thresholds for + quick flooding among servers are now non-linear. + +1.3.15 + When "option MTA-first" in a dccm and dccifd whiteclnt file, determinations + of (not) spam by the MTA are consulted first and so can be overidden + by the whiteclnt files. This allows individual users to override a + sendmail access.db file. + Correct the SMTP rejection message in per-user log files for dccm and + dccifd, especially when dccifd is acting as a proxy. + Fix bug reported by James Carlson that kept./configure from turning + on SOCKS. + +1.3.14 + Keep dccd flooding threshold at or above 10. + +1.3.13 + Make default maximum server memory size 2000 MByte on all except IRIX + and Solaris. + Fix bug in 1.3.12 that causes dccd flooding thresholds to be 0 if + dccd is started by hand or without a dccm rejection threshold. + +1.3.12 + Fix packaging error in 1.3.11. + +1.3.11 + Dccproc should complain if the -w whiteclnt file is bad. + misc/dcc.m4 can add a sendmail.cf rule that assigns a single + whiteclnt file and log directory to mail forwarded to another system. + With that the cgi-bin scripts can be used to control dccm for + mail forwarded to another system with a single web user. + +1.3.10 + Delete "message" checksum in greylist database when spam causes + an embargo to be restored. This fixes some counts after a + greylist whitelisting has been revoked. + Make the default owner and group for files be root:wheel on FreeBSD + As always, use the DCC_OWN and DCC_GRP environment variables with + `make install` or updatedcc -e to override those defaults. + +1.3.9 + Dccifd and dccproc treat the bogus SMTP client IP address of 0.0.0.0 + from SpamAssassin as if it were absent, which allows it to look in + in Received headers. + Add "rcvd-nxt" option to the dccifd MTA protocol to parse later + Received: headers. + +1.3.8 + Repair greylisting broken in 1.3.7. + +1.3.7 + Log files now say "Restore #x" instead of "Embargo #x" when a greylist + embargo is restored because the message is spam. + Don't use -a with `fetch` in updatedcc, fetchblack, and + fetch testmsg-whitelist because it does not know when to stop trying + to reach a dead FTP server. + Add "any" to dccm, dccifd, and dccproc -B DNSBL result address as + suggested by Giulio Cervera. + +1.3.6 + Try to deal with UNIX kernel problems cause bogus failures of mmap(). + Fix bug related to --disable-dccifd reported by Krzysztof Snopek. + Stop relying on `su - -c` to start daemons as requested by Dean Hollister. + Fix server-ID mapping in /var/dcc/flod to use the first relevant mapping + as the documentation says instead of the last one. + Fix recent bug in cron-dccd that stopped emptying client per-user log + directories. + +1.3.5 + Untangle `dccd -a` as well as local host name and IPv4 vs. IPv6 options + in /var/dcc/flod + Fix automatic /var/tmp/map file upgrading for Windows. + Actually c:\\program files\dcc\map + Improve dccd work-around for missing /var/dcc/libexec/cron-dccd cron job + on memory-short DCC servers. This still not a substitute for the + cron job. *USE THE CRON JOB*. + Repair dccifd and dccm midnight log entry bug reported + by Christopher Bodenstein. + Fix recent bug in cron-dccd that stopped emptying /var/dcc/log. + +1.3.4 + Fix another dccm, dccifd, and dccproc bug related to bogus long + URLs from a core dump on Spike Ilacqua's system. + Fix installroot homedir/Makefile as suggested by Pavel Urban and Paul Ganci. + Add `cdcc "src x.y.z.w" to help DCC clients navigate firewalls. + This change requires a change in the format of the /var/dcc/map file. + However, the DCC clients should all automatically and invisibly + upgrade old files. + Fix `dccd -a` bug reported by John Levine.` + +1.3.3 + Work around bogus use of "::" in line 184 of /usr/share/mk/bsd.lib.mk" + in ancient FreeBSD as reported by Lento Yip. + +1.3.2 + Improve logging of failures by external filters. + Fix new use of pstat_getstatic() on HP-UX to obtain physical memory size. + +1.3.1 + Allow dccproc, dccm, and dccifd to use an external filter. See the + ./configure --with-xfltr=FILE --with-xfltr-cflags=opt and + --with-xfltr-ldflags=opt, the discussion of -X in the man pages, + and the toy filter in thrlib/xfltr_sample.c. + See also /var/dcc/dcc_conf-new + Automatically decrease the number of DNS blacklist helper processes for + dccm and dccifd when fewer are needed. + Use pstat_getstatic() on HP-UX to determine the size of physical memory. + Dccifd refuses to run on HP-UX 11.00 to keep SpamAssassin from stalling + while dccifd cannot hear. + +1.3.0 + New license. + cron-dccd tells dbclean -6 if needed. + Treat EHOSTUNREACH or "No route to host" like ECONNREFUSED in DCC + clients and do not complain about every instance. + Deal better with DCC servers with floppy multi-homing such as behind + some NAT boxes. + Deal more gracefully with Linux systems without IPv6 support but + with `cdcc "IPv6 on"`. + Fix crash in dccm, dccifd, and dccproc while computing FUZ2 checksum on + URLs with very long host names in HTML mail messages. + Fix dccifd missing SMTP reply code in dccifd rejections in proxy mode. + `dccifd -ddd` logs SMTP transactions in proxy mode. + Dccifd man page has example -o configuration for use as a Postfix + before-queue filter. + Restart dccm and dccifd after core dumps. + +1.2.74 + Make clients prefer real IPv6 address to embedded or mapped IPv4 + addresses. + +1.2.73 + Fix crash in dccsight as suggested by Vincent Schonau. + Fix handling of log files for senders without reverse DNS in + cgi-bin/common as suggested by Vincent Schonau. + Add IPv4 and IPv6 o-opts to /var/dcc/flod lines to deal with the change + in the default from "YES" to "NO" in the FreeBSD ipv6_ipv4mapping + +1.2.72 + Do not make DNS blacklist checks if the MTA already knows the message + is or is not spam. + Add -lresolv to $LIBS for Mac OS X Darwin as suggested by Joel Brogniart. + Change DNS blacklist checking to check MX servers as well. + Add -B settings to control which DNS blacklists are used for the envelope + or body, and whether MX servers should be checked. + SIGUSR1 causes dccm and dccifd to send their statistics to the system log. + Use getaddrinfo() and getnameinfo() when getipnodebyname() and + getipnodebyaddr() are not available. This might make IPv6 work + on Linux systems. + Note that to make dccd listen to IPv6, -6 must be added to DCCD_ARGS + and GREY_DCCD_ARGS in /var/dcc/dcc_conf. This requirement has long + been present to defend against systems that only pretend to + understand IPv6. Perhaps it is time to remove it. + Add `dccifd -o` to use a subset of ESMTP so that dccifd can be used + as a "before-queue" filter or SMTP proxy by Postifx. + Probably fix a rare dccm and dccifd crash. + +1.2.71 + Fix stray greylist queries reported by Vincent Schonau. + Fix conflict between checking DCC and greylist servers on Linux + reported by Vincent Schonau. + +1.2.70 + Turn on IP TOS bits for DCC server-to-server flooding. + Add -B to dccproc, dccm, and dccifd to consult DNS blacklists. + This feature and greylisting are valuable supplements + to DCC target counting. However, greylisting is generally + significantly better where greylisting can be used. Most + dccproc and many dccifd installations cannot use greylisting. + +1.2.69 + Add `misc/hackmc -r` like -R but to reject instead of discard bad + relay attempts. + Fix bogus X-DCC header added after a fatal problem with the DCC server + as suggested by Harald Daeubler. + Release a single tarball equivalent to the old dcc-dccd-*.tar.Z that + contained the DCC server and all clients. + +1.2.68 + Fix counting of blacklisted DCC clients by dccd. + +1.2.67 + Remove bonehead optimization in dccd of /var/dcc/blacklist in 1.2.66. + Deal with stdargs in gcc 3.4 on AMD 64-bit systems that do not allow + a va_list arg to be passed to two different subfunctions, but + without breaking things on the many systems that lack va_copy(). + +1.2.66 + Overhaul dccd rate-limiting. Instead of imposing a penalty time + on overactive clients, simply rate-limit them. + Reduce limit on dccd error messages about clients from 2/second to + 0.1/second. + +1.2.65 + Fix accounting of NOPs from blacklisted clients. + Fix race that caused "??" server-IDs in X-DCC headers. + Do not count requests from blacklisted clients against the rate limits + as suggested by Sven Willenberger. + +1.2.64 + Correct ">XXXX clients" from `cdcc stats` + Removed redundant declarations of mapfile_nm and rl_anon as + suggested by Andreas Jochens. + +1.2.63 + Possibly fix dccm crash reported by Ludger Bolmerg. + +1.2.62 + Fix bug in `dccd -a10.2.3.4` diagnosed by John Levine. + +1.2.61 + Fix file descriptor leak in getifaddrs() replacement. + +1.2.60 + Fix bug reported by John Levine on systems such as BSD/OS 4.3 + without getifaddrs() introduced in 1.2.59 with tracking changes + in network interfaces. + +1.2.59 + Fix broken `dccd -G0` reported and diagnosed by Chris Mikkelson. + Track changes in network interfaces on most modern flavors of UNIX + as suggested by James Carlson. + Fix two MIME decoding bugs as suggested by George Schlossnagle. + Treat '>' as a blank instead of punctuation for FUZ2 checksums. + Don't re-use va_list in stdargs functions to work around a characteristic + of gcc for AMD 64 bit systems. gcc 64-bit stdargs + reportedly passes va_list by reference instead of by value. + Fix date labels in graphs generated by dcc-stats-graph as suggested by + Kevin Gagel. + +1.2.58 + Work around new bug in FreeBSD 4.10 mechanism to disconnect UDP + sockets reported by Daniel V Klein. The symptom of the bug is + that DCC servers appear down to clients running on FreeBSD 4.10 + +1.2.57 + Invoke WSACleanup() after using WSAStartup() on Windows systems + as suggested by Carl Stehle. + +1.2.56 + Fix /var/dcc/ids delay= extension. + +1.2.55 + Add `./configure --with-max-db-mem=X` to limit the size of the + database window. + Extend /var/dcc/ids format to allow authenticated clients to be delayed + as `dccd -U` delays anonymous clients. + Add `./configure --with-kludge=FILE`. + +1.2.54 + Fix problem with flooding among greylist servers using `dccd -Gweak-IP` + reported by Valentin Chopov. + +1.2.53 + Restore `dccsight -G grey-cksum` because the proof-of-concept CGI + scripts use it. + On OS X, use owner and group of daemon:daemon for programs and use + dccmaninstall in `make install` as suggested by Jason Schwarz. + +1.2.52 + Fix problem in start-dccm and start-dccifd with Solaris /bin/sh + reported by Gary Mills + Work around bug in OpenBSD HTONL() and NTOHL() reported by Jeff Drinkert. + Change wlist to rebuild the .dccw hash table unless given -Q. + +1.2.51 + Fix cause of "packet length 44 too small" complaints by DCC servers. + With an empty mail body and no useful headers, DCC clients were + sending empty requests to DCC servers. + Add `cdcc "debug TTL=x"` to help find firewalls that filter DCC requests. + Use shared libmilter.so in dccm as suggested by James Carlson. + Fix Body checksum when MIME boundary crosses buffer boundary from + Richard Lyons. + Stop crash in dccm reported by Krzysztof Snopek. + Deprecate misc/dccdnsbl.m4 and change misc/hackmc to work with + FEATURE(dnsbl) and FEATURE(endnsbl) in modern sendmail. + Make it compile on Mac OS X and DragonFly FreeBSD. + Reduce the size of greylisting databases. + Separate DCC query mode for dccm and dccifd from greylist query mode. + Add `dccd -G weak-IP` to whitelist not only a {sender,target,IP address} + after passing the greylist embargo, but anything from the IP address. + Use this facility with caution; it might be a bad idea. + + The last change requires that all greylist clients and servers + be upgraded simultaneously. + +1.2.50 + Fix `dccifd lhost,lport,rhost/bits` on systems that have IPv6. + Change homedir/make-dcc_conf to track changes in + `./configure --with-rundir=x --libexecdir=y` + as suggested by Josef T. Burger. This change will not be effective + until upgrading from 1.2.50 to later versions. + Deal with tiny FD_SETSIZE reported by Christian Becker. + Fix dccifd, dccm, and dccproc core-dump caused by missing whiteclnt file + reported by Henrik Edlund. + +1.2.49 + Fix infinite loop in computing DCC clients computing checksums of + large, deeply nested MIME messages reported by Clive Cleland. + +1.2.48 + Add "option dcc-off" and "option dcc-on" to per-user whitelist files + as suggested by Spike Ilacqua. + Make /var/dcc/libexec/fetch-testmsg-whitelist deal with cron processes + that set $PATH without /usr/local/bin + +1.2.46 + Fix infinite packet flood from DCC clients including dccproc observed + by Benji Spencer, Clive Cleland, and Andrew Kent. I introduced + this serious bug with the WIN32 changes in 1.2.33. + Fix "option greylist-off" bug introduced in 1.2.39 and reported by + Spike Ilacqua. + Defend dccd against too many clients. + +1.2.45 + Fix dccd database "window" size computation bug that chose 3 GBytes + on systems with less than 512 MByte. + Fix `cdcc "stats all"` to use the right host name from Leandro Santi. + Increase `dccd -R` default rate limits for all anonymous clients + and for individual authenticated clients.. + updatedcc understands -V x.y.z unless no old version x.y.z is available. + +1.2.44 + Fix bug in dbclean -e and -E default reductions that made them 50% less + instead of more conservative compared to 1.2.39. + Speed up dbclean on systems with mmap(MAP_ANON). + Clean some uninitialize variable complaints from purify reported by + Praveen Nimmagadda. + Minor adjustments to deal with Solaris's VM system. + +1.2.43 + Fix typo in -e and -E default reductions. + +1.2.42 + More adjustments to deal with Solaris's VM system. + Use all except 384 MByte of physical memory on systems with more than + 768 MByte. On systems with 768 MByte or less, use half. + Tweak WIN32 makefiles. + +1.2.41 + Restore TZ in update/misc after setting it to GMT to keep the + Solaris FTP from going crazy. + +1.2.40 + Include win32.makin2 that was missing from 1.2.39. + Do not respond to clients when the database is broken to ensure that + they switch to another server. + Add missing "option greylist-on" support to cgi-bin/edit-whiteclnt + Remove DCC_PROTO_HOMEDIR support for building RPM or other packages + and add `./configure --installroot=DIR` + Adjust threshold for `dbclean -F` to keep Solaris systems from spending + hours in dbclean. + Add `dbclean -f` to turn off default `dbclean -F` on Solaris for + installations where the file system has been tuned for the + large, randomly accessed file that is a DCC database. + +1.2.39 + Suppress syslog messages from cdcc noted by Krzysztof Snopek. + Suppress complaints about madvise(MADV_WILLNEED). + Tweak WIN32 porting aids. + +1.2.38 + Turn off the use of madvise(MADV_WILLNEED) on systems such as BSD/OS + that claim to have it but don't. + -Gweak did not in 1.2.37 work as reported by Valentin Chopov. + +1.2.37 + Tweak WIN32 #ifdefs. + Change -G for dccm and dccifd to require -Gon. Add kludges in + start-dccm and start-dccifd to convert the old -G to -Gon. + Add "-G noIP" and '-G IPmask/xx' to ignore all or part of the SMTP + client IP address in the greylist triple. + `dblist -G` no longer works. Use `dbclist -Gon` + Fix bug where dbclean increased the number of reasons to stop flooding + by 1 and then decreased it by 2 reported by Bernard Gardner. + Use madvise(WILLNEED) for database buffers on systems with plenty + of RAM as suggested by Robert Milkowski. + Adjust scripts including /var/dcc/libexec/start-dccd to deal with + POSIX compliance of `expr` in FreeBSD 5.1. + Change FUZ2 checksum to know about Polish. + +1.2.36 + Fix updatedcc for systems that have only make in $PATH but where + it is really gmake. + +1.2.35 + Turn off the use of poll() instead of select() on Linux systems. + +1.2.34 + Fix bugs in the ./configure mechanisms to use poll() instead of + select() on FreeBSD reported by Valentin Chopov. + +1.2.33 + Adjust default dbclean expirations based on available RAM and + the size of the database. + Make dcclib, cdcc, and dccproc build for WIN32 with Borland C++ 5.02 + or FreeCommandLineTools.exe. The former can use the dcc.ide file + and the latter can use win32.mak. + Fix use of SO_LINGER on Solaris. + More changes to ease compiling cdcc for WIN32. + Possibly fix dccd amnesia about flooding peers. + Use poll() instead of select() on FreeBSD. + Fix updatedcc to use gmake if ./configure insisted. + Entirely remove "--prefix" from ./configure to stop people from + mistakenly assuming that ./configure is what the Free Software + Foundation dictates it should be. + Change /var/dcc/libexec/start-dccd to stop dbclean when dccd starts + and so prevent a deadlock between dbclean and dccd. + Fix problem with updatedcc on systems with only gmake reported by + James Carlson. + Fix problem with large greylist whitelist files reported by John Levine. + Reduce number of write() system calls per operation in dccifd. + +1.2.32 + Fix corruption of `dccm -U` directory introduced in 1.2.31 and + reported by Spike Ilacqua. + +1.2.31 + Make all dccd databases "big." If you have not previously used + `./configure --enable-big-db` then when version 1.2.31 of + dccd is started, it will run dbclean to rebuild the database. + This will make the hash table about 9% bigger and so 9% slower. + Make the "ms" units optional for RTT adjustments in `cdcc add` or + `cdcc load` as suggested by Hernan A. Perez Masci. + Add ${dcc_userdir} sendmail.cf macro as suggested by Valentin Chopov. + This lets you use the full power of sendmail.cf rewrite rules + to control per-user whitelist and log directories. See the + dccm man page. + Make `dbclean -F` the default on Solaris systems with plenty of RAM + and automatically turn it off when there is not enough RAM to hold + the entire database. + +1.2.30 + Let `dccd -C` take arguments for dbclean, so that the following line + in dcc_conf works: + DCCD_ARGS="'-C$DCC_LIBEXEC/dbclean -F'" + Make pthread_detach() failures in dccifd non-fatal. + Add mechanism to cgi-bin/list-msg to whitelist-for-greylisting + (sender,IP-address,recipient) checksums. This mechanism + requires that the 1.2.30 versions of dccd and dccsight be + installed. + Change dccifd to record the message headers in the log file even when + the MTA fails to provide the message body. + +1.2.29 + FUZ2 checksums character entity references in URLs in HTML. + Insert checksums of greylist triples of whitelisted messages + into the greylist database. + If greylisting is turned on, then include greylist checksums in dccm and + dccifd log files even for whitelisted and blacklist messages. + Dccm and dccifd log some messages that are whitelisted for greylisting + or otherwise not currently embargoed but were in the past. + Change whiteclnt "log all-grey" and "log no-grey" options to + "option greylist-log-off" and "option greylist-log-on". + (Of course the old strings continue to work.) + Add whiteclnt option "option greylist-off" and "option greylist-on" + to control greylisting for greylistig for an individual user. + Note mail in SMTP transactions that involve other users for which + greylisting has not been turned off can still temporarily rejected. + Add "option log-all" log everything for an individual user. + The proof-of-concept CGI scripts handle the new whiteclnt options. + Fix false "many" from dccproc when switching DCC servers reported by + Rutger ter Borg. + Remove 1.2.28 change in the dccd "xx MByte window" message that + displayed the minimum of the physical file size and the mmap() window + size. The message now contains the mmap() window size.. + Fix `dccd -FG,` core dump reported by Aleksander Dzierzanowski. + Make "skip asking" in `cdcc info` output a comment as suggested by + Gunther Heintzen. + Speed up flooding among greylist servers. + +1.2.28 + Reduce the number of msync() system calls, significantly speeding up + dbclean and dccd on FreeBSD. + Fix "window" size computation for dccd and dbclean on systems with + more than 4 GByte of RAM. + Adjust flooding threshold for greylist dccd. + Changed the dccifd man page to say that dccifd looks at the first + Received: header for the sender's IP address if was not provided + by the dccifd client. + Remove the recommendation for whitelisting the Habeas Mark from the + sample dcc_conf file. + Detect bogus -G args reported by Aleksander Dzierzanowski. + +1.2.27 + Use fsync() and msync() on /var/dcc/flod.map in dccd to try to + get Linux to send the file to the disk. + Use setsockopt(SO_LINGER) to speed shutdown on FreeBSD. + +1.2.26 + Fix `dccd -F`. Adding -F to DBCLEAN_ARGS in /var/dcc/dcc_conf on + Solaris systems with enough RAM to hold most of the database + can make dbclean twice as fast and reduces its effects on other + processes. Addcing -F to DCCD_ARGS might have similar effects. + The use of MAP_NOSYNC on systems that support it including FreeBSD + reduces the effects of dccd on other processes. + +1.2.25 + Fiddle with /var/dcc/libexec/dcc-stats-graph. + Add `dccd -F` like `dbclean -F` + +1.2.24 + Generate /var/dcc/dcc_conf-new whether it is needed or not. + Add `dbclean -F` to work around Solaris performance bugs with large + files and mmap(). + Add `dccd -Gweak` to not require a retransmission of the same message + to end a greylist embargo. + Add option "no-reject" to the dccifd-MTA protocol to be similar to + `dccm -aIGNORE` for greylisting while ignoring DCC results. + +1.2.22 + Fix stray hostnames reported in dccifd log file headers observed by + Chris Mikkelson. + Fix empty dccm syslog complaints seen on Solaris. + Fix core-dump with bogus hostname in whiteclnt file observed by + Joe Ilacqua. + Updatedcc starts to shut down dccd early to avoid problems restarting + it on slow systems at the end. + +1.2.21 + Fix dbclean every 20 seconds possibly observed by Kelsey Cummings. + Stop frequent running of dbclean from dccd to clean up greylisting records. + +1.2.20 + Fix cdcc core dump with non-existent /var/dcc/map files. + Change updatedcc to not use "set -e" because some versions of + bash have tantrums if you unset a variable that is not set. + +1.2.19 + Fix "too many CIDR blocks" problem reported by John Doherty. + +1.2.18 + Fix infinite loop in dccm reported by Gary Mills. This error might + also have caused dccm to crash. It should affect dccd as well + as the DCC client programs. I introduced it in version 1.2.15. + +1.2.17 + Fix IP whitelist entries in DCC server databases broken in 1.2.15 and + 1.2.16. + +1.2.16 + Fix bug in libexec/updatedcc with blanks in CFLAGS reported by + Aaron Paetznick. This only fix uses of updatedcc after + 1.2.16 has been installed. + +1.2.15 + Ensure the mtime of /var/dcc/whiteclnt.dccw files changes to stop + endless reparsing on some Linux systems. + Resolve inconsistency in dccproc whitelist vs. -t many noted by + Dawn Endico by making whitelisting always produce an exit code of 0. + Put absolute path on cdcc in misc/stats-get as pointed out by + Kevin Gagel. + Make dccm and dccifd log file size configurable as suggested by + Furlan Campos. + Fix bug reported by Jim Carroll that kept mail from being rejected + when first sent to a spam. + Allow large CIDR blocks to be white- or blacklisted in whiteclnt files. + Fix dccifd -p bug reported by Christopher Bodenstein. + Fix "continue not asking greylist" log message that should be + "continue not asking DCC" reported by Jorg Bielak. + Fix ./configure script in dccproc tarball that was creating a bogus + RUNDIR value for dccifd. + Add `./configure --with-max-log-size=KB` as requested by Furlan Campos. + The proof of concept CGI scripts now + deal with per-user logs for user that receive enough spam that their + log directories have 20,000 entries. + support the per-user greylist log options for whiteclnt files + described in the dcc man page near the description of "include" + support locking of per-user whiteclnt files with a line of + "#webuser locked" + Fix output file data corruption bug reported by Chris Mikkelson. + Change default dccm greylist SMTP status code as suggested by Gary Mills. + +1.2.14 + Adjust homedir/make-dcc_conf for Solaris as suggested by Gary Mills. + +1.2.13 + Tweak libexec/updatedcc for Solaris. + +1.2.12 + Report checksums in greylist embargoed mail to a DCC server while + waiting for the embargo to expire. + Recognize more than 1 GByte of RAM on Solaris systems. + Fix bug in stats-get not counting queries pointed out by Yury Razbegin. + Change the default greylist -G "white" value from 30 to 63 days. + dccm and dccifd now include the greylist triple checksum in per-user + log files. + Fix bugs in dccifd C interface routine pointed out by Stephen Misel. + Fix dccd whitelist bug observed by Gary Mills. + Fix bug in 1.2.8 through 1.2.11 that stops flooding of brand new + reports of bulk mail that is not spam. + Automatically generate /var/dcc/dcc_conf-new from existing dcc_conf + to aid installation of greylisting. + +1.2.11 + Resume looking for native sendmail milter libraries on more than + FreeBSD. + +1.2.10 + Fix some compiler warnings on Solaris. + Fix "only 256 open files allowed" message from dccid on Solaris + reported by Turgut Kalfaoglu. + Use poll() instead of select() in dccifd if possible. + Fix error in libexec/start-dccd reported by Valentin Chopov. + Look for native sendmail milter and install man pages on + recent versions of NetBSD as suggested by Josef T. Burger. + +1.2.9 + Turn off database hash debugging accidentally turned on in 1.2.8. + +1.2.8 + Fix serious bug in resolving DCC server host names by dccm and dccifd. + Add "temporary" to default greylist rejection messages. + Fix greylisting of null messages. + Add misc/fetch-testmsg-whitelist + Improve compression/suppression of flooded checksums to reduce the + database size and bandwidth requirements 10-50% for DCC servers that + see fewer than 20K DCC ops/day. Tests have produced conflicting + results. The full effects are not seen unless flooding peers + install this version. + +1.2.7 + Fix greylist flooding problem reported by Valentin Chopov. + Add whitelists to greylist servers as requested by Bobby Rose. + Change `dccm -r` to also set the greylist rejection message and to + optionally interpolate the queue-ID and SMTP client IP address + as requested by Gary Mills. + Fix 1.2.x bug that treated all flooded checksums to a new database + as stale until a local checksum has been added and dbclean run. + +1.2.6 + Complete the fix for "badly signed NOP response" in the DCC server. + To be effective, the public DCC servers will need to use + version 1.2.6. + +1.2.5 + Fix "badly signed NOP response" bug diagnosed by Philipp Buehler and + Thorsten Janssen. + Turn off connect() on DCC client UDP sockets for Linux 5.2. + Use sysconf() on Solaris and Linux and sysctl() on BSD systems to + estimate the size of physical memory. This may reduce the need + for `./configure --with-db-memory=X` + Add `./configure --with-DCC-MD5` to use the MD5 code in the DCC source + instead of any local library. + Fix dblcean "repairing" the database because "was [it] not closed cleanly." + +1.2.4 + Fix core dump in creating X-DCC header as suggested by James Carlson. + Fix dccif.c for `./configure --disable-IPv6` and stats-get for + deleting /dev/null when interrupted as suggested by Yury Razbegin. + +1.2.3 + Fix leak in greylist server. + Improve some obscure error messages from dccd. + Address IPv6 problem on RedHat 5.2 reported by Darren Nickerson. + Check /proc/meminfo on Linux for hints on real memory size to + work around the Linux mmap() bugs and resulting dccd performance + problems as suggested by Dave Lugo. + +1.2.2 + Avoid `chown` in start-dccm and start-dccd. + Fix stop-dccd as noted by Michael Ghens. + Add greylist installation instructions to INSTALL.html and INSTALL.txt. + +1.2.1 + Fix typo in default map.txt noted by Michael Ghens. + Fix undetected hash table size overflow noted by Leandro Santi. + Fix "BRAND" error in start-dccd. + Fix inflation of target counts on greylisted messages. + Dccd is off in the default dcc_conf. + Reduce default greylist embargo to 4.5 minutes. + +1.2.0 + Many changes to support a form of Greylisting. + See http://projects.puremagic.com/greylisting/ + and the dccd and dccm man pages. Greylisting is probably not + ready for prime time in 1.2.0. + Change flod.map file format to allow `cdcc "flood stats 123"` to say + "not connected since" as suggested by by James Carlson. + Fix bogus "overwriting existing entry" error message noted by + Dallas Engelken. + As suggested by Leandro Santi, prevent false alarms about bogus packets + received by DCC clients. + Improve 24-hour averaging of client operations by dccd. + Fixes to dccd/rl.c from Leandro Santi. + +1.1.45 + Fix error in sample homedir/map.txt file. + Fix problem in starting flooding. + Fix error in misc/dcc-stats-init. + +1.1.44 + Fix core dump observed by Stephen Misel. + Suppress error message from rcDCC and start-dccm when dccm is not + installed as noted by Kevin Gagel. + +1.1.43 + Fix core dump reported by James Carlson. + +1.1.42 + Fix dbclean progress reporting bug noted by Vladimir Samoilov. + Improve misc/na-spam to catch another kind of quote leader. + Drop anonymous requests that would be delayed by more than the maximum + possible RTT. + Add application layer keepalives to flooding. + +1.1.41 + Sort IP addresses in `cdcc rtt`. + Improve response of the client code to broken servers. + +1.1.40 + Adjust client failure "fail_more()" backoff mechanism. + Add commas to misc/dcc.m4 as suggesed by Spike Ilacqua. + +1.1.39 + Fix missing changes to dcc.m4. + +1.1.38 + Fix `make install` file ownership as noted by Gary Mills. + +1.1.37 + Deal with certain obfuscating URLs. This change includes some + URLs in Fuz2 checksums and removes parts of some URLs from Fuz1 + checksums. This should reduce much of the need for the dubious + many hex FUZ2: 00000000 00000000 00000000 00000000 + whiteclnt entry. + Decode RFC 822 and MIME entity headers to control quoted-printable + and base64 decoding instead of the previous adaptive algorithm. + This also involves decoding nested MIME multipart messages. + A side effect of this is to change the checksums computed for + some mail. + Use poll() on Solaris to avoid failures from select() on large FDs. + Smuggle the Mail_From value to dccm with a ${dcc_mail_host} macro + so the mail_host checksum is valid despite sendmail smart relays. + This requires rebuilding sendmail.cf with the new dcc.m4. + Move part of the server-failing timer into /var/dcc/map so that + dccproc processes can share it. + Fix dccifd bug in handling detecting the end of headers reported + by Tim Clymo. + Fix `dccd -u` which was almost entirely broken. Extend `dccd -u` + to inflate the delay for busy anonymous clients. + Make server selection more stable despite network problems. + Fix some cases of false alarms of database corruption by dbclean. + This fix is important where dbclean complains about `repairing` the + database. + Clear dccd queue delay when the server is idle. This should help + dccd on BSD/OS after dbclean runs. + Avoid `chown` and `chgrp` with `configure --disable-sys-inst`. + Add `dccproc -x exitcode` as suggested by Paul Wright. + `cdcc clients` displays counts of NOPs to catch misconfigured firewalls + at clients. + +1.1.36 + Add optional DCCM_ENABLE and DCCD_ENABLE to /var/dcc/dcc_conf + Look for libmilter.a where it is in some versions of Linux. + Add "eval" to start-dccd, start-dccm, and start-dccifd when + not using a separate UID to allow quoted blanks in + `dccm -r "rejection messages"`. + +1.1.35 + Deal with name space pollution in Solaris as suggested by Isaac Saldana. + +1.1.34 + Fix libexec/dcc-stats-collect and libexec/stats-get as noted + by Valentin Chopov. + Adjust FUZ2 length thresholds to catch more HTML obfuscated spam. + Reduce some stalling of dccd on BSD/OS when dbclean starts. + Resolve conflict between start-dccifd and dccifd by making the default + location for the dccifd PID file the same as for the dccm file + Fix dccifd to remove stray X-DCC headers. + Fix start-dccifd to pay attention to DCCIFD_ARGS in dcc-conf. + +1.1.33 + Fix rare core-dump in dccd that more frequently corrupts the database. + Do not loop forever as the result of some database corruption. + Turn off by default dccd blacklist event tracing. + Increase the limit on the size of white-listed CIDR blocks from /24 to + /20 or 1024 IP addresses. Every IP address whether specified + separately or with a CIDR block requires a separate entry in a + client DCC whitelist hash table. The hash table is limited to + about 80K entries. + Add '-T' to misc/hackmc to trust or white-list mail authenticated + by SMTP AUTH or START TLS. + Server blacklisting suppresses "bad client or server-ID" error messages. + add /var/dcc/libexec/stats-get produce server statistics as noted by + Daniel Klein. + +1.1.32 + Do not count MIME content-type image bytes when deciding whether + to generate FUZ2 checksums. + Unlink dccm and dccifd PID files before trying to (re)create them. + Dccm watches milter "contexts" more closely for corruption. + Add an optional count to `cdcc clients`. + Dbclean tries harder to restore dccd flooding. + Initialize wtgts in dccproc as noted by Leandro Santi. + +1.1.31 + Fix core dump in ckfuz1.c noted by Gary Mills. + +1.1.30 + Allow blanks in MIME boundaries. + Possibly fix compiler "initialization type mismatch" warnings noted by + Gary Mills. + +1.1.29 + Fix dccm core dump in ckfuz1.c noted by Sven Willenberger. + +1.1.28 + Fix dccm core dump in dcc_ck_body0() noted by Valentin Chopov. + +1.1.27 + Add to HTML character references known by the Fuz2 checksums. + +1.1.25 + Notice "Content-Type: text/html" headers to pay attention to HTML + even in mail without <html> tags. + Tweak the Fuz2 checksum to ignore some Microsoft delivery notifications. + Adjust Fuz1 checksum to be more consistent on URLs. + Fix date bug reported by Krzysztof Snopek in `cdcc clients`. + Include an indication that the client was blacklisted in `cdcc clients`. + Change MIME decoding somewhat as suggested by Leandro Santi. + Fix bug in dccd client blacklist. + Add `dccm -g not-all`. + +1.1.24 + Add `cdcc "clients -s"` to sort by the number of requests. + Add /var/dcc/blacklist of blocks of IP addresses refused by dccd. + Remove -lpthread from $(DPADD) in dccm and dccifd Makefiles for Solaris + with gmake to try to deal with problem observed by Krzysztof Snopek. + +1.1.23 + Fix handling of & in the middle of words in HTML. + Change dccifd to respond with DCCIF_RESULT_REJECT or 'R' when + queried about spam. + Fix typo in detection of non-compiler on SunOS. + Add `./configure --disable-dccifd` as suggested by Krzysztof Snopek. + +1.1.22 + Fix inconsistencies in fuzzy checksums computed by dccm and dccproc. + More ./configure script changes to try to deal with problems on + a Solaris system with GCC and some undetermined oddities. + +1.1.21 + Suppress repeated messages about unauthorized server IDs of peers. + Install cdcc, dccproc, and so forth in $HOME/bin by default + if /usr/local/bin is not writable and $HOME/bin exists. + Fix infinite loop in decoding invalid HTML character references. + +1.1.20 + Fuzzy checksums ignore all text before initial MIME boundary and + after terminal MIME boundary. + Add support for Spanish thanks to Leandro Santi. + Shuffle hostname resolving code to try to fix what may be a race + in the Linux pthread_create() as discovered by Karl Grindley. + Reduce default value of `dbclean -e` from 7 to 2 days. Mail that does + not reach the local bulk threshold within 2 days is probably not + spam and if it is, it will almost certainly reach a bulk threshold + at some other server in the network. + +1.1.19 + fix missing env_From handling in dccifd/dccif.pl observed + by Nathan Neulinger + set mode of dccifd socket to 0666 as suggested by Nathan Neulinger + +1.1.18 + fix `dccproc -c` logging bug noted by Brad Volz. + fix ./configure to pick UID and GUID out of `id` with --disable-sys-inst + multiply the `dccd -u` delay by 4 when flooding is off or broken to + steer clients away from DCC servers without working links. + radically reduce the number of wsync() calls to speed systems with + lame mmap() support including BSD/OS 4.2. + fix setting of file descriptor limit in dccm and dccifd as noted + by Gary Mills + change configure script to deal with change in gmake version string + discovered by Aaron Paetznick + +1.1.17 + add DCC interface daemon, dccifd, similar to dccm for SpamAssassin and + Perl filters and MTAs other than sendmail. This is only an initial + release soliciting comments about its interface. Its interface + may change in 1.1.18. The new lines of homdir/dcc_conf must be + added to /var/dcc/dcc_conf to turn it on. + `dccm -a IGNORE` says "would have rejected" in the log messages + for Sven Willenberger + generate sample client-ID password for localhost server in /var/dcc/ids + and /var/dcc/map + dccd only complains about unknown server-IDs when "IDS" tracing is + turned on. + DCC clients check for new server DNS records every other hour + instead of every hour + compute the same Base64 result for 32-character lines with or without '\r' + close unlikely, theoretical per-user log file FD leak in dccm. + dccproc passes header lines (including continuations) longer than + 20 KBytes + fix bugs in misc/newwebuser as noted by Furlan Campos. + dccm deletes all X-DCC headers of the right brand name to foil + tricky spammers. + dccproc defaults the -T tmpdir to the -l logdir + +1.1.16 + fix long HELO values in dccm from Leandro Santi. + fix /var/dcc ownership installation bugs noted by John Reames. + let count of clients seen within 24 hours be more than 1000. + change misc/na-spam, the news.admin.net-abuse.sightings gateway script + to use dccproc log files instead of generating its own. + don't allow ':' in DCC server "brandnames". + recover misplaced change to misc/dcc.m4 to fix need to use + FEATURE(`delay_checks') + fix apparently harmless quoting error in dcc.m4 + fix `cdcc "flood stats all"` when the server's peers are not ordered + by their IDs. + decode Base64 with invalidly long lines. + +1.1.15 + change graph generating shell scripts, including making the + database size RRA use "MIN" instead of "MAX". A shell script + that can convert existing RRDs is available. + make `misc/hackmc -O` apply to all uses of the sendmail access DB + instead of only the envelope Mail_From value. + +1.1.14 + tweak graph generating shell scripts. + add `cdcc "flood stats all"` and `cdcc "flood stats clear all"` + +1.1.13 + tweak graph generating shell scripts including fixes from Jack Bates. + adjust autoconf mechanism to try to deal with systems with inet_ntop() + but without IPv6. + +1.1.12 + move dccd statistics to the flod.map so they're preserved despite + restarting dccd. + add shell scripts to generate RRD graphs. + make rate-limits run-time parameters for `dccd -R`. + +1.1.11 + fix dccm bugs with handling a non-responsive server. + change misc/hackmc to modify sendmail.cf to reject unauthorized relay + attempts with a temporary failure when they are supposed to be sent + to the DCC but dccm is not running. This prevents leaking relay + relay spam. You must use the new hackmc script to install this + change in sendmail.cf. + remove "# whitelisted" from `cdcc stats` output to give more room + for totals. + prevent empty dccproc log files as noted by Krzysztof Snopek. + even fatal errors should cause dccproc to exit with 0 to avoid + rejecting mail, as noted by Krzysztof Snopek. + When server hostnames have common IP addresses, prefer the server + with the non-anonymous client-ID, noted by Krzysztof Snopek. + +1.1.10 + try to deal with truncated per-user dccm logs on Solaris. + reduce threshold at which Fuz2 checksums are computed to capture + more spam. + force the use of gcc on Solaris. + try not to wait for the syslog console messages to resolve a dccm + crash on Solaris. + +1.1.9 + make `cdcc "flood list"` unpriviledged, but disclose only server-IDs + to strangers. + +1.1.8 + fix "invalid database address" problems on SPARC systems with + ./configure ----enable-big-db + %-encode quotes in URLs generated by the CGI scripts. + fix `cdcc "id=X"` for X>65535. + increase path length limit to 24. + add `dblist -I server-ID`. + +1.1.7 + fix man page installation on AIX. + work around connect() bugs on AIX41 and OpenUNIX. + +1.1.6 + fix encoding of quote characters in the CGI scripts + look for sendmail 8.12.1 libsm.a that is required by that version of + the Milter code. + make the configure script again find the FreeBSD MD5 library. + +1.1.5 + fix bugs in white-list links in the CGI scripts. + increase 8-hop flooding path limit to 16. + changes from Mark Moraes to compile dccproc under Cygwin on Windows 2000 + the DCC source compiles on OpenUNIX 8.0.1 thanks to Larry Rosenman. + reduce the chances of duplicate or missing entries in the list + from `cdcc clients` as suggested by Dave Lugo. + add `dblist -C` to limit the listing to reports with specified checksums + as suggested by Sam Leffler. + `dccm -r "4xx ..." now produces a proper SMTP "temporary failure". + deal with /usr/include/md5.h that seems to be RedHat 7.3 but that does + not compile by itself. + +1.1.4 + fix dccproc and dccm tarballs broken in 1.1.3. + +1.1.3 + add a "VERSION:" string to the start of dccm and dccproc log files. + fix memory leak in dccm observed by Gary Mills. + fix core-dump in dccd with unreadable /var/dcc/flod noted by Sam Leffler. + add prototype CGI scripts for per-user white lists. + rate limit and improve log messages about read-only whiteclnt files. + allow null passwords for server-IDs in /var/dcc/ids that are used only + as markers so that no DCC server is accidentally started with the + password "unknown" + install initial /var/dcc/map file using dcc.dcc-servers.net + install empty server database as suggested by Andrew Macpherson. + create /var/dcc/log during installation. + adjust the `dccd -u` default to minimize rejecting DCC queries from + nearby anonymous clients. + convert upper to lower case in dccm per-user white list directories as + suggested by Andrew Macpherson. + allow null passwords as place-keepers in /var/dcc/ids. + rebuild gmake .d depend files when include/dcc_config.h changes so + that bad things don't happen when a header file disappears and + the configuration changes to match. + fix "log-del" option in /var/dcc/flod to log checksum delete requests. + add "del" and "no-log-del" options to /var/dcc/flod lines. + change the defaults for flooding delete requests to log them ("log-del"), + not send them ("no-del" among o-opts) and + reject them ("no-del" among i-opts). + change misc/hackmc to be usable in typical Makefiles that generate + .mc files. It now feeds a single set of .mc files to m4 + to produce a single .cf file on stdout instead of a set of .mc files. + It also no longer includes ../m4/cf.m4 + use native sendmail milter libraries on FreeBSD 4.6 + IDs in /var/dcc/ids can be placeholders without passwords + +1.1.2 + fix `dccm -W`. + the recipient mailbox resolved by sendmail can be used as an white list + value by dccm. This simplifies white-listing when the system + has more than one name. + +1.1.1. + add -follow to cron-dccd in case user log directories are beyond + symbolic links. + fix "resource temporarily unavailable" message from dccproc + reported by Henrik Lewander. + fix `dccm -W` problem in 1.1.0 reported by Mark Motley. + +1.1.0 + "substitute" whitelist header entries must start with the name of + the header. This is incompatible with previous versions. + remove `dccm -a REJECT_ONLY` + add per-user whitelists and logs to dccm. See `dccm -U`. Use the + DCCM_USERDIRS variable in the new homedir/dcc_conf file to turn on. + To generate per-user log files without leaking informatio about + Bcc addresses, the format of all log files has changed slightly. + Look for "bulk" in the X-DCC line instead of the final "targets" line. + add `dccproc -E` to add dccm log file style envelope lines to log files. + fix cleaning of hourly DCC log files as suggested by Gary Mills. + X-DCC header lines contain the string "bulk" when the message is bulky. + add the "mail_host" as a possible "subsitute header" for dccm. + several of the mailing lists in the sample white list now require that + dccproc or dccm use `-S sender` or dccm use `-S mail_host`. + This removes hostnames from the sample whitelist, because they + can take a long time to resolve or fail to resolve. + change env_To: lines in dccm log files to include the sendmail "mailer" + and address. Also add the resolved "mail_addr" and "mail_host" + to dccm log files. + allow common dccproc white list files owned by the DCC user to be in + subdirectories of the DCC home directory instead of only the + DCC home directory. + use Rgethostbyname() in clients only when `cdcc SOCKS on` is sent + and in the server only for flooding peers that are flagged with + "SOCKS" in /var/dcc/flod. + use gethostid() and hash the local host name instead of gethostbyname() + to generate the DCC client host ID + consider an entire report of checksums obsolete if the fuzziest checksum + is obsolete for dbclean or flooding. This reduces the database + size and flooding bandwidth by another factor of 2. + fix `./configure --mandir=/tmp/foo` to put the man pages into + /tmp/foo/man8/dccm.8 and similar places on other systems instead + of /tmp/foo8/dccm.8 as suggested by Michael Grant. + add `configure --disable-sys-install` to simplify and make a non-system + installation (e.g. by a user with a shell account) safer (no suid). + stop frequent complaints about bad flooding passwords in most cases. + +1.0.53 + fix bug in fuzzy checksums that was not handling long Base64 lines. + increase the thresholds for computing the Body and Fuz2 checksums + and decrease the threshold for the Fuz1 checksum. + limit work-around for broken Linux threads that need signals delivered + to the process group to Linux systems to avoid breaking dccm + on Solaris 2.6 systems. + add `cdccc "flood stats ID". Part of this involves a change + to format of the flod.map file. It will be automatically rebuilt. + fix `cdcc clients` and `cdcc stats` operations to do better with more + than 64 active clients. + fix core-dump in dccd found by James Carlson. + use Rgethostbyname() when SOCKS is configured. + fix private (not owned by the dcc user) whitelist files for dccproc. + notice and report missing incoming flood connections. + detect and complain about duplicate definitions in /var/dcc/ids + +1.0.52 + fix bug in dbclean that was inflating instead of compressing some + reports. + fix spurious emergency execution of dbclean by dccd. + deal with missing h_nerr and h_errlist[] in Solaris 2.6 as + suggested by Gary Mills. + fix use of old $DCCM_RUNDIR in rcDCC as suggested by Gary Mills. + fix extra blank in dcc.m4 as suggested by Gary Mills. + generate dcc.m4 with the local choice for /var/dcc/run with configure. + use dcc_inet_ntop() on systems that do not understand IPv6 to fix + a problem on Solaris 2.6 discovered by Gary Mills. + +1.0.51 + fix man pages on FreeBSD. + fix file descriptor leak in dccd when using SOCKS. + `cdcc "flood check"` forces dccd to re-resolve hostnames for flooding + peers that are failing. + +1.0.50 + Improve automatic dbclean-ing by dccd. + +1.0.49 + Check the log directory for dccproc and dccm after changing to the + home directory. + +1.0.48 + Split old records in the database so they compress better. + Reduce bandwidth required for flooding by summarizing checksum counts. + Fix configure in the partial packages, dcc-dccm-*.tar.Z and + dcc-dccproc-*.tar.Z + Fix `dccd -K no-IP`. + Fix error messages for `dccproc -c type,thold` and add "never" as in + `dccproc -c all,never` + Fix yet another bug in dcc_mkstemp(). + Add "NEVER" to -c for dccproc and -t for dccm. + Enhance `dccm -l logdir` and `dccproc -l logdir` to scatter log files + among directories for systems dealing with more than 500,000 + mail messages per day. + Dccm log files are now named "tmp.XXXXXX" until it is known that they + are needed and they are renamed to msg.XXXXXX or they are deleted. + +1.0.47 + Make "-n brand" optional for dccd. + decode Base64 before computing checksums. + remove `cdcc pck` and `cdcc delck body` operations. + add configure parameter --with-bad-locks to deal with Solaris mmap() + vs. fcntl() locking problems. + Dccm and dccproc shold keep only the last of several locally specified + header checksums. + Because people have been confused by env_To checksums being ignored + in server whitelists, they are now reported as errors. + +1.0.46 + Fix garbage in dccm log file names. + When run as root, dbclean avoids changing the owner of the database files. + Add logging to dccproc in the style of dccm. + Accept hex checksums to allow whitelisting message bodies, and especially + "empty" bodies contianing more than 1 KBytes generated by + Outlook Express. + Improve compression of old entries in the database. + Add checking of "substitute" headers. See -S in the dccm and dccproc + man pages. + +1.0.45 + Repair incoming flood duplicate detection broken in 1.0.44. + +1.0.44 + Dccd now tries to fix the database when it starts + dccd also marks the database potentially inconsistent while it + is running and until it stops cleanly. Graceless shutdowns + are now detected and the database is automatically checked with + `dbclean -R` before dccd resumes operation. + Add Fuz2 checksums to the default lists along with Fuz1 and Body + By default, dccd does not keep non-body checksums in the database. + The previous behavior can be restored with -Kall. + Double the maximum size of the database's hash table + Teach dccd to run dbclean to expire checksums so things work even + if the cron job doesn't + Misc/hackmc -D adds a local rule to reject mail from SMPT clients + without reverse DNS to the DCC + Suppress messages from dccd for EINVAL the second connect(). + This is lame, but both FreeBSD and Linux answer the second connect() + on a non-blocking socket after an ICMP Unreachable or timeout + with EINVAL. + Speed up dbclean for large databases + It is only about 2.5 times faster on linux 2.2.14-5.0 + Large systems handling more than 200,000 messages/day should + use --with-db-memory=500000000 or whatever is the appropriate number. + This change combined with the -K changes mentioned above produce + an overall speed-up of about 10 times for busy, not large systems. + Add configure parameter --enable-big-db to support server databases + with up to 2 billion instead of 16 million entries in the hash table + Fix problem with env_To white-listing reported by Mark Motley + Add -H to dccproc to emit only the header + Fix dccd to pass -L parameters to dbclean so that log messages from + automatic invocations of dbclean are not lost + + +1.0.43 + add prototype Fuz2 fuzzy body checksum and remove the subject checksum + See INSTALL.{html,txt} about DCC_RPT_SUBJECT if you want to + restore Subject checksums in in you DCC clients. + fix SOCKS connection and re-connection of flood stream. + add -c thresholds to dccproc and make its exit code indicate whether + they are exceeded. This should eliminate common needs to parse + the output of dccproc. + fix dccd iflod_send_pos() core-dump seen during very high network losses + to flooding peer. + deal with Linux bug in not allowing connect() after a previous + connect() to 127.1. + fix dccm core-dump on some platforms when whitelist hostnames fail to + resolve. + deal with Linux `bash` vs. `su` + handle duplicate local interfaces on Linux + make `cdcd "flood rewind"` require a remote server-ID + +1.0.42 + fix dccm crash while dealing with white list. + +1.0.41 + fix bug introduced in 1.0.37 that broke `cdcc add` + include truncated getifaddrs() for systems that do not have it to improve + the default behavior of dccd with multihoming. + fixes for syntax errors in misc/{rcDCC,stop-dccd} from Michael Ghens + make `dccm -W` less confusing. + change hackmc to report mail with bogus DNS senders to the DCC + +1.0.40 + fix for syntax error in /var/dcc/libexec/cron-dccd from Dave Lugo + deal with slow dccd response to dbclean + +1.0.39 + keep dccd from going crazy with a crazy value for -q + +1.0.38 + fix dccd core dump with Dave Lugo's help. + improve dccd host name resolving helper process. + improve misc/na-spam. + `cdcc 'stats clear'` now also clears the list of clients seen by dccd. + add a path of server-IDs to flooded checksum reports. + increase the number of checksums recognized by the server. + fix pthread error on SunOS and possibly AIX. + use absolute path for `cdcc` in /var/dcc/libexec/stop-dccd as suggested + by Sam Leffler. + improve fuzzy ignoring of MIME multipart boundaries. + + +1.0.37 + deal with lack of -s in SunOS `logger`. + dccd now has a helper process to wait for slow DNS servers to resolve + the names of flooding peers. + Deleting and restarting the DCC server's database now causes dccd to + ask peers to re-flood their checksums. This new feature required + changing the flooding protocol. DCC servers using the new protocol + talk to servers using the old protocol after the old servers start + their streams or with an explicit tag in the /var/dcc/flod file. + `sendmail -bs` is used by some mail user agents such as pine. In such + cases the sendmail milter interface gives filters such as dccm a null + pointer to what should be an IP address and a pointer to the + string "localhost". Dccm now acts as if such mail arrived from + IP address 127.1. This makes the common white list entry + "ok IP localhost" effective for such mail. Note that dccm deletes + X-DCC header lines with its own brand from white listed messages, + because they would otherwise be wrong and a potential vulnerability + to bad guys. + Fix `dccproc -o ofile` to include the X-DCC header in ofile. If this fix + is a problem, see `dccproc -C` + add /var/dcc/libexec/na-spam and ng-spam to gather spam from + news.admin.net-abuse.sightings + fix start-dccd, start-dccm, and cron-dccd to support multiple dccd + daemons in separate home directories. + +1.0.36 + support for OSF1. + handle msync() with only two parameters in old BSD/OS. + try to fix rare core-dump in dccm whitelist parsing. + fix error in misc/dccdnsbl.m4 noted by Michael Ghens. + fix autoconf errors for SunOS noted by Sam Leffler + add "log-del" option to /var/dcc/flod file + fix recent damage to DCC{D,M}_ARGS in start_dcc{d,m} + +1.0.35 + add DCC_LOG_FACILITY to dcc_conf as suggested by Sam Leffler. + You must install the new homedir/dcc_conf with your parameters + to use it. + fix recently introduced bug that kept dccd from automatically + running dbclean to expand the database. + document the output of the dblist program in its man page. + `configure --with-rundir` can be used to override the use of /var/run/dcc + for the PIDs of DCC daemons, sockets, and so forth. + `configure --with-uid=dcc` creates Makefiles and scripts to install + and start DCC programs as the user "dcc" + + +1.0.34 + support for IRIX + fix bug in setting libexecdir for configure + change `cdcc stats` to show cumulative report counts + increase maximum number of flooding peers from 16 to 32 + and make it a compile-time parameter + change $UID in misc/start-dcc{d,m} to the avoid reserved variable in + RedHat 6.2 as suggested by Michael Ghens + fix bug in cron-dccd found by Michael Ghens and Dave Lugo + remove mechanism for configuring the DCC home directory by setting + an environment variable before invoking `make` + change the default value of the -u anon-delay parameter for dccd to 0. + add "flood list" operation to `cdcc` + look for sendmail for dccm in a FreeBSD "ports" package + +1.0.33 + support for HPUX thanks to Richard Rauenzahn. + check against "$USER" instead of "root" in start-dccm and start-dccd + as suggested by Luke Crawford. + make the server rate limits configurable at compile-time. + +1.0.32 + fix bug in local white lists that ignored changes in the count field + by default, start-dccm no longer tells dccm to reject based on + message-ID checksums + fix recently introduced bug that kept flooding off after the + hash table needs to be expanded. + +1.0.31 + add SOCKS support. + dccproc only logs errors unless given -d. This should fix problems + in some mail systems using dccproc caused by network problems. + fix permissions bugs related to using private map files + the dcc_notspam sendmail macro used by dccm with -o must be non-empty + to be considered "set". + +1.0.30 + fix man page installation on OpenBSD. + fix bug in starting incoming floods on systems with IPv6 interfaces + but without what DCC recognizes as IPv6 support such as OpenBSD. + deal with systems such as OpenBSD with lame mmap() support. + speed up recognition of changes in the /var/dcc/flod file. + use DCCM_REJECT_AT in /var/dcc/dcc_conf to also set the default + flooding threshold used by dccd when it is started by + /var/dcc/libexec/start-dccd + add configure switches to not build dccm and the server + `dccd -u` turns off `cdcc stats` from anonymous systems to avoid telling + strangers how many mail messages a small DCC server has seen. + +1.0.29 + fix start-dccd to deal better with non-standard DCC home directories. + dccproc is now like dccm and treats a missing Message-ID header. + as if it were present and with a null value. + do the right thing for DCC servers running on platforms where + gethostname() fails completely on a short buffer instead of + giving a prefix of the hostname. + detect and quit on null hostname from gethostname(). + +1.0.28 + improve the handling of an already running daemon in by misc/start-dccd + support mapping of ranges of server IDs when flooding reports + yet more changes to deal with quoted-printable. These changes + generally cause the fuz1 checksum to differ. + remove need for FEATURE(delay_checks) when reporting sendmail access_db + hits to DCC server + change body checksum to ignore '>' in "\n>From" because the '>' is + often added for old UNIX MUAs. + improve response of dccproc to 20KByte or larger To: headers. + make `cdcc "file map2; load map2.txt"` act the same as + `printf "file map2\nload map2.txt" | cdcc` + dccm now treats a missing Message-ID header as if it existed but with + a null value. + +1.0.27 + change example scripts to deal with `expr` exiting with 1 and stopping + them on Solaris + fix client IDs larger than 65535 + detect and complain server IDs offered to `cdcc` as client IDs + +1.0.26 + if dccm is already installed, try to build it even if the sendmail + milter library is not available to prevent silent failures to + install new versions of dccm. + +1.0.25 + fix confusion if a quoted-printable sequence overlaps a buffer boundary. + do not give up on remote servers if a local server responds with + an ICMP unreachable error. + +1.0.24 + minimize interpreting '=' in a URL as quoted-printable to make dccproc + and dccm compute the same fuzzy checksums more often. + +1.0.23 + fix confusion in dccproc about whether an initial line of a message + that starts with blanks is a continuation of the last header line + +1.0.22 + fix infinite loop and packet spew from dccproc when the clock jumps + backward or jumps forward more than 1000 seconds. + fix syslog process name on Solaris and AIX + `dccproc -R` picks IP address out of standard Received: lines + fix bugs in decoding quoted printable with broken soft ends of lines + +1.0.21 + repair DCC server whitelist broken in 1.0.20 + +1.0.20 + support for Solaris + describe ways to connect spam traps to the DCC in INSTALL.html + move parameters from start-dccd, start-dccm, and cron-dccd to a common file + add misc/rcDCC start-up script for Solaris and Linux + fix byte-order bug in flood header server ID which requires changing + the flood protocol. To flood to version 1.0.19 or older versions + of dccd, specifiy version 4 in the flod file line. + removed locking file /var/dcc/map.lock + change handling of spam sent simultaneously to white-listed and unlisted + targets. See the discussion of the new "REJECT_ONLY" action in the + dccm man page. + +1.0.19 + improve `cdcc stats` flood formatting + fix `cdcc "host domain.com; stats all"` + change dccproc to use the value of the Return-Path: header for the + envelope-From checksum if the header is present and -f is not used. + fix `dbclean -S -N` when the whitelist is empty + add rough support for NetBSD. + mention dccd in the INSTALL file. + fix for parsing "-L error,LOCAL1.ERR" from Vincent Schonau + +1.0.18 + add "clients -n" to cdcc + add -C to dccproc + +1.0.17 + add dccsight + +1.0.16 + try again to deal with getifaddrs() without freeifaddrs(). + fix bug introduced in 1.0.15 that causes dccproc to require + a white-list + fix corruption of /var/dcc/map when dccproc is run with stderr not + open and when the DCC server first fails to answer. + +1.0.15 + make the sendmail {dcc_isspam} and {dcc_notspam} macros consistently + override what dccm and the DCC server determine + +1.0.14 + deal with systems that have getifaddrs() but not freeifaddrs(). + fix bogus response from server when a duplicate request from an + anonymous client arrives before the original request has been + scheduled to be answered. + fix obscure double-trip bug in threaded client library. + accept "rpt-ok" as well as "rpt_ok" in the ids file. + fix /var/dcc/flod option scanning bug by dccd. + 'dccd -u 999999' turns off access by anonymous or unauthenticated clients. + add -W to dccm to cause only explicitly listed targets to be protected + by the DCC + add a "reject" server-ID translation target in the flods file to + not send or receive the reports of some servers. + +1.0.13 + add RTT adjustment to cdcc load and add operations to allow a client + to prefer servers despite worse RTT's + +1.0.12 + in dccm count two intead of one open file for each active job against + the system imposed limit on open files for automatically setting + the value of -j for dccm and for automatically changing the soft + resource limit. + use the GNU autoconfig install script instead of `install -d` to create + $(HOMEDIR)/libexec because GNU autoconfig does not detect install + programs that do not understand -d + rate limit complaints by dccd about unrecognized server IDs + +1.0.11 + dccm tolerates null sender IP addres and hostname from `sendmail -bs` + from sendmail 8.11.3 but perhaps not from 8.12. + change -p for dccd and dbclean to -a to allow specification of entire + server addresses. + by default, dccd listens on separate UDP sockets so that clients receive + responses from the same IP address to which they send requests. + +1.0.10 + fix "bogus oflod complaint length 0" nonsense from server + `cdcc stats` counts the clients seen in the last 24 hours, but + `cdcc clients` displays all that fit in the cdcc buffer even if + older than 24 hours + the `configure` script looks at `make -v` to guess whether to generate + gmake or make makefiles + include list of common "dictionary attack" user names among the sample + homedir files + +1.0.9 + body checksums ignore effects of quoted-printable encoding + deal with versions of gmake that do not understand ?= + improve "clients" request of cdcc + +1.0.8 + fix rate limiting bugs in the server + fix local env-To whitelist + +1.0.7 + fix locking bug when client whitelist file cannot be opened + use `install -c` to not delete misc scripts + fix server flood stalls when there are many stale or whitelisted + reports + +1.0.6 + fix bug in alternate dccm argv[0] in start-dccm + fix bug in noticing changes to included white lists + +1.0.5 + install cron-dccd, start-dccd, and start-dccm in $(HOMEDIR)/libexec + +1.0.4 + fix server core-dump for repeated invalid admin. opcodes while + tracing is enabled. + add "clients" request to `cdcc` + add "stats all" request to `cdc + add homedir/start-dccm.sh + /var/run/dccm.pid and /var/run/dccm depend on argv[0] + white-lists can use "include pathname" + dccm -o overrides -s + dccm -o and -s have default values + move /var/run/dccm and /var/run/dccm.pid to the directory /var/run/dcc + and change the sendmail "feature" file misc/dcc.m4 to match + +1.0.3 + improve flood ID mapping + remove need to explicitly build before `make install`