New: FindAttachment module can be configured to run on all messages, including outbound or unscanned ones.
New: Added support for SSL certificate chain in https connections (General configuration page).
Fixed: PolluStop does not whitelist/blacklist addresses containing an equal sign
New: Upgraded core to OpenSSL 1.0.1g
New: Return-Path is passed to the Regex module as if it has already been prepended to the message by CGP
New: Support for mslc mailboxes during initial training
Fixed(v2.5): Folded header lines are not consulted during regex matching
Fixed(v2.12.2): First scanned message after startup may (50% chance) incorrectly be detected as having a ridiculously long (decoded) line
Fixed(v2.12.2): PolluStop is prone to enter in a decoding endless loop upon receiving a recent type of spam
Fixed(v2.12.2): Warning message formatting
Fixed: index page may appear for a user with no extra right.
New: Messages with a (decoded) line over 16k characters long will be automatically classified as spam.
Performance enhancement in the token parser, especially for long lines.
Brought back compatibility with Windows 2003/XP
Minor threading enhancements (removed dependency to GetThreadId on Windows, mostly code cleanup on other platforms)
New: Setting to imply subdomains in top-level domains whitelist (whitelisting example.com implies abc.de.example.com)
New: Setting to change whitelist/blacklist evaluation order, to allow the user blacklist to take priority over a global whitelist
New: On cluster setups, cluster router data is read too
New: The recount of CGP accounts by PolluStop will only be allowed between 2am and 5am and will not happen daily anymore.
New multi-threaded directory search code to decrease startup time
Fixed: Router table parser doesn't allow apostrophe in email entries
Fixed: Some broken entries are impossible to delete from the Whitelist and Blacklist
Fixed: Whitelist and blacklist sorting doesn't work.
Fixed: Domain sort order is incorrect
Fixed: "(missing)" and "list" broken entries can be added automatically to the whitelist.
Dropped support for solaris-sparc and osx-powerpc
Now built using c++11-compliant compilers and primitives
Minor code changes for internal standards compliance.
Possibly fixed: Rare daily reports duplicates
New: Outbound scores are available in the log when log_scoringvalues is enabled
New: The number of entries shown in the whitelist (user page) is limited to 5000. A warning about possibly compromised account appears if the number is over 5000.
Fixed: Forward-training option is controlled by the wrong setting
Fixed: CLI options appear on login page when it's first accessed after every filter restart
Fixed: Monitor Outbound flag is not saved
New: Upgraded code to OpenSSL 1.0.1e
Fixed: Possible crash when restarting the HTTPd listener
New: Upgraded code to sqlite 3.7.16 and implemented blocking cursors.
Fixed: List-IDs whitelisting
Fixed: Improbable but possible exception due to unhandled non-blocking database code
Fixed: Improbable but possible crash on concurrent initialization of the internal time structures
Fixed: Mousewheel scrolling in whitelist and blacklist
Fixed (v2.5): Possible endless loop in the message parser
Fixed: Admins may get disconnected from the web interface after saving settings
New: Internal timeouts on HTTP sessions
Fixed: The remote command server does not close existing connections when PolluStop receives QUIT from CGP
Fixed: Threadpool workers may sleep too long
Fixed a possible crash caused by an unhandled buffer overflow test
The CLI connection used to route accounts is now persistent too.
Fixed a possible crash when opening the database page on large servers
New: Ability to clear a whitelist or a blacklist in two clicks.
New: The httpd daemon now allows static files to be cached by the browser
New: The CLI connection used by PolluStop http daemon to communicate with CGP is persistent instead of being short-lived
New: Implemented a real, much better and efficient threadpool worker with synchronized queue.
On Windows, replaced kernel-mode Mutex object by user-mode Critical Sections
New: Messages sent from and to local accounts are not counted towards outbound monitoring by default.
Fixed: Minor internal discrepancies, minor code cleanup, minor text changes in setup pages
Disabled the mutex pool code to help troubleshooting synchronization problems. PolluStop does not create many mutexes after startup so the mutex pool does not offer any performance boost.
New: Setting to include "sent-to" addresses in the global whitelist
New: Domain lists are collapsed in all webadmin pages if there's more than 10 domains, to ease navigation.
Partially reimplemented the "Message-ID History" feature to remember known conversations, used when the reply to an email doesn't come from the address it has been sent to.
Fixed: Harmless js error on the login page in https mode
Fixed: "Check more than Return-Path" didn't trigger internally at all for a while
Fixed: External "Sent-To" addresses are not whitelisted when there's a local CC.
Fixed: Mousewheel event propagation is not allowed to propagate to objects behid the white/blacklist table
Fixed: Unable to login to the web interface if 127.0.0.1 is assigned to a secondary domain in CGP
New: The login error message is now more explicit in case of misconfiguration
New: The error message is now more explicit when trying to open the list page of an unscanned domain or user
New: Simplified the User page text
New: Prepared the User page for better integration in the upcoming and long-awaited LookOut mail 4 (still a work in progress).
Verified and cleaned the integration in LookOut 3.
New: Upgraded to jQuery 1.7
Simplified the in-memory storage structure for outbound monitoring
Fixed (v2.9.1): Outbound monitoring does not resolve aliases properly when trying to disable an account
Fixed: "Whitelisted words" can't be enabled
New: Internal messages Date header is generated using the server timezone instead of GMT/UTC
Fixed: PolluStop running OSX-PPC and Solaris-Sparc may not be able to download Regex database
Fixed (v2.9.1): Regex to determine "Real sender" is incomplete, leading to a failure to identify the authenticated account in forged-message situations
Fixed: On some platforms, the daily report displays random characters around the local spam targets percentages
Fixed: On cluster setups, the source IP addresses are not included in the daily report
Fixed: Outbound monitoring may trigger on Mailer-Daemon
New: The "whitelisted" and "blacklisted" tag on the diagnostic header indicates the list level (user, domain or server) which first matched the address
Fixed: PolluStop-linux64 settings are corrupted on Ubuntu-x64 and RHEL6-x64, while being OK on CentOS-x64
New: More ratios added to the daily report
Fixed: "Local spam targets" always comes empty in the PolluStop daily report
Fixed: Invalid whitelist/blacklist entries can be created and are then impossible to delete using webadmin
Retrieving new licenses from www.niversoft.com instead of licenses.niversoft.com as the SSL certificate doesn't match
Fixed: Parse error on some special PBX router entries
Fixed (v2.9.1): Dataset parsing error on double-quote characters in regular expressions
New: SQLite database information on the Database page
New: Removed the SQLite VACUUM command on startup to reduce startup time. VACUUM can now be done manually from the Database page
New: Outbound monitoring, optional feature to disable outbound queue of accounts going over a configurable spam threshold
New: "Real sender" is now taken from the first Received header when message is sent from an authenticated user
Fixed: Dataset parsing error, some characters were decoded twice. It will now be possible to use shared regex using \t.
Fixed (v2.9): http module not compiled with SSL-enabling flags on some platforms, causing the https calls to always fail
Removed various unused code
Fixed: POST does not fall back to http when https isn't available
Fixed (v2.9): PolluStop webadmin can't be reached when only HTTPS is enabled.
New: "Shared" regular expression database downloaded from www.niversoft.com
New: Rewrote the internal downloader to use HTTPS. Supports HTTPS tunnels through HTTP proxies.
Rewrote parts of internal socket libraries for more efficiency
Removed compression mode from Client/Controller protocol, as usage showed that this actually made everything slower
Fixed: PolluStop is not able to reuse a webmail session in CGP 5.3.12(?) and up
Update the Dataset parser to support new internal structures generated by CGP
Fixed: (2.8.1) a possible issue with stdout not being completely flushed, stalling the filter
Fixed: Router parser doesn't understand escaped wildcard symbol (\*) in Signal rules
New: Soft hyphen (0x73) characters are now considered part of tokens but removed later. Equivalent HTML entity (­) was already processed that way.
Fixed: Problem reading domain.settings when a CABundle key is present in CGP 5.3 syntax
Fixed: 'Error: CLI module reported: "failed to read an unquoted string: non a/n data' in wizard step 2.
Rewrote the logging service classes for more efficiency and to remove all chances of deadlocks
Fixed a possible locking issue on high-activity non-clustered servers
Fixed a possible but harmless XSS attack vector on the login page
New: Daily report and statistics of non-clustered installations includes CPU processing as well as wall-clock processing times.
New: Whitelisted, Blacklisted and Direct Reply messages are now scanned for attachments too (X-AttachExt header)
Fixed: Regex count statistics always 0 in daily report
Fixed: Incorrect regex count processing prevents old statistics to be reloaded from file at startup
Removed per-session regex count, display was confusing
Fixed (v2.0): Datasets containing double-quote character in keys are not saved properly
New: Usage statistics for regular expressions
New: Daily report sent to postmaster
New: Repeated log lines are only outputted once for each module
Fixed: multipart/signed over multipart/mixed messages may not be scanned entirely
Fixed: SharedDomains system subdirectories are interpreted as being domains instead of being ignored.
New url parameter for user.page to help embedding in LookOut and other webskins
Fixed: Regex test field is broken
New: When addresses are white/blacklisted through the drop boxes or another learn method, they are also removed from the opposite list
Fixed: Domain-level whitelists and blacklists may be ignored
New: Setting to specify the IMAP account in which the drop boxes are stored
New: Command-line setting to disable sqlite db backup at startup
Fixed: Filter reports "Upgrade mode" on first installation
Fixed: The ruledisabled option (per-user settings) does not appear on recent installations
Upgraded sqlite to 3.6.22 to try to help with db backup performances during startup on some servers
Fixed: Rare 1-byte heap corruption in the dataset parser leading to a crash (caused by an unhandled exception)
Fixed: Initial Setup Training page doesn't recognize mailboxes with non-ascii characters in their name
Fixed: Whitelist and blacklist "Filter list" UI feature is broken
Fixed: Mouse events on the whitelist/blacklist table can be doubled after sort.
Fixed: Dataset/settings parser is unable to read line-wrapped datablocks created by CGP 5.3
Fixed: "Sent-to" addresses may be added to the global whitelist instead of the user whitelist.
Fixed: PolluStop router don't understand the .here suffix correctly
Fixed: PolluStop router is not greedy enough when matching domain names
Fixed: Possible (but improbable) infinite loop if the PWD connection is dropped during a CLI command
Fixed: Impossible to remove user whitelist/blacklist entries
Fixed (v2.7-beta1): Addresses may be added to the global whitelist/blacklist even if recipient/sender is not authorized to populate the global list.
Fixed: It is not possible to remove entries from whitelisted tokens
New: The login page gives a more detailed error message when the master account fails to login.
Removed the IMAP account setting as it's confusing and not useful anyway. The master account and password is used to access IMAP, as the drop mailboxes are likely in that account.
Fixed: The "test senders lists" does not test correctly for listed domains, and does not accept naked domain names
Fixed: Local address testing reports invalid results
Fixed: Router parser doesn't accept slash character
Fixed: Web interface problems when using Internet Explorer
Fixed: User whitelist always appears empty
Updated install instructions, removed references to old install steps
Fixed: Crash on shutdown on OSX, and random crash on shutdown on other platforms
Fixed: Client mode may refuse to scan any message
Upgraded sqlite code to v3.6.13 to fix a segfault in the OSX-Intel build
Fixed: Licensing issue
Removed the "Separate IMAP account" setting. Specifying the IMAP account is now mandatory
Fixed: Stream lock problem on FreeBSD in third-party code (flex-generated scanner).
Fixed: Found real cause of the RC2 sqlite problem, optimization re-enabled on all platforms
Fixed: Sqlite problem under big-endian processors when compiler optimizations are enabled. Disabled opt for sqlite only on these platforms (OSX/PPC and Solaris/SPARC) until the problem is fixed in the sqlite code.
Removed some debug code
Changed the optimization level to -O2 in gcc
IMAP username / password configuration is added back, in the Drop page
New access rights management. CGP access rights are used to determine which configuration can be seen and modified
New: No more pollustop-only username. The pollustop main configuration page can be accessed with any username having "Master" access rights in CGP
New: PolluStop mininmalist http server can now answer using compress/deflate encodings
New: PolluStop now verifies, when the From and Sender headers list local addresses, if those addresses are valid
New: The MessageId database, the whitelists (server, per-domain and per-user) and the per-user settings are now stored in a sqlite database
New variables available in the user page to help customizations
Additional checks to make sure local addresses are not used for whitelisting/blacklisting
Fixed: PolluStop wizard creates a Junk folder for accounts for which filtering is disabled
Fixed: PolluStop does not resolve recursive forwarders
Fixed: PolluStop does not support non-wssp Session IDs (such as XIMSS Session IDs) for user login
Fixed: User bypass rule is invalid
Fixed (v2.6.3): A problem in the IMAP client code is causing drop-mailbox messages to not always be put in the whitelist
Fixed (v2.6.4) The dataset parser is broken and fails to load pollustop.strings and other DOS-type text files on non-Win32 platforms
Fixed (v2.6.1): Accessing user pages with an alias does not always load the resolved user's data
Fixed: A quote character in a regular expression breaks the regex page
Fixed: OSX 10.5 Firewall breaks the integrity validation of PolluStop. OSX binaries are now "signed".
The OCR module is not included in the package anymore, as its role on fighting spam has become insignificant. Still available on request.
Fixed (v2.6.3): The latest changes in the sockets library is causing various awkward side-effects
New: PolluStop webadmin (including user config) can be accessed with alias or forwarder username pointing to a real account
Fixed (v2.6 beta 4): Spam score of, for instance, 0.07 is printed as 0.7 in the X-PolluStop-Score header, leading to confusion.
Fixed: IMAP Processing of drop folder processing fails when a packet boundary is aligned with an internal buffer
Fixed: When CGP returns an error to IMAP command, the error text may be discarded
Fixed: The tokens whitelists are not sorted and stray semicolon characters are displayed
Fixed: On certain conditions, learn logic of messages forwarded as attachment is reversed regarding whitelist
Fixed: Display artifact in whitelist/blacklist pages using IE.
New: Resolving forwarders to local, scanned accounts so they are scanned even if "scan forwarders" is disabled
Fixed: The passwords page behaves erratically when accessed in SSL mode
Fixed: The login page can answer with "The system not properly configured..." instead of "Incorrect password or account name" when an invalid username is entered
Fixed: The user page doesn't show the Save button when scanning is disabled
Fixed: On the first login, the user page displays scanning as disabled even if it's not.
Fixed: Learn and Filter page, incorrect warning about local addresses not being local
Fixed: IMAP password is corrupted after restart
Fixed: "automatic redirection to HTTPS on the login page" is not saved and is broken
Version 2.6 RC1
Filter page redesigned for clarity
Learn setting has been moved to a separate page and redesigned for clarity.
White/Blacklist interface redesigned for ease of use
Removed most of the increasingly confusing Learn rights settings, replaced by simpler ones
Removed the "allow global whitelist" setting from the whitelist page, replaced by new Learn rights
Fixed: account+detail- and mailbox#account-type addresses get their own whitelists instead of using the real account's
Fixed: When a message is sent to multiple addresses and at least one is external, all sent-to addresses are added to the user whitelist, whether or not they are local
New: When an user enables filtering for his account in per-user settings, PolluStop attempts to re-create the Junk Mail mailbox (using the mailbox name set in the setup wizard)
Fixed: X-Orig-Recipients may be empty in client/controller mode when the recipient is a domain alias
New: Command-line switch to enable data compression in client/controller communication
Version 2.6 beta 4
Fixed: Hidden rule to disable filtering can't be removed when it's the only rule
New: Non-mail accounts (pbx, etc) can be ignored in the license count. These accounts must be entered manually in the Filter page
Fixed: The score given by the client and the controller on the same message is different
Version 2.6 beta 3
Fixed: A small number of messages are not parsed correctly and their data can't be understood by the controller, causing the message to be postponed indefinitely
New: Setting to allow all scanned users to use the email-training method to whitelist messages, even if they are not allowed to train the database
New: Log setting to show reasons why a message is or isn't scanned/considered for training/whitelisting/blacklisting
Version 2.6 beta 2
Fixed: Client instances are not always receiving the full domain list from controller when more than one client instance
Fixed: The query part of an url in a message body is not always recognized as being part of an url
Fixed: Alternate httpd listen port from the new command line is not considered in client mode
Fixed: Lists can get user settings
Fixed: Buffers and socket are not always flushed when a transmission error occurs between client and controller
Modified the parameters of the data structure holding the spam/good database for more efficiency
New: it is possible to set default value for per-user settings (for new users only)
Version 2.6 beta 1
New: Controller and clients local domain name exchange
Rewrote the command-line parser. Old command-line syntax is not supported anymore.
New: Clients-controller connection is authenticated with a shared secret. PolluStop user password won't have to appear on the command line anymore
New: --nowait parameter for the client instances to let the message pass instead of holding them if the controller is temporarily unavailable
New: Relevant log entries are prefixed with the seqID of the CGP FILE request
New: If the current license is valid but outdated (valid for a previous version), PolluStop will automatically attempt to fetch an updated license from http://license.niversoft.com
New: It is now possible to use separate accounts for the Drop Mailboxes and the CLI access. Account containing Drop Mailboxes does not need admin rights and can be in a secondary domain
New: Per-user setting to disable filtering for one account. PolluStop creates an hidden account-level rule to bypass the domain rule for these accounts
New: CLI access IP address can be configured
Enhanced the token polymorphism detection algorithm
Fixed: PolluStop refuses to train from Shared Domains
Fixed: Minor threading issue slowing down PolluStop shutdown
Fixed: HTTPd Listener preventing PolluStop from completely shutting down on several platforms
Fixed: A shared resource is not protected enough and can crash the controller (Client/controller mode only)
Fixed (v2.5.2): An infinite loop may happen when scanning messages created by MS Office
New: Remote Command Client/Server for data synchronization between PolluStop instances on a CGP cluster. This PWD-like protocol can be extended in the future to allow scripted interactions with PolluStop
Several minor modifications for a better integration on a CGP cluster
Fixed a few broken links in the Configuration Wizard text
New: PolluStop will skip text inside <style> tags even if they are within the html message body (this text is never shown to the user and is there to confuse bayesian filters)
Fixed: Deadlock in the HTTP processing thread, leading to the PolluStop webadmin interface not responding while the filter is still active.
Fixed: In the Filter page, when "Scan All" is disabled, the "Ignore" list is remembered and used even if not shown, causing domains to be ignored.
Fixed: Messages coming from IPs blacklisted by CGP (RBL, etc) but "un-blacklisted" by a router entry (*@blacklisted = ...) are not scanned by PolluStop
Fixed: PolluStop stops while loading an empty but existing dataset file
Fixed: Blacklisted entries are sometimes ignored
SpamAssassin's GTUBE test string is now recognized (see http://spamassassin.apache.org/gtube/)
New: Tool to find if an address is whitelisted or blacklisted (in the Lists page)
Fixed: Local addresses in the whitelist may allow false negatives when the message sender is forged
Fixed: Under rare conditions, the filter may fail to detect and skip the CGPro envelope
Fixed (v2.5 beta 4): Command-line learning mode is broken
Fixed a possible crash on Windows due to new overzealous validation routines in the Microsoft CRT
Version 2.5 RC1
Fixed (v2.5 beta 4): The passwords page values can't be saved.
Fixed (v2.5 beta 4): Learn requests may cause a controlled exception in PolluStop (causing a restart of the filter)
Version 2.5 beta 4
New: The name of the matched regex is added to the message headers. An option is available to disable this feature
Fixed: A problem in the regex configuration page html code prevents the regex feature to be disabled.
Fixed: When PolluStop reloads a modified settings file, the passwords are doubled in memory ("password" becomes "passwordpassword")
Enhanced the rule to detect attachment spam
Fixed: In the mailbox browser, account names are not sorted
Default settings are now embedded in the binary. pollustop.settings.defaults is not read anymore.
Fixed (v2.5 beta 3): fatal exception when clicking the "Check for new version" button
Version 2.5 beta 3
New major feature: Custom rules, allowing admins to enter regular expressions having an effect on the message score
Core: Encryption and decryption of passwords and private keys happen only when required.
New internal rule to detect attachment spam (single pdf/zip attachment and no text in the body)
New setting to disable two other internal rules if desired (check message date and detect header pattern)
New: User learning requests (drop boxes, learn addresses) can be configured to either update the spam database or only their personal whitelist/blacklist
Updated the documentation on the Filter page to clarify the different learning requests and the associated settings
Fixed: The settings encoding procedure can enter into an endless loop, using a few more bytes of memory on each loop, until exhaustion
Core: The WSSP-like engine for the webadmin interface now supports the ELIF WSSP command
HTTPd: HTTP parameters are now stored in a hashed map(string/vector) instead of a hashed multimap(string/string) to be sure to keep the order of parameters with mutliple values
HTTPd: The new threads are created on the fly instead of using a thread pool which caused problems on Windows without giving a noticeable performance gain compared to the memory used
Using Boost::Regex for the new regular expressions feature
Tesseract OCR updated with latest changes in the open-source engine (v2.0)
Version 2.5 beta 2
Fixed: A deadlock condition may happen at startup on Windows, sometimes preventing the connection to the HTTP interface
Ported to x64 platform (Linux, FreeBSD, Windows)
FreeBSD builds are now created on FreeBSD 6.x. To run PolluStop on FreeBSD 5.5, please contact us
Version 2.5 beta 1
New: PolluStop Webadmin interface now supports SSL (https) on the same port - just use https instead of http in the URL.
Fixed: A per-user whitelist is created for aliases
New: Auto-generated replies such as vacation messages are ignored when adding outbound messages to the per-user whitelist
Fixed: A deadlock condition may happen at startup on Windows, sometimes preventing the connection to the HTTP interface
Fixed: Mailbox Browser is broken
Most HTTP POST queries are now answered with a 303 See Other code. This prevents data to be submitted twice or browser to ask for POST confirmation when refreshing the page.
Background processing code to avoid a session timeout as long as the browser is open. Session timeout is fixed to a lower value (5 minutes)
Enhanced shutdown code with more inter-thread waiting, resulting in a quicker shutdown
Fixed: Malformed date header can lead PolluStop to crash
Tesseract OCR updated with latest changes in the open-source engine
New: Option for dropped message's addresses to be added both to the per-user whitelist and the global whitelist
Fixed: The IMAP module can fail to empty drop mailboxes in very rare occasions when an empty response is received on the socket before the real response. The actual cause of this socket behavior is not known.
Fixed: PolluStop will refuse to load a cgp data file containing unquoted utf-8 text and produce a warning in the logs
Fixed: Messages received through PIPE are not verified by the "Check More Than Return Path"-related code
Fixed: PolluStop seems to stop to process or empty the drop mailboxes after a while
Parts of the IMAP module have been rewritten for efficiency, now using the IMAP IDLE command.
The timed poll (check every x seconds) setting is not required anymore and has been removed.
Rewrote all the exception handling code of different modules for consitence and sanity, and to help compiler optimizations
The IMAP connection for the drop mailboxes is now permanent instead of being brought up and shut down every 15 seconds
Most modules got an "initialized" flag to avoid unneeded shutdown when the filter is stopped before being completely initialized
Modified the sigpipe handling for BSD platforms (FreeBSD, OSX)
Fixed: Non-scanned account can access "their" per-user settings
Version 2.4 beta 3
Fixed: (v2.4 beta 1) Initial Setup Wizard pages can't be used
Fixed: (v2.4 beta 1) PolluStop stops after using the drop mailboxes on OSX and FreeBSD
All still hardcoded error messages displayed on the web interface have been moved to http/pollustop.strings
Main Domain Name display have been removed from the User Configuration page.
Fixed incoherences in the Passwords page
Version 2.4 beta 2
Fixed: (v2.4 beta 1) An incorrect synchronization object prevents the web interface from being displayed on most non-Win32 platforms
Fixed: (v2.4 beta 1) A "broken pipe" signal can stop PolluStop if the communication between a web browser and PolluStop is abruptly closed (FreeBSD and OSX only)
Fixed: (v2.4 beta 1) Heap can become corrupted if several users access the same page at once.
Fixed: The version number is only partially displayed (the beta information is stripped)
Fixed: (v2.3.4) The upgrade page may not accept the apply command
Version 2.4 beta 1
New: Integrated an OCR tool, tesseract-ocr (open source), to fight image-based spam. See the General Settings page.
New: Statistics for the OCR engine. Existing statistics will be reset
New: Per-user settings. Users can access the PolluStop webadmin interface with their email account's username and password, they will be presented a single configuration page.
New: PolluStop now uses IMAP to fetch dropped messages. Direct Mailbox Addressing and POP access are no longer required
New: PolluStop can store dropped messages in a defined mailbox instead of deleting them, allowing to restore an accidentaly lost message
New: External scripts can append addresses to the global whitelist and blacklist by writing them in [pollustop]/Drop/whitelist.append and [pollustop]/Drop/blacklist.append
Fixed: Possible crash when reading broken shift-jis encoding
Fixed: Average good and spam score statistics (since last reset) are always both near 0.
Fixed: In warning/notification emails sent by PolluStop, the Date field contains invalid data
New option: Whitelisted words can be matched against the body and the headers, or against the body only
Fixed: Filter is not able to read new Main.settings line written by CGP 5.1
New experimental feature attempting to defeat obfuscated drug names (such as VIAvGRA) and a few other words (such as S''exual)
Fixed: In certain cases the score is not properly capped at 1.0 and wrongly reported as 0.160 and 16 #'s
Fixed (v2.3.3a): broken HTML entities can make PolluStop enter in an infinite loop
Fixed: PolluStop can't verify its license when running under CGP 5.1 beta
Fixed: A problem in the mailbox browser can crash PolluStop on some less-common CGP setup
Fixed: A problem in the header parser can crash PolluStop when uncommon header lines are received
Whitelisting and blacklisting can now use other header fields such as From, Sender or List-ID
Wizard: Dropboxes aliases are now written in account template
Fixed: (v2.3.1) Attachment filenames encoded with quoted-printable can cause an extra blank line to be added to message headers when the FindAttachments module is enabled, sometimes resulting in unreadable emails
Fixed: The calculation of the number of ###'s in the Diagnostic header is not exact, a score of 0.70 can give a diagnostic with 6 #'s.
Fixed: PolluStop is likely to mark as spam the ugly MS-Word-generated emails with dummy o:p tags
Fixed: PolluStop is not considering the semicolon symbol as a punctuation mark
Fixed a synchronization bug probably present since v2.0, crashing PolluStop in rare occasions when intensive training is made while the filter is active and scans incoming messages
Removed an old naive rule causing rare false positives.
Improved the parsing engine regarding non-ASCII characters. Database must be retrained from scratch to take advantage of this improvement.
Improved the detection of filter-misleading HTML comments. These comments are meant to confuse Bayesian filters and are an obvious sign of spam. PolluStop wasn't confused by them but didn't always gave the message its due score.
The FindAttachment module of PolluStop can now detect attachments of encoded filenames containing international characters
Fixed: A problem in routing can make PolluStop fail to whitelist an address if a forward router entry exists for that address or its domain
Improved the handling of version numbers
Improved the handling of license upgrade warnings on the Upgrade page
Added a way to display arbitrary warning messages on the upgrade page when needed (providing the Check For New Version button is clicked)
Fixed group loading and group count display on License page
Added back the previous left-align mode for the white and blacklists
Changed the look of the main menu with a nice CSS-only rollover highlight
Fixed: Impossible to upload files in the Database page when the server and the client are not on the same platform
Fixed: Some typos and bad english sentences
Fixed: The upgrade page behavior is incorrect
New: View-only mode - another set of credentials allows an user to view a restricted set of config pages, and, optionaly, to modify white and blacklists
Cleaned up the admin pages, better stylesheet
Error and confirmation messages in the admin pages stands more clearly above the text
Fixed license page display for missing or invalid licenses
New: (Experimental) detection of spam formed of one or two linked images with almost no text
New: Detection of new forms of obfuscation tentative (html/title tags in text/plain messages)
New: Database operations, ability to backup, restore, upload database files from the database admin page
New: Splitted the totals (accounts, forwarders, groups, lists) on the license page for more information
New: The upgrade page now monitors for the upgrade to be completed
New: Whitelist by (whole) word, case-sensitive or case-insensitive
New: Algorithms to detect excessive single-letter tokens usage, such as "m o r t g a g e", or html/css float tricks
New: Filter is able to parse shift-jis encoding
Fixed: Inline-JIS settings were not saved
Fixed: Corrupted or uncleaned Forwarders and Aliases files are causing PolluStop to count more accounts than existing.
New: More debug log entries on startup, If Debug log level is enabled, EACH counted account is reported.
Fixed: PolluStop fails to parse router entries containing double prefix
Fixed: Auto-Whitelisted entries are not always saved on filter shutdown
Minor cosmetic bug
Removed import code for v2.0 database to minimize maintenance of useless code. PolluStop versions under v2.1 are now officially not supported at all.
Fixed: Training from terminal is broken
Fixed: Mails sent to PolluStop for training purposes can crash the filter under very specific conditions
New unlimited license mode
Fixed: When no password is set yet, it is not possible to set a new one (problem introduced in 2.2.6)
New: Whitelist and Blacklist are now sorted by domain
New: Support for Directory-based domains
New: All CLI and license processing is postponed after the reception of the INTF command. This ensure CGPro is done initializing before issuing CLI commands.
Fixed: [Core] Files opened in read mode are also opened with write flags, causing useless locks.
Fixed: A problem in the core libraries HTTP module can raise an unhandled exception and crash when an empty HTTP request is sent
New!: Database and Settings backup files, with old backups automatic deletion (check new settings at the bottom of the General Settings page)
Fixed: Auto-whitelisting can corrupt the whitelist with strange characters and in rare case lead PolluStop to a crash.
Fixed: Whitelist and blacklist boxes were missing a scrollbar.
Fixed: PolluStop issues a warning when encountering new CGP 5.0 sip-related router entries
Added HTTP Proxy support for Upgrade functions
Auto-Whitelisting entries now includes the date it has been added
Removed the Auto-Blacklist feature, it's way too dangerous. No worries, Auto-Whitelist is kept.
Changed retry delay to 30 seconds for HTTP listener
All webadmin pages are now XHTML 1.0 compliant
Fixed old database converter
Fixed: Settings were not always saved after a warning message is sent
Fixed: License status is not always updated when applying a new license
Fixed: OSX: PolluStop can fail to initialize when no license is installed.
Fixed: The 2.0 database importer can fail
Fixed: ModifySubject can crash PolluStop if Subject is folded and the first line is empty
Fixed: PolluStop can timeout if the message-id field is longer than 255 characters
Other minor fixes
Fixed: Saturdays are not parser properly
Removed duplicate report lines from MIME decoders
Major rewrite in core libraries, code improvements, optimizations
New: Inline JIS encoding (ESC $ B) is now decoded
New: Detection of subjects with "splitted" words (FW:LEN:GTH&GIR:TH&MUL:TI...)
New: Check for New version and automatic upgrade function
Fixed: The "Allow users to bypass the rule" function is reversed
Fixed: A bug in the mailbox parser may prevent mbox files from being parsed properly
Fixed: A 0x1A character in a mbox file stops the parsing at this point
Fixed: The Message Sentinel of the mbox file is compared without regards to the case, making the message count higher than expected
Fixed: Messages received through RPOP with unqualified domain name can be left unscanned
A change in the build environment was corrupting the binaries on linux
While searching for the cause of the problem, a part of the code has been optimized
New: PolluStop now adds a X-Orig-Return-Path header along with the X-PolluStop normal headers, to allow training from Outlook (which strips the Return-Path header)
New: PolluStop don't add its header when the exact same header can be found in the message (for instance, whe message is redirected to another account through rules)
Fixed: Minor bug in List account names processing, list-action wasn't considered as list. No real incidence, since only list-request and list-admin will pass through pollustop
Removed the url from the X-PolluStop header, was not very useful and was cluttering headers
Fixed: PolluStop can crash on startup with very specific CGPro server settings
Fixed: If an alias is used for Pop, PolluStop may fail to resolve the filesystem path of the account
Fixed: After machine reboot, PolluStop may think another PolluStop instance is running if a process has the same pid than a pre-reboot pollustop instance
IPC info file is relocated in the default temp directory (%temp% on Windows, /tmp on other platforms)
Fixed: In PolluStop package (tar files), files rights weren't set correctly
Added security code to be sure all response are sent properly to CGPro, even when a response text or comment is missing a newline. This could cause CGPro to shutdown PolluStop repeatedly.
Fixed: Drop Mailboxes settings validity is checked on commit even if Drop Mailboxes are disabled
Version 2.1 RC2
Fixed: PolluStop X- Headers are all on a single line (too much escaping)
Fixed: Default setting m_interestingthreshold value is incorrect
Fixed: Learning from attached messages can fail for invalid reasons
Fixed: A new license smaller than the current requirements can't be applied and is rejected with an erroneous message
Fixed: License page numbers are not updated immediately
Fixed: Changed settings are not reloaded when filtering is disabled
Fixed: "Multiple recipients" bounce error message is not customizeable
Version 2.1 RC1
Fixed: CGPro Router entries can't be read properly if they don't end with a newline character
Fixed: PolluStop license is not updated properly when new license is entered on the License page
Fixed: PolluStop now uses settings instead of separate files to store a few more internal states
Fixed: A small style problem in webadmin pages
Fixed: Forward as attachment wasn't working properly
Fixed: Learn bounce messages was not formatted properly
Fixed: The Filter page auto-applies the change to the "Scan all local domains" drop-down
Fixed: Training from a mbox-type Mailbox can abort on a big message, letting PolluStop ignore messages after this point
The webadmin pages text has been reviewed and corrected
Changed the path of the ipc info file, it will now be written in [cgpro files]/pollustop.pid
Added locks to avoid harmless crash on shutdown if PolluStop was still learning from files
Version 2.1 beta 5c
Fixed: PolluStop can crash if a message put in the drop box doesn't contain a Return-Path
Version 2.1 beta 5b
Fixed: Aliases creation in the wizard can't complete
Fixed: PolluStop can stop itself after two seconds if no settings file is present
Version 2.1 beta 5a
Fixed: OSX installation can't read dataset files
Fixed: Error in a few warning messages
Fixed: The CLI module doesn't get its new settings immediately when the Passwords page is submitted
Version 2.1 beta 5
New: The Initial Setup Wizard is implemented
New: Text hidden by HTML tricks such as using <title> tags, prepending an invalid < character, or text in html comments is now ignored by the filter.
New: [Experimental] White text on white background is now ignored by the filter.
Fixed: The MessageID disk database was triggered 1024x too early
Fixed: The name of the in-memory MessageID database savefile was not correct
Published a new spam database
When a message is send to pollustop-spam or pollustop-good and used for additional training, the From and To fields of the message are not considered
Sending a message to pollustop@yourdomain is now possible if the original message is sent as an attachment.
Added auto-blacklist and auto-whitelist based on dropped messages and messages sent to the filter as an attachement
Added the possibility to configure the bounce message of PolluStop
Version 2.1 beta 4b
Fixed: Error in the Last Startup date of the Statistics module
Fixed the /version URL to get PolluStop's current version number
Version 2.1 beta 4a
Fixed: Whitelist and Blacklist config page could crash PolluStop
Version 2.1 beta 4
Fixed: Statistics' scanned count is not properly reloaded on filter startup
Fixed: Forwarding option (for training) were not working properly, the filter_uselearnsettings was taken backwards
Added Last Reset Date and Last Startup Date to statistics. Existing statistics will be reset upon beta 4 installation
Implemented Date functions in the page renderer
Implemented basic Whitelist and Blacklist
The HTTP listener port (for the webadmin interface) can now be changed directly in the webadmin interface
Added an option to use APOP or not use it for PWD access.
Added an option to stop PolluStop from using CLI.
Recoded the POP fetcher, better error handling
Version 2.1 beta 3
NEW: Explicit user relay entries (no wildcard) can now be included in the scanned accounts
Modified the Mutex objects used in non-Win32 platform to match the behaviors of the Win32 mutexes.
Mutexes has been choosen to be recursive to prevent self-deadlock of a thread and simplify code and mutex management
Faster integrity check at filter startup
Code cleanup, removed c-style functions in favor of C++ classes (yes, I know it you reader don't really care about this...)
Version 2.1 beta 2
Fixed: PolluStop can deadlock on a Mutex under certain conditions, not all OSes are affected.
Increased by one character the length limit of the SubjectPrefix parameter (now 16)
Maked sure the HTTPd listener is closed before exiting the filter
In the Password page, the webadmin Password is now saved even if there's a CLI error
Version 2.1 beta 1
Implemented WebAdmin module
Implemented Statistics module
Implemented Message ID History
Implemented Invisibility detection (experimental)
Implemented Long Tokens Sequence detection
Implemented Cluster support (some parts has to be disabled; requires a special license)
Changed the format of the settings file, more computer-readable
Changed the format of the database, it takes about 30% less place in memory
Removed AutoTrain mode, was causing problems and database instability, and wasn't compatible with new enhancements
When ScanGroups is not set, a group specified in the scan list will still be scanned. Same thing for Lists and Forwarders
Added partial protection against | and (BROKEN BAR) separators (ex: c:al:s)
All settings and license files are now stored with the database, in the [pollustop]/data subdirectory
PolluStop router module now accepts router entries with a % instead of a @
Added CheckMoreThanReturnPath feature. When you're not using SMTP AUTH, people can send you mail in your behalf, and this may trick Pollustop in not scanning the mail. If you enable this setting, PolluStop verifies other things to determine the sender. Leave it disabled if you use SMTP AUTH.
Changed the parser flags to generate a 8-bits parser
Fixed a small display problem in the Warning messages.
Added PGP check and tweak (EXPERIMENTAL)
PolluStop now waits for the first INTF command to initialize itself to be sure CGPro is done reading its settings files (to avoid sharing violation)
Added Encrypted Zip detection in the FindAttachments module
Modified the Router to make it stop matching domain when the domain is final
Fixed the Router Parser, was not able to read the router entries when the first entry was a new line or a comment
Fixed the Ignore flag on learning modes
Fixed the MessageCount on Unlearn mode (was increased instead of being decreased)
People that used Unlearn mode or used -i flag while doing training should redo the training from scratch for more accuracy.
Recreated the default Spam database from scratch. Enhanced the cleanup process.
Separated package in two: binaries and database. *nix packages are now made with tar and gzip and should contain correct exec permissions
Fixed a small display bug in debug mode
Fixed: An empty [Ignore] instruction in the settings file could remove the main domain from the scanned list
Fixed: An empty [Scan] instruction in the settings file could add the main domain to the scanned list
Fixed: A bug in lockfiles prevented second instance of the same installation on non-Win32 platforms
Added a math feature to protect against the now common "accented words" attack (New setting, DoubleCheckWithoutAccents)
Added a math feature to reduce the bias caused by the To/CC fields and the shared database (New setting, OnlyAllowHighTOCCTokens).
Removed ConfidenceLevel setting, replaced by NewWordConfidenceOnRare, another concept
HTML entities like "é" are now converted to the equivalent character before token evaluation
Successful testing with Communigate Pro 4.2b6
Fixed a problem in router parser with PIPE entries
A few changes in default settings, a complete review of your existing configuration is strongly recommended
Version 2.0 Release Candidate 3
Integrated the enhanced threading and platform-independant library developed for another filter.
Fixed a bug in licensing.
Added a multi-process protection in licensing.
Added three new settings (ScanGroups, ScanForwarders, ScanLists) for people who doesn't want to include these in their license size
Fixed a timing bug to increase the delay between server info calculations
Fixed some typos in log messages
Version 2.0 Release Candidate 2
The OS-independent library has been updated, introducing its optimizations into PolluStop (file access and information query)
Fixed a small glitch that causes PolluStop to reload the router information for each message received (bug introduced in rev 2)
Version 2.0 Release Candidate 1 rev 2 (Win32 only)
Modified the thread library wrapper, the locking objects were not reliable. There's no wrapper in the *nix versions, this bug is win32 only.
Version 2.0 Release Candidate 1 rev 1
Added a syntax condition to the router parser for a case not specified in CGPro documentation
Version 2.0 Release Candidate 1
Filter/Scan: lines are not interpreted anymore when ScanAllLocalDomains is set
Remplaced General/ScanInternal by ScanFromLocalScanned & ScanFromLocalNonScanned
Modified a few strings
The builtin Attachment Finder has been updated with the new features of Find_Attachments v1.06
Fixed detection of GB2312 & Windows-1251/2 character sets
Fixed domain alias parsing
Now using Communigate Pro router entries (with settings file and domain aliases) to determine the path of a message
New log level (debug) added (undocumented)
New mode (router test) added (undocumented)
Fixed SubjectPrefix (discrepancy between doc and setting, and the value was hardcoded)
Fixed Endianness of database bytes on Solaris (Sparc) - the database is now transferable from i386 to sparc
Added a new supported platform: Solaris (i386)
Version 2.0 public beta 7 rev 1
Fixed Modify Subject feature to avoid incorrect relaying.
Unlicensed/Standalone mode doesn't try anymore to match Domains and Account settings with existing domains and accounts
Added a warning when database is not trained enough (< 1000 messages in Good or Spam database)
Version 2.0 public beta 7
Fixed Diagnostic mode (dump all was crashing)
Messages to external users with names similar to [LEARN-Prefix] were treated by pollustop as control messages.
Added a lockfile to avoid multiple instance of the same database loaded
Added "Local" Drop directory. You can now put things in [pollustop path]/Drop/Spam and [pollustop path]/Drop/Good, the current running instance will take care of them.
From now, if you try to use the Learn feature and there's already a pollustop instance running with the same database, the learn request is transferred to the running instance that will take care of it in the DropMailboxes thread.
Added the possibility to modify the Subject line when the message score is high enough
Version 2.0 public beta 6 rev 1
Fixed Forward To Learn feature
Version 2.0 public beta 6
Added "ALL" to Filter settings
Removed "SCANRELAY" and "SCANOUTBOUND" from general settings,
Better handling of non-ASCII characters in tokens
Added MATH.GOODIMPORTANCE setting to give additional importance to Good corpus.
Context Tagged tokens, helps the filter to determine the part of the message where the token comes from
Now filters with To and CC fields too, along with Subject.
Completely rewrote the Settings file
Tokens are now case sensitive,
Internal "timeout", the filter stops scanning after a preset number of line to avoid CGP timeout
"Interesting" tokens threshold
A lot of new settings
DropMailboxes separate process no longer exists, now multithreaded.
Version 2.0 public beta 5 revision 1
Fixed a crash occuring with euc-kr character set
Version 2.0 public beta 5
Fixed bug with POP retrieval on linux/osx/freebsd. CRLF issue.
Fixed bug that prevented PolluStop training from .mbox files
Small other optimisations
USETOCCMATCH is now disabled by default
Version 2.0 public beta 4
Fix bug about opened filehandles. Some were not closed and after a while (depending on
Fixed another bug regarding licensing check. Was done too often.
Version 2.0 public beta 3
Fixed database compatibility between Intel and Motorola platforms (endianness)
Fixed problems while reading POP message if the message contained NULL chars
Small bugfix in licensing module. New licenses are required.
Version 2.0 public beta 2
"Floating Point Exception" bug on training fixed.
Settings parser problem with tab characters fixed
Integrated changes made to Find_Attachments (v1.04->v1.05)