== released 20020501 ======================================================== Added support for the new $altz convention in filter_messageid. Added two new features: block_user_spamcancels (enabled by default) rejects cancels with X-Trace or NNTP-Posting-Host headers, block_user_cancels (disabled by default) allows spam cancels only. The check for uuencoded txt/html/exe/url files now operates on articles up to 2000 lines long (was: 350). Added a check for misplaced yencoded binaries. max_encoded_lines is ignored. Added Vespice/James Parks rougue sites to bad_paths. bin_allowed now contains ^\w+\.binae?r instead of \.binae?r . Added unidata.* to bin_allowed. Added alt.config to no_cancel_groups. Fixed a bug which broke no_cancel_groups. == released 20011031 ======================================================== Fixed a bug which prevented recognition of short uuencoded text/html/exe files in articles with CR at the end of lines. Fixed logging on highwind platforms and rearranged rotate_log() internals. Added check for "NNTP Monitor" to cleanfeed.local-sample. Added ddt.demos.su to phl_exempt. == released 20010805 ========================================================= IMPORTANT BUG FIX: a regular expression was not anchored and the filter rejected ALL newgroup and rmgroup messages for groups containing the strings comp|misc|news|rec|soc|sci|humanities|talk. Addedd support for NNTP-Posting-Host headers with multiple elements. All space-separated elements are now checked against the bad_hosts file. == released 20010801 ========================================================= IMPORTANT: the old MD5.pm compatibility interface is not distributed anymore with the modern Digest::MD5 module. If you installed the very old MD5 perl module instead of Digest::MD5 you will have to install Digest::MD5 to use this version of cleanfeed. Fixed a bug which killed cleanfeed after disabling a rate filter when do_emp_dump is active. Default configuration changes: the parameters emp_dump_file, active_file and statfile do not have a default anymore and the debug_batch_size default has been changed to 0. Added the string "window.open(" to the scoring filter. Removed these config options: phl_moderated_groups do_bot_checks check_supersedes_path drop_control_with_supersedes. Updated adult_groups and phl_exempt. Removed obsolete entries from bad_cancel_paths. Removed unneeded -w from the perl command line in highwind.pl. Added a cleanfeed.local.sample-it which Italian sites can use as-is. It's also good for sites looking for a typical minimal cleanfeed.local. Minor changes to cleanfeed.local.sample. == released 20010715 ========================================================= User visible changes ==================== Removed the $SERVER variable, now the user only has to set $MODE. Actually it's set automatically, so there is no mandatory configuration. Support for highwind servers moved to highwind.pl. Removed "reportfile" support. Merged cleanfeed.conf in cleanfeed.local, removed support for reading a cleanfeed.conf file. Splitted $config{block_multi_alt} from $config{block_html}. Removed these obsolete checks: Happy99 virus, Virus Patrol bot, "Sexzilla newgroup message", QP bot, "HipCrime" string in From or Organization header of cancels, "Cabal" or "Meow" strings in some control messages. Removed the $bad_sites checks, for which I have no data anyway. Short uuencoded .exe files are now deleted by default along with the usual txt, html and url extensions. Changed some default values from 0 to 1: fuzzy_md5, do_mid_filter, block_html. Added alt.snuh and alt.fan.natasha to the low_xpost_groups. Added fido.* and linux.* to bin_allowed. Added freebsd.csie.nctu.edu.tw to phl_exempt. Removed from phl_exempt some hosts which do not exist anymore. Added checks for the following bots: usenet replayer, express news poster, Smart Post Pro, Message-ID/X-Mailer bot, Path/Newsgroups bot, Path/From/Message-ID bot (unknown names). Removed from supersedes_exempt all hosts except penguin-lust.mit.edu, which appears to be the only one still active. Removed the exceptions for nl-cancel@*xs4all.nl and lendl@*, which are not needed anymore. Add nl.internet.misbruik.rapport to spam_report_groups. Removed net_abuse_groups, which has no apparent use. Added a check for things like [999/7] in the Subject header. Added checks for the most simple NewsAgent attacks. Added code to discard unneeded reposts, inspired by the Barry Bouwsma's qleanpheed. Added a scoring rule for embedded LiveScript. Added a check for unwanted NNTP-Posting-Host sites, read from an external configuration file ($config_dir/bad_nph). Added a global list of poisoned path entries ($config_dir/bad_paths) and one for sex groups ($config_dir/bad_adult_paths). Entries are also matched against the last Path entry (the pseudo username). $config{bad_cancel_paths} has been moved to a config file. The entries are not checked against the NNTP-Posting-Host anymore. New config options: adult_groups not_adult_groups faq_groups. Removed the sreason log option. Big changes in the local_*() functions, check HACKING. Implementation changes ====================== Reformatted the code to follow perlstyle(1p). Added slog() function implementing syslogging. Converted the more complex regular expressions to use the //x modifier. Removed writeheaders() and writefull() in favour of saveart(). Fixed division by zero error in timer_stats(), added protection against pathological input to is_binary(). Added a new section of filter_art() with checks common to both control messages and regular articles. Added some new functions read_hash(), read_regex() and read_file() to initialize some variables with the contents of a text file. Added local_filter_reject(). Munge the body with s/\s+$// instead of s/(\r?\n)\s+$/$1/, which is (marginally) faster and should be as effective as the old expression. Add one scoring point to articles with at least one \r. Added a check for INN::newsgroup in every place the existence of $config{active_file} was checked.