* [Conf] Add bayes_expiry as explicit module
* [Conf] Adjust names and weights for neural network plugin
* [Conf] Change updates url
* [Conf] Default statistics is stored in Redis now
* [Conf] Disable fann_redis module by default
* [Conf] Fix default elastic configuration
* [Conf] Fix double quote position
* [Conf] Massive config rework for new structure of symbols and scores
* [Conf] Rename Rambler BLs as they are now Rspamd's ones
* [Conf] Use dedicated rspamd.com subdomains
* [Conf] Use more data from rspamd.com fuzzy storage
* [CritFix] Add sanity guards for badly broken HTML
* [CritFix] Another errors path handling fix
* [CritFix] Another portion of tokenization fixes
* [CritFix] Do not send reject messages after set reply
* [CritFix] Fix ARC chain verification
* [CritFix] Fix crash in milter errors handler
* [CritFix] Fix memory leak in spf caching logic
* [CritFix] Fix milter commands pipelining
* [CritFix] Fix newlines detection
* [CritFix] Fix semicolons parsing in the content type
* [CritFix] Plug memory leak in zstd protocol compression
* [Feature] Add ability to match score in force_actions module
* [Feature] Add aes-rng PRF to libottery
* [Feature] Add 'composites' debug module
* [Feature] Add concept of experimental modules
* [Feature] Add DKIM trace symbol
* [Feature] Add EBL to the default config
* [Feature] Add expected ip check for emails plugin
* [Feature] Add framework to manage Redis scripts
* [Feature] Add framing for the new reputation generic plugin
* [Feature] Add function to show plugins stat
* [Feature] Add gzip compression support for clickhouse module
* [Feature] Add gzip compression support for rspamd controller
* [Feature] Add gzip support when sending lua http requests
* [Feature] Add json output for rspamd_stats
* [Feature] Add method to do a synchronous Redis connection
* [Feature] Add method to get all content-type attributes in Lua
* [Feature] Add `-m` flag to configdump to show modules states
* [Feature] Add mime types to extensions map
* [Feature] Add more features to rescore utility
* [Feature] Add more gtube like patterns to test other spam actions
* [Feature] Add more metafunctions, improve logging
* [Feature] Add more text attributes
* [Feature] Add new configwizard command to rspamadm
* [Feature] Add new tooling for stats conversation
* [Feature] Add old groups migration tool
* [Feature] Add plugins state variable
* [Feature] Add preliminary ecdsa keys support in DKIM
* [Feature] Add preliminary support of idempotent symbols
* [Feature] Add Redis server wizard
* [Feature] Add routine to convert old style stats to a new one
* [Feature] Add some sanity checks for actions and controller
* [Feature] Add statistic convertation module to configwizard
* [Feature] Add sugestions logic to mempool allocator
* [Feature] Add support of config transform in Lua
* [Feature] Add timeout to rspamc when doing corpus test
* [Feature] Add tooling to convert bayes schemas
* [Feature] Add torch conditional to configuration
* [Feature] Add torch-decisiontree package
* [Feature] Add torch-optim contrib package
* [Feature] Add TTL autodetection
* [Feature] Add urls reputation to the reputation framework
* [Feature] Allow floating and negative values in expressions limits
* [Feature] Allow multiple CTs in full extensions map
* [Feature] Allow multiple fann rules
* [Feature] Allow randomly select User-Agent from a list
* [Feature] Allow rspamadm commands to export methods in Lua
* [Feature] Allow rule specific min_bytes in fuzzy check
* [Feature] Allow to adjust symbols scores from Lua
* [Feature] Allow to attach stat signature to messages
* [Feature] Allow to change SMTP from via milter headers
* [Feature] Allow to configure monitored
* [Feature] Allow to create directories in Lua API
* [Feature] Allow to disable torch and skip train samples for ANN
* [Feature] Allow to discard messages dynamically
* [Feature] Allow to enable/disable languages from the detector
* [Feature] Allow to generate DKIM keys from rspamadm API
* [Feature] Allow to get CPU flags from Lua
* [Feature] Allow to have high precision timestamps in logs
* [Feature] Allow to insert headers into specific position
* [Feature] Allow to limit redirector requests per task
* [Feature] Allow to load and use dynamic ANNs with torch
* [Feature] Allow to quarantine rejected messages using milter interface
* [Feature] Allow to receive signing keys from mempool vars
* [Feature] Allow to reserve elements in libucl
* [Feature] Allow to reuse signal handlers chains
* [Feature] Allow to set custom mempool variables from settings
* [Feature] Allow to set headers from settings
* [Feature] Allow to set Settings-Id for all connections
* [Feature] Allow to skip real action and add a header instead
* [Feature] Allow to skip specific hashes in fuzzy storage
* [Feature] Allow to spawn asynchronous processes from Lua
* [Feature] Allow to specify number of threads for ANN learning
* [Feature] Allow to use global lua maps in settings
* [Feature] Allow to use postfilters in composites
* [Feature] Allow to verify signatures from HTTP headers in maps
* [Feature] Antivirus: ordered pattern matches
* [Feature] Authentication-Results: support hiding usernames
* [Feature] Automatically create tables in clickhouse
* [Feature] Catch next-to-last bad extension
* [Feature] Check cached maps more frequently
* [Feature] Check groups sanity
* [Feature] Deal with obscured URLs with @ symbols
* [Feature] Enhance task:store_in_file method
* [Feature] Export password encryption routines to Redis
* [Feature] Filter nan and inf when adding scores
* [Feature] Finalize 7zip files support
* [Feature] Further improvements in language detection
* [Feature] Further improvements in language detection algorithm
* [Feature] Generic key name expansion for Redis keys
* [Feature] Hash whitelist for fuzzy_check
* [Feature] Implement bayes signatures storage
* [Feature] Implement buckets for Redis backend
* [Feature] Implement DKIM reputation adjustments
* [Feature] Implement forked workers children monitoring
* [Feature] Implement headers flags in mime parser
* [Feature] Implement l1/l2 regularization against the current weights
* [Feature] Implement manual ANN train mode
* [Feature] Implement per-user ANN support
* [Feature] Implement torch based ANN learning
* [Feature] Implement upstreams logic for clickhouse exporter
* [Feature] Import torch to Rspamd...
* [Feature] Improve allocation policy when interacting with Lua
* [Feature] Improve Lua/C interaction in history_redis
* [Feature] Improve multiple fuzzy results combining
* [Feature] Improve parsing of DKIM keys: parse algorithm
* [Feature] Improve subprocesses termination handle
* [Feature] Improve symbol type parsing in Lua API
* [Feature] Metadata Exporter: e-Mail Alerts: support multiple recipients; alerting senders/recipients/users (#1600)
* [Feature] Milter headers: support adding/removing arbitrary headers from config
* [Feature] More metatokens
* [Feature] Multimap: checking of symbol options
* [Feature] Multimap: template URL filter
* [Feature] New bayes expiry plugin
* [Feature] Periodically save rspamd stats to disk
* [Feature] Preliminary import of the elasticsearch module
* [Feature] Ratelimit: allow full addresses in whitelisted_rcpts
* [Feature] Ratelimit: support fetching limits from Redis
* [Feature] RBL: received: filtering by position & flags
* [Feature] Read global maps for lua
* [Feature] Redis settings: support checking multiple keys
* [Feature] Rework fann plugin to be a normal post-filter
* [Feature] Rework logging configuration for rspamadm case
* [Feature] Rework short hashes generation to avoid FP
* [Feature] Save real ucl types when exporting to Lua
* [Feature] Set TCP_NODELAY for milter sockets
* [Feature] Setup DKIM signing from configwizard
* [Feature] Skip certain symbols from ANN classify
* [Feature] Store plugins state
* [Feature] Support etag for HTTP maps
* [Feature] Support Expires header when using HTTP maps
* [Feature] Support sending given header multiple times in lua_http
* [Feature] Support sha512 in DKIM signatures
* [Feature] Try to detect HTML messages better
* [Feature] Use array instead of queue to reduce memory fragmentation
* [Feature] Use controller port by default when connecting to local IP
* [Feature] Use rdtsc where possible
* [Fix] Actively load skip hashes map in fuzzy storage
* [Fix] Add another workaround to display history properly
* [Fix] Add definition for old glib compatibility method
* [Fix] Add missing rspamadm control options to help
* [Fix] Add workaround for IPv6 in sendmail
* [Fix] Add workaround for system with non-XSI compatible tzset
* [Fix] Allow oversigning in DKIM signatures
* [Fix] Allow to check negative scores in force_actions
* [Fix] Allow to have negative actions limits
* [Fix] Allow to set any layers number for fann rules
* [Fix] Another fix for rdtcs
* [Fix] Another fix to lua xmlrpc
* [Fix] Another try to deal with #1998
* [Fix] Another try to fix #1998
* [Fix] Another try to fix threading in torch
* [Fix] Apply language detection when adding fuzzy hashes
* [Fix] ARC: Fix Lua 5.3 compatibility; timestamp should be integer
* [Fix] Authentication Results: Fix SPF smtp.mail_from
* [Fix] Auth-Results: Multiple DKIM signatures
* [Fix] Avoid changing content-transfer-encoding header's value
* [Fix] Better handling of the legacy protocol
* [Fix] Check decoded headers sanity (e.g. by excluding \0)
* [Fix] Check for magic when checking for an archive
* [Fix] Cleanup mess with groups
* [Fix] Clickhouse: Insertion in the symbols table
* [Fix] Crash in URL processing
* [Fix] Deal with another case when processing exceptions
* [Fix] Deal with deeply nested messages more aggressively
* [Fix] Deal with nan and inf encoding in json/ucl
* [Fix] Deal with non-key arguments in lua_redis.exec_script
* [Fix] Deal with unknown weight
* [Fix] Deal with URLs with no slashes after protocol
* [Fix] Deal with URLs wrapped in [] in text parts
* [Fix] Deal with zero scores symbols
* [Fix] Default monitoring domain for surbl plugin
* [Fix] Delay upstream re-resolving when one upstream is defined
* [Fix] Detection of maillist optimized and fixed
* [Fix] DKIM signing: allow for auth_only to be false
* [Fix] DMARC: require report_settings for sending reports only
* [Fix] Do not allow garbadge when checking url domain
* [Fix] Do not cache SPF records with PTR elements
* [Fix] Do not constantly re-resolve failed upstreams with a single element
* [Fix] Do not crash if no words defined
* [Fix] Do not crash on empty subtype
* [Fix] Do not expose spamtrap messages to SMTP reply
* [Fix] Do not fail rbl plugin when there are no received or emails
* [Fix] Do not ignore short words
* [Fix] Do not include idempotent/nostat symbols to checksum
* [Fix] Do not override groups when converting metrics
* [Fix] Do not override unix socket group when group comes before owner
* [Fix] Do not skip the last character
* [Fix] Do not spawn too many workers by default
* [Fix] Do not stop monitored on dns errors
* [Fix] Do not stop parsing headers on bad IP header
* [Fix] Do not strip last character in the last word
* [Fix] Do not treat script content as text
* [Fix] Do not try to connect to non-supported addresses
* [Fix] Do not try to dereference last character
* [Fix] Do not try to sign unknown domains
* [Fix] Don't use whitelist/greylist maps as regexp, but as map
* [Fix] Erase unknown HTML entities
* [Fix] Exim Received header protocol parsing
* [Fix] First load selector_map and path_map. And only return false when domain not found if try_fallback is false
* [Fix] Fix a lot of FP in chartable in mixed languages
* [Fix] Fix ANN checks
* [Fix] Fix ANN loading logic
* [Fix] Fix another tokenization issue
* [Fix] Fix autolearn parameters reading
* [Fix] Fix bad archive characters stripping
* [Fix] Fix bad extension check
* [Fix] Fix bayes schema conversion
* [Fix] Fix blacklists and DMARC in whitelist
* [Fix] Fix brain-damaged torch build system
* [Fix] Fix build on FreeBSD
* [Fix] Fix clickhouse exporter
* [Fix] Fix clickhouse schema
* [Fix] Fix comparision
* [Fix] Fix composites processing
* [Fix] Fix connecting to a unix socket in rspamadm statconvert
* [Fix] Fix couple of warnings
* [Fix] Fix crashes in the rspamd_control path
* [Fix] Fix deletion from hash
* [Fix] Fix DKIM forgeries via multiple headers
* [Fix] FIx dynamic conf plugin
* [Fix] Fix emails detection
* [Fix] Fix empty headers simple canonicalization
* [Fix] Fix empty threshold check in greylisting module
* [Fix] Fix encrypted legacy reply in fuzzy storage
* [Fix] Fix enormous scores for R_WHITE_ON_WHITE
* [Fix] Fix exceptions list in surbl
* [Fix] Fix *_EXCESS_BASE64 rules
* [Fix] Fix expire rounding
* [Fix] Fix extra hits in PCRE mode for regular expressions
* [Fix] Fix format strings
* [Fix] Fix get_content method
* [Fix] Fix groups override when defining symbols
* [Fix] Fix learned count in new schema
* [Fix] Fix learn errors propagation
* [Fix] Fix loading of per-user redis backend for statistics
* [Fix] Fix logging buffer corruption in case of repeated messages
* [Fix] Fix lua cached elements invalidation
* [Fix] Fix merging of the implicit arrays
* [Fix] Fix mime_types scoring
* [Fix] Fix multiple headers in DKIM headers list
* [Fix] Fix null callee case in clang plugin
* [Fix] Fix obscured url in format user@@example.com
* [Fix] Fix parsing of the per-user script
* [Fix] Fix priorities in rspamd_update, disable rules execution
* [Fix] Fix processing of closed tags
* [Fix] Fix processing of idempotent rules when autolearn fails
* [Fix] Fix processing of multipart parts with no headers
* [Fix] Fix processing of skip-hashes in fuzzy storage
* [Fix] Fix PTR processing in SPF
* [Fix] Fix pushing country to clickhouse asn table
* [Fix] Fix random forests module
* [Fix] Fix real IP parsing for some strange Exim received
* [Fix] Fix Redis timeout setup
* [Fix] Fix reload crash when hyperscan is enabled
* [Fix] Fix reusing of redis connection after exec
* [Fix] Fix sanity checks on macro value
* [Fix] Fix setting of path and cpath for Lua
* [Fix] Fix setting of signals when spawning a thread
* [Fix] Fix text splitting: stack overflow (too many captures)
* [Fix] Fix ticks processing
* [Fix] Fix upstream addrs updating
* [Fix] Fix urls/emails distinguishing found in queries
* [Fix] Fix user settings check
* [Fix] Fix variable increment
* [Fix] Fix various issues in stat_convert
* [Fix] F-PROT Antivirus infection string for all known occurences
* [Fix] F-PROT Antivirus: only check return code to determine infection
* [Fix] Further fixes around floating point expressions
* [Fix] Further fixes to ANN module
* [Fix] Further fixes to rescore tool
* [Fix] Further fixes to support ES 6
* [Fix] Further tokenization fixes
* [Fix] Greylisting set phase is not idempotent
* [Fix] Handle proxy copy errors
* [Fix] Header checks: Fix get_raw_header method
* [Fix] Header checks: REPLYTO_UNPARSEABLE rule
* [Fix] Kill spawned processes on termination
* [Fix] Load skip map from all processes as shared cache is unavailable
* [Fix] Lowercase HTTP headers to make them searchable from Lua
* [Fix] Lowercase words
* [Fix] Lua_http: freeing
* [Fix] Lua: lpeg to be loaded with rspamd_lua_add_preload, to avoid "rspamd_config_read: rcl parse error: cannot init lua file […] module 'lpeg' not found"
* [Fix] Map absence is not an error
* [Fix] Metadata exporter: check IP sanity
* [Fix] Milter headers: custom headers: removing headers
* [Fix] Milter headers: skip_local / skip_authenticated settings
* [Fix] Milter headers: X-Spamd-Result header if X-Virus ran first
* [Fix] mime_types: fix next-to-last extension length check
* [Fix] More hacks to deal with old configs
* [Fix] Move composites second pass to the dedicated stage
* [Fix] Multimap: received: filtering of artificial header
* [Fix] Multiple fixes in torch based ANN plugins
* [Fix] Once more (#1879) fix bad extension check
* [Fix] Optimize rspamd_fstring_t reallocations
* [Fix] options.local_networks setting
* [Fix] Parse HREF urls without explicit prefix
* [Fix] Plan new event on HTTP errors
* [Fix] Plug another possible memory leak
* [Fix] Plug memory leak
* [Fix] Plug memory leak in lua_tcp
* [Fix] Plug memory leak when setting email addresses from Lua
* [Fix] Propagate learn/stat errors more precisely
* [Fix] Ratelimit: fix whitelisted_rcpts matching
* [Fix] Ratelimit: lowercase email addresses
* [Fix] RBL: received: deal with missing data (#1965)
* [Fix] Rebalance and slightly rework MX check plugin
* [Fix] Redis key expansion: EVAL: deal with strings
* [Fix] Redis script loading in DMARC; URL tags; URL reputation
* [Fix] Reject invalid bh for DKIM signatures earlier
* [Fix] Relax pem signature detection
* [Fix] Relax unicode properties requirements for chartable module
* [Fix] Remove extra noise from dkim and arc signing
* [Fix] Remove hop-by-hop headers in proxy
* [Fix] Remove incorrect method `task:set_metric_subject`
* [Fix] Replace space like characters in headers with plain space
* [Fix] Restore old style ratelimits support
* [Fix] Rework elasticsearch plugin
* [Fix] Rewriting subjects via force actions module
* [Fix] RPM postinstall
* [Fix] Sanitize IP in history redis
* [Fix] Select the correct signature when doing simple canon
* [Fix] Set CLOEXEC flag on files opened
* [Fix] Setting check_local / check_authed in plugins (#1954)
* [Fix] Settings: avoid checking invalid IP (#1981)
* [Fix] Settings: header: deal with multiple settings (#1988)
* [Fix] Skip checks if both extensions are not bad
* [Fix] Skip nostat tokens when get number of tokens
* [Fix] Some more fixes towards emails detection
* [Fix] SpamAssassin: Fail check_freemail_header if regexp didn't match
* [Fix] Stop using of g_slice...
* [Fix] Switch rspamadm logging to message level
* [Fix] Symbol 'FANNR_SPAM' has its score defined..
* [Fix] Table parameter for rspamd_config:add_doc()
* [Fix] Treat 'rewrite subject' as spam action
* [Fix] Try harder in passing IPv6 addresses
* [Fix] Try harder to find rfc822 notifications
* [Fix] Try harder to find urls
* [Fix] Use decoded values when parsing mime addresses
* [Fix] Use full URL when making an HTTP request
* [Fix] Use greylisting threshold in greylisting module
* [Fix] Use n_words attribute from ngramms
* [Fix] Use raw urls when sending requests to redirector
* [Fix] Use the right boolean operator on error check
* [Fix] Use weight from map for fuzzy scoring
* [Fix] Various fixes to elastic plugin
* [Fix] Various fixes to fann_redis instantiation
* [Fix] Various improvements in language detection
* [Fix] Virus infection string for F-PROT Antivirus
* [Fix] Virus infetction string for F-PROT Antivirus
* [Fix] WebUI: use relative path for savemap (#1943)
* [Fix] WHITE_ON_WHITE: Ensure score is matched to part that fired the rule
* [Fix] Write configuration changes as UCL config
* [Project] Add detection logic for words
* [Project] Add fast debug logging infrastructure
* [Project] Add more flags to languages
* [Project] Add n-gramms data files
* [Project] Add ngramms frequencies detector
* [Project] Add random words selection logic
* [Project] Add unigramms to language detection as well
* [Project] Convert all C modules to fast debug infrastructure
* [Project] Detect some languages based on unicode script
* [Project] Enable fast debug lookup for some modules
* [Project] Enable language detector init in scanner workers
* [Project] Further improvements to language detector
* [Project] Implement logic of ngramms application
* [Project] Improve weighting in lang_detection
* [Project] Initialize language detector
* [Project] Preliminary version of ngramms based language detector
* [Project] Preliminary version of the new stat_convert
* [Project] Remove old language detector
* [Project] Rework language detection ngramms structure
* [Project] Start language detection project
* [Project] Start rework of language detection to improve quality
* [Project] Use fast debug logging check
* [Rework] Add frame for new reputation based IP score module
* [Rework] Continue stat_convert rework task
* [Rework] Implement new version of fuzzy replies
* [Rework] Improve readability of xmlrpc API
* [Rework] Kill metrics!11
* [Rework] Ratelimit module
* [Rework] Rename fann_redis to neural plugin
* [Rework] Reorganize mime_types module
* [Rework] Rework rescore utility
* [Rework] Rewrite model and learning logic for rescore
* [Rework] Run post-loads when all initialization is completed
* [Rework] Simplify lua path initialization
* [Rework] Start major stat_convert rework
* [Rework] Start mempool fragmentation reduce project
* [Rework] Start moving of fann redis to torch
* [Rework] Stop embedding rspamadm scripts into C
* [Rework] Use floating point arithmetics in Rspamd expressions
* [Rework] Use frequencies distribution in language detector
* [Rules] Penalise R_BAD_CTE_7BIT for utf8 messages
* [WebUI] Compact graph selectors
* [WebUI] Escape strings inside HTML in history
* [WebUI] Fix message count in throughput summary (#1724)
* [WebUI] Fix NaNs display on Throughput graph
* [WebUI] Migrate widgets to D3 v4
* [WebUI] Restore passwordless login support (#2003)
* [WebUI] Show symbol descriptions as tooltips in history
* [WebUI] Stop using commas in pie chart tooltips
* [WebUI] Update D3 and jQuery
* [WebUI] Update D3Evolution 1.0.0 -> 1.1.0