Add extraction type for `from` maps
Allow to add templates to redis history prefix
Implement dynamic keys map in fuzzy storage
Lua_url: Add `to_http` method
Support JSON logging when in syslog mode
Deal with `Connection` and `Host` headers on proxying
Encode headers in metadata exporter
Fix initial maps load
Make stat tokens allocation consistent
Resolve issue with bayes stat in `rspamadm` mode
Try to fix url path issue
Breaking: Do not report module as action
Use khash instead of glib hashes for many reasons
Fix headers insertion in the ordered list
Fix learn error propagation
Fix learning with long prefixes
Fix potential double free by expclicitly zeroing pointers
Fix storing of the bayes tokens
Use short comments rather than long one
- Fix reported length of logging structure
Allow to set `max_users` for Redis bayes backend
Escape JSON when needed
Proxy: Allow `encrypted_only` option
Reiterate on gtube patterns
Support ping command in fuzzy storage
Support suppressing DMARC reporting for particular recipients
rbl: support disabling or replacing url_whitelist per RBL
Another try to fix setproctitle
Cleanup session on exit
Do not cleanup hyperscan files unless new ones are loaded
Fix bad access when printing pending events on failure path
Fix issues with the raw header on header insertion/modification
Fix overflow in fuzzy_stats command
Fix some corner cases when parsing maps with no newlines
Fix various issues with canonicalisation of the paths
Fix wrong raw_len usage
Make words selection random deterministic upon content
Properly set config field when creating tasks from Lua
Really fix the language detector statistical heuristic
Set loaded variable explicitly
dkim_signing: siging_table: lowercase before lookup
known_senders: fix config handling
rbl: fix `exclude_local`
Fix rspamadm lua logger
Fix systemd logging
dkim_signing: siging_table: lowercase before lookup
Another try to fix setproctitle
Do not cleanup hyperscan files unless new ones are loaded
Fix various issues with canonicalisation of the paths
Properly set config field when creating tasks from Lua
Set loaded variable explicitly
known_senders: fix config handling
rbl: fix `exclude_local`
Emergency fix for the hyperscan path error
rbl: support checking returncodes by CIDR
rbl: support checking returncodes by regex
rbl: support globbed return codes
DMARC reporting: fix reporting for subdomains
Deal with fmtlib exceptions properly
backport fix for dlfcn.h from backward-cpp
Blank spam detection
Fix leak in `gzip` function
Add ICAP Content-Type and Filename
Add `logging`->`task_max_elts` option
Add utility to split string like stuff for C++ code
Allow to set HTTP auth parameters for the maps
Check for plugin configuration errors on `configtest`
`known_senders` plugin
Use backward-cpp instead of manual libunwind stuff
rbl: support checking numeric URLs in isolation
CMakeLists.txt remove whitespace added by linter as it makes tests fail
Change Date: header location to conform with RFC
Correct format pattern for RE tree tempfile name
Correct format string for unw_word_t
Do not accept invalid ucl object types
Do not pollute public headers with libev internals
Do not set output type if list application failed
Fix `url:set_redirected` method
Fix format string and some length issues
Fix grammar definition for content-disposition attributes
Fix lua schema enrichment logic for Redis params
Fix lua stack corruption when logging large tables
Fix merge table utility
Fix output of non-RSA DKIM keys
Fix some corner cases of single-host urls parsing
Fix various issues in the `url_redirector` plugin
MISSING_MIMEOLE: avoid matching messages from Android GMail app (#4561)
Prevent DNSWL sabotage
Try to fix unzip function
rbl: really fix dependency registration when symbols_prefixes is used
rspamadm mime: arguments beginning with letter `t`
Breaking: return back to semver
Move rcl logic to C++
Add `one_shot` to some specific multimap rules
Add language detection configuration
Add missing attributes for the language detection configuration
Remove outdated composite rules
Add `sentinel_password` option
Add ability to deny specific fuzzy flags by default
Add controller endpoint to get fuzzy hashes from messages
Add extra symbol when URL redirector reaches nested limit
Add function to transliterate utf8 to ascii with some normalisation
Add html parsing limit
Add order to urls structure
Add some missing functions to `lua_rsa` library
Allow fuzzy workers to exchange blocked information
Allow to have weak flags in fuzzy storage
Allow to read options from maps in the multimap plugin
Allow to use other methods when fasttext detection is enabled
Count stats per key per flag
Finish all features of dkim_keygen in Lua
Khash: Allow static initialisation
Maps: Add on_load support
Preliminary implementation of dynamic composites
Process HTML parts before text ones
Reorganise struct rspamd_url to be 64 bytes size
Save fuzzy ratelimit buckets
Use in-place deflation for strings
external_relay: add ip_map strategy
Avoid race between config new/free by using a counter
Do not use `rspamadm.dkim_keygen`
Feed fasttext language model with the pre-tokenized words
Fix `rspamd_has_only_html_part`
Fix an old issue with order of destruction race between redis pool and lua
Fix format string usage
Fix parsing due to old bug revealed
Fix parsing of the mask values that are invalid
Ignore non-unique stop words
Include the last character when parsing the last header with no value
More fixes to fuzzystat
Set proper counter
Try harder to clean pending bucket
Try harder to remove bad hyperscan files
Update stats before encryption...
dmarc gramar - allow spaces before ";"
rbl: fix dependency registration when symbols_prefixes is used
remove obsolete rspamd-redirector files
test external_relay: count should always be the last rule, as it have no matching condition
Default max shots must not influence options
Write dkim keygen tool in lua
Add thread hijacking composite rule
Clarify `timeout` in rspamd_proxy
Fix hashbl
Add SURBL hashbl support (WIP)
RBL: Fix selector
Reduce the default timeout
Deserialise hyperscan to the page-aligned space to prevent alignment issues
Fill path field in hyperscan notice command
Add `thresholds` field to the scan result
Add possibility to execute lua scripts for blocked fuzzy clients
Add preliminary support of the external maps in the multimap plugin
Allow to build a map by combining tuples of selectors
Allow to query external maps for settings
Allow to specify `selector_alias` in the maps definition
Enable Mime part filters on antivirus module
Improve ratelimit redis scripts
Selectors: Add specific_urls_filter_map extractor
Some rework of the selectors framework
Add O_CREAT flag when creating a file
Add a database check function unless we have anything from Hyperscan
Add hyperscan databases sanity check
Add workaround for ENOBUFS error on sending
Do not do `lstat` when we are creating file
Finally get rid of RSPAMD_USE_47BIT_LIGHTUSERDATA_HACK
Fix boundaries that contain only dashes
Fix off-by-one error in css tokenizer
Fix url reputation plugin
Fix usage of the Redis config schema as `extra_fields`
Further checks for the hs_scratch_alloc
Honor group flag for one shot
Normalize glob paths to avoid hash table misses
Ratelimit: Use unpack for `HMGET` return value
Rbl: Fix helo check pipeline
Replace broken strict_domains with phishing_exceptions
Restore `strict_domains` support
Return true from has_urls(true) if only emails are present
Rework lists applications
Set symcache item in coroutine calls
Treat `hs_allocate_scratch` errors as non-fatal
Treat hostnames with no dots as eSLD of their own
received: filtering of artificial header
Breaking: Do not report soft reject in history
Convert chartable plugin to c++ for convenience
Use a different approach for customization of the settings
Mid: Add MID_END_EQ_FROM_USER_PART rule
Restore compatibility with the integrations and headers alterations
Milter_headers: Add `x-rspamd-action` routine
Share hyperscan database among processes
Another corner case in url parsing
Another fix for the enable password
Another try to fix close method in lua_tcp
Fix additional fields in the Redis schema
Fix emoji joiner FP
Fix favicon.ico Content-Type header
Fix hang when close is used
Lua_tcp: Sigh, another try to fix `close` invocation
Mx_check: Cache the fact of a missing MX record
Try to fix parsing of the unencoded `>` characters in html attributes
Try to fix the case where password == enable_password
Convert multipattern to use hyperscan tools
Make http normalize path function a generic function
Split locked and unlocked files, as mmap does not need flock normally
Start movement of the hyperscan related routines into a single unit
Store the current worker, so other libraries could use this information
Use blocking socket for IPC between main and workers
Use more predictable size for commands buffers
Do not insert ONCE_RECEIVED_STRICT on RDNS missing
Reduce score of HTTP_TO_HTTPS - subject to remove completely
Add missing groups for whitelist module symbols
Neural: Fix keys regression after #3968
Accept upstream in lua_tcp
Add ability to statically maintain disabled/enabled patterns
Add function to store upstreams for HTTP urls
Allow augmentations set in Lua API
Allow lua_http module to accept upstreams
Allow to limit write access to fuzzy storage by key
Allow to sort symbols output
Check content for binary stuff before dumping it to Lua
Implement symbols augmentations
Add missing flags
Add more sanity checks for rua in dmarc_report
Adjust length of the fuzzy checks for short text parts
Another try to fix add headers compatibility logic
Another try to fix race condition in the runtime destruction
Avoid cyclic references in symcache and fix memory leaks
Avoid overriding IP with Sender IP
BAD_REP_POLICIES did not trigger when message was classified as spam by Bayes
Bind AF_UNIX DGRAM client connection to annonymous address
Disable IPv6 lookups for Blocklist.de RBL
Distinguish dynamic and static items
Dkim: Ignore unknown DKIM kv pairs as stated in RFC
Dmarc report: Use local timezone instead of GMT
Do not exclude authenticated users from URIBL lookups
Empty envelopes should not be emitted as arrays (json+messagepack) when populated envelopes are objects. This greatly complicates decoding in strictly typed languages.
External_relay: Restore the originating hostname check
Fix DKIM keys with spaces still allowing errors on invalid base64
Fix copying of sockaddr_un addresses
Fix crash with cname replies
Fix dependencies propagation
Fix iteration over milter headers
Fix ordering when sorting symcache
Fix reading of the cached maps
Fix several issues with the HTTP keepalive parsing
Fix stack smashing
Fix synchronous auth/select in lua_redis
Fix various symcache issues
Ignore all (I hope) unknown DKIM signature KV pairs
Ignore directories in RarV5 archives
Libucl: avoid memory leak on objects merging
Lua_tcp: Another try to fix closing logic
Mempool: Fix alloc_array function to actually multiply nmembers by size
Only check allowed fuzzy worker update ips for non-unix sockets
Plug memory leak in regexp destruction with pcre2
Properly check the original email flag
Properly deal with `get_symbol/get_metric_symbol` ambiguity
Properly parse expressions atoms
Properly set `Host` in rspamd_proxy
Rbl: Fix received positioned checks
Remove check for a score with no symbol being registered
Same fix for lua_tcp
Skip cname records when processing SPF records
Skip sending dmarc reports in no-opt mode fixes https://github.com/rspamd/rspamd/issues/4241
Stop slow timer on task destruction
Symcache: Do not use C style comparators in C++ sorts
Try to avoid a corner case for `@` pattern
Try to fix dkim reputation adjustements
Try to fix passthrough results processing logic
Try to fix the mess with read only flag
Upstreams: Don't ignore revive_time config option
Use proper format string, sigh...
Use space category in ragel automata to resolve space characters
Zstd: Fix compression with the new Zstd API
milter_headers: Header fields may be inserted at wrong position.
Another movement
Augmentations can now imply flags
Further steps
Further work on deps processing
Implement cache resorting
Isolate disable/enable logic for the configuration ucl objects
Move item implementation to a separate header
Multimap: Avoid prefilters usage where augmentations can be used
Pass upstream when sending TCP requests
Re-implement cache sorting
Reimplement saving/loading the cache items
Reiterate on priorities
Rework files structure
Rewrite rspamc in C++
Simplify scores check and extend it to pre/post filters
Switch minimum C++ standard version to C++20
Try to fix the mess with types & flags
Use another version of hash table from the same author
Use dynamic items for calling callbacks
Use dynamic items in the callbacks
Use hash map for id->symbol mappings
Use khash instead of uthash in rdns compression logic
Score MIME_OBFUSCATED_ARCHIVE to 8 points
Set one_shot for URIBL rules by default
Fix upstreams name resolution when there is also a port
Add ROC feature to neural network plugin
Add public suffic compilation utility
Add support of Cloudmark
Allow hyperscan for ppc64, as vectorscan now suports it.
Allow to skip DNS resolution for keep-alive connections
Aws_s3: Allow to store large parts separately
BIMI: Add preliminary version of the BIMI plugin
JSON endpoint for querying maps
Lua_magic: Add a sane CSV heuristic
Lua_mime: Add schema for message transfer
Output average scan time in /stat endpoint
Show average scan time in `rspamc stat` output
Add guards to avoid race condition on TCP connection
Allow spaces in DKIM key records
Apply the similar fix to the url_reputation
Avoid overwriting whitelisted_signers_map
Backport PR from libucl
Clear SSL errors
ClickHouse cleanup of old partitions
Do not double call error handler on ssl errors in the timeout path
Do not forget to clear pointers on IOC reset
External_relay: Remove useless check of the map value
Find suspicious url encodings that could break url extraction
Fix HTTP(s) client timeout
Fix exclude flags setting
Fix expanding of the variables
Fix host header usage in lua_http
Fix http maps shared memory cache cleanup
Fix logic in HTML processing FSM
Fix parsing of the compound mailto urls
Fix processing captures from pcre2
Fix removing from khash
Fix stuctured headers pushing
Further fix for i386 compilation
Improve duplicate settings error reporting
Lua: task:remove_result didn't work in some cases
Output service parts as well
Phishing: Deal with phishing + redirected URL
Phishing: Fix finding domains in the phishing map
Plug memory leak by using mempool for a copied address
Properly find the request and the number of requested entries
Rbl: Fix inversed logic of the url_full_hostname
Read file maps if they were not pre-read during preload
Restrict x86_64 assembly to x86_64
Return a real number of recipients when dealing with aliases
Rework unshedule DNS request function
Support definition of ungrouped symbol in conf file, use group info from lua or other conf file
Unschedule DNS request when clearing IO channel
When checking for phishing, we need to convert punicode -> UTF8, not vice versa
lua_cfg_transform - actions without score (discard)
lua_cfg_transform - silly break break actions
ratelimit - symbol per bucket
Allow to restore SSL handlers after keepalive pooling
Allow to set a different behaviour for actions from settings
Include SSL flag into keepalive hash
Make `rspamadm dmarc_report` default behaviour more sane
Mempool: Use explicit alignment
Rdns: Use faster and more compact hash table for DNS requests
Rework SSL flag operations
Take disabled flag into account
Timeouts are now global per event and not reseted by IO activity
Use xxh3 as a default hash and fix memory/alignment issues
Fix old rules to stop global functions usage
Fix symbol for DKIM temporary failure
Remove ancient and inefficient rules
Slightly reduce MULTIPLE_FROM score
Add junk_threshold for autolearn
Add neural test command
Antivirus: Allow to set fake eicar patterns for testing AV engines
Lua_cdb: Add cdb building interface
Ratelimit: Add per bucket configurations
S3: Allow to store structured data in messagepack
Add concept of uncancellable events to prevent use-after-free
Add temporary guard to prevent linked list exploitation
Another rework of the ucl hashing
Another try to fix references safety
Another try to fix rspamd_text passing in the selectors
Avoid copy for received structure as it has raw C pointers
Avoid dangling reference
Correctly check numeric URLs in URL DNS lists
Delete the correct pointer type
Dmarc: Always lowercase domain
Fix compilation of the hyperscan databases with errors
Fix hash table lookup
Fix http message flag shift
Fix parsing of the from_hostname when it is an IP address
Fix parsing of the unquoted attributes in HTML
Fix passing of rspamd_text in selectors pipelines
Fix rubbish QP sequences decoding
Fix some complicated case with the closing tags parsing
Fix the case when l tag is too small
Html: Fix the case where only bgcolor is explicitly set
Libucl: Fix deletion from ucl objects
Namespace and add metadata for OpenMetrics, fix interleaving
Plug memory leak in http settings reload
Preserve SPF top record in the mempool variable
Remove aarch64 GC64 workaround
Remove bogus G_LIKELY
Spf: Do not parse non TXT DNS replies as TXT replies
Try to use on_connect/on_disconnect callbacks to handle internal Redis failures
buffer overflow in rspamc counters
fix static building
lua_scanners - message_min_words logic
src/lua/lua_mimepart.c: fix null dereference
Further rework of the redis pool
Redis_pool: fix issues found
Rework learn and add classify condition
Save invisible content to a separate buffer
Start rewriting of the redis pool logic
Improve zero font rule
Align ARC scores with DKIM scores
Neural: Fix sorting application
Add a simple dumper for bayes tokens
Add lua_maps.fill_config_maps function
Add preliminary exporter to AWS S3
Add preliminary restore bayes support
Add race condition protection against hs_helper restarts
Add rspamd_utf8_strcmp utility
Add zstd streaming API
Allow to log severity level explicitly
Allow to save and show attachment name when inserting AV scan results
Allow to sort urls for Lua
Allow to specify different timeouts/retransmits for fuzzy rules
Aws_s3: Allow to compress data stored
CMakeLists.txt: Change check and run-test to use rspamd-test-cxx * fixes #3807
Dmarc_report: allow sending reports in batches
Fuzzy_check: Allow to disable subject when making short text hash
Lua_cryptobox: Add keyed ssl hash functions via HMAC
Lua_task: Add get_urls_filtered method
Make monitored checks less frequent
Milter_headers: Add x-rspamd-pre-result header
Neural: Allow to balance FP/FN for the network
Ppopagate monitored errors from rbl module
Pyzor calculate score dynamically Count - WL-Count of default_score in percent
Rbl: Distinguish flattened and non-flattened selectors in RBL requests
Re-add pyzor support
Settings: add ip_map check and rework structure slightly
Spamassassin: Allow to set the default priority for SA scores
Strip smtp comments from message id
add SYSTEM_ZSTD cmake option To use the system zstd instead on the bundled version
external_relay plugin
rspamadm clickhouse neural_train subcommand
#3400 milter_headers: fix inverted logic for extended_headers_rcpt
ASN: fix _FAIL symbol for when main symbol is disabled
Add a special logic for text part with no text extraction
Add diacritics flag for several eu languages
Another FSM fix to accomodate possibility of multiple consequent ?
Avoid curse of dynamic array referencing
Avoid reinitialising neural settings
Check remain before processing TXT records
Enable error multiplier on http errors
Finally rework parsing entities logic
Fix '==' parsing in the content type attributes parser
Fix IPv6 expansion for SPF macros
Fix Mozilla Message-ID detection
Fix an edge case in BITCOIN_ADDR rule
Fix brain-damaged behaviour when http request has a custom Host header
Fix check of limits in email address parsing
Fix copy&paste error and rework
Fix expressions logic for and/or and float values
Fix fuzzy retransmits
Fix http maps with no or invalid expires data
Fix last quote character parsing in the content-type state machine
Fix normalisation flags propagation
Fix overflow when appending many broken tags
Fix parsing of rfc2047 tokens with '?' inside
Fix phishing flag set
Fix rfc2047 embedded into rfc2231 pieces in special headers
Fix round-robin rotation
Fix searching for symbols
Fix storing of the regexps inside variant
Fix tokenization near exceptions
Fix visibility calculations
Html: Attach inline tags to the structure
Html: Do not treat empty tags as block tags
Ical: Do not extract urls from all flags using merely specific ones
Initialise symcache even if it cannot be loaded properly
Lua_fuzzy: Remove text parts check when checking image dimensions
Lua_maps: Fix adjustments for the map type in the complex map definitions
Lua_task: Fix deleted symbols in has_symbol/get_symbol
Move metric and symcache link from validation to the init stage
Oletools: Another try to fix table sorting
One more default behaviour fix
Phishing: Rework urls processing
RBL: was missing some config schema
Replies: Fix 'Reply-To' handling in task:get_reply_sender
Rework metrics handling
Save symcache on exit
Selectors: Filter nil elements in lists
Selectors: Properly fix implicit tostring for nils
Try to fix some broken code in DMARC reporting plugin
Urls: Fix processing of html urls when it comes to the flags
Use proper buffer length
Various visibility fixes
: ASN: dns cb func should also return in case of an error
Add composites manager concept
Add tags definitions
Allow C code to be compiled with C++ compiler
Clickhouse: Store url flags
Composites: Rewrite the composites logic
Composites: Start rework of the composites framework
Dmarc: Move check policy function to the common utils
Dmarc: Rework reports keys structure
Further work to make html content private
Html/CSS: Remove css C bindings as they are useless now
Html/CSS: Rework Lua bindings
Html/Css: Start rework of the html blocks
Html: Add images processing logic
Html: Add traverse function
Html: Another steps to get rid of gnode
Html: Convert to variant
Html: Deal with the utf_content part
Html: Final rework part for the html processing code
Html: Fix Lua bindings
Html: Forgot to add the internal include
Html: Further html urls rework
Html: Further rework of the tags content extraction
Html: Make parameters as a vector again
Html: Move blocks part
Html: Move images processing stuff
Html: Rework lua bindings
Html: Start html text extraction rework
Html: Start refactoring of the html tags handling
Html: Start removing of GNode stuff
Html: Start rework of the html content structure
Lua_magic: Try to detect text parts with 8bit characters for non-utf8 encodings
Move HTML url functions and rework them
Move and adopt entities handling logic
Move common and rarely used dmarc code to the library
Move compression routines outside of rspamd_util library
Move entities/tags handling
Phishing: Split from redirectors usage
Redesign html blocks propagation logic
Remove tag name string
Rename phished url to a linked url
Reorganize dmarc plugin and remove unsupported reporting code
Reputation: Use more flexible types in get/set functions
Require proper C++ environment for Rspamd build
Rework extended urls output
Rework tags parsing machine
Slightly improve old regexp API
Start conversion of the redis pool code to c++
Try to resolve failed upstreams more agressively
Use C++ utf8 library with unit tests to trim whitespaces
Use C++ version for unicode normalisation
Use C++ version of the lua threads pool
Add raw addresses to MULTIPLE_FROM options
Another fix to HTTP_TO_HTTPS rule
Do not trigger HTML_SHORT_LINK_IMG on external images
Extend FORGED_X_MAILER
Extend OLD_X_MAILER
Fix CTYPE_MIXED_BOGUS for text attachments
Fix FPs for CTYPE_MIXED_BOGUS
Fix HTTP_TO_HTTPS rule
Fix HTTP_TO_HTTPS rule
Fix zerofont rule (partially)
Micro-optimize X_PHP_EVAL
Reduce default weight for R_MISSING_CHARSET
Add R_DKIM_PERMFAIL to the metric
Dkim: Fix simple canonicalisation if multiple signatures are presented
Fix controller paths normalisation
Add INVALID_DATE rule
Add controller endpoint for training neural
Add sanity checks for actions thresholds
Add support of '==' and '!=' in Rspamd expressions
Composites: Improve composite atoms parser
Docker: use Debian slim variant
Elastic: Add some missing fields
Extract text from img alt attributes
Improve charset detection logic
Lua_clickhouse: Add optional row callback for large selections
Lua_dns_resolver: Add idna_convert_utf8 method
Lua_mime: Add ability to do multipattern replacement
Lua_trie: Allow to report start of the match
Multimap: support adding map values as extra options
Neural: Move PCA learning to a subprocess
RBL: support matching content/image URLs only
RBL: support use of multiple selectors
Reputation: Allow to specify ip masks
Support SMIME signed messages container
Support multiple conditions for symbols
Support ping in milter mode
Support rspamd_text in selector regexps
Use own daemonization routine
Vadesecure: Implement settings_outbound feature as recommended by Vade
`rspamadm clickhouse` command
allow hyperscan for aarch64
Allow to set priorities between post init scripts
Allow to use maps for strings that are not zero terminated
Apply max_lua_urls limit for emails as well
Arc: Fix CV check on signing
Arc: Fix signing of the broken ARC chains
Clickhouse: escape carriage return
Composites: Allow partial match
Deduct type of a table methods
Do not load errored hyperscan database
Do not process links in ignored html tags
Fix ClamAV result for cached encrypted file (#3395)
Fix canonicalisation when l= tag is presented
Fix flag shift
Fix handling of skip/skip_process http flags
Fix html attachments checks
Fix issue with pushing binary formats to Lua strings
Fix logging for rspamadm
Fix off-by-one with init check
Fix parsing of escape characters in quoted pairs
Fix pushing ucl strings with \0 inside
Fix quoted-printable soft newlines bugged case
Fix settings in case actions are set to null (#3415)
Fix several issues with auth results producing
Fix smtp comments exclusion
Fix smtp date syntax definition
Fix substring search in case if srchlen == inlen
Fix text selectors
Honour `systemd` setting when logging to console (#3514)
Html: Add entities collisions prevention logic (e.g. for mathml entities)
Lua_auth_results: Quote potentially bad values in AR header
Multimap: Fix flags usage
Multimap: Fix scoring for combined maps
Plug GList * leak in redis pool
RBL: allow for multiple matches of the same label if types are different
Rely on libev checks for file maps
Restore simple dkim canonicalisation mode
Return MimeCharset as we work with emails...
Spamassassin: Fix pcre_only flags
Spamassassin: Preserve 'pcre_only' flag when dealing with regexp replacements
Try to fix GError leak
Try to fix a mess with settings loading by adding priorities
Try to move setings initialisation to a later stage
Use dup fd in milter handler to avoid races with the proxy
Use message pointer to avoid obsolete data to be cached
Add final cleanup logic
Add preliminary support of hyperscan caching for re maps
Add stale cache removal
Clickhouse: Improve performance
Distinguish between strict config test mode
Furhter logging improvements
Milter_headers: improve extended_headers_rcpt support
Move parsers to a separate lua library
Neural: Skip composite symbols
Rbl: Rework defaults logic
Some tunes to cache saving
Track maps origins
Use full crypto hash for regexp maps
Remove broken rule
Add missing symbols
Add missing symbols
Fix fat-fingers typo
Fix wrong comment in options.inc
Neural: Fix the default name for max_trains
Register a known symbol
Spf: Add R_SPF_PERMFAIL symbol
Arc: Fix ARC validation for chains of signatures
Distinguish socketpairs between different fuzzy workers
Fix IDNA dots parsing
Fix test assertion method
Fix usage of crypto_sign it should be crypto_sign_detached!
Add BOUNCE rule
Add controller plugins support and selectors plugin
Add maps query method
Add minimal delay to fuzzy storage
Add multiple base32 alphabets for decoding
Add preliminary support of BCH addresses
Add query_specific endpoint
Allow multiple base32 encodings in Lua API
Allow to specify nonces manually
Controller: Allow to pass query arguments to the lua webui plugins
Fuzzy_check: Add gen_hashes command
Fuzzy_check: Add weight_threshold option for fuzzy rules
Implement address retry on connection failure
Improve limits in pdf scanning
Initial support of subscribe command in lua_redis
Lua_cryptobox: Add secretbox API
Lua_text: Add encoding methods
Milter_headers: Allow to activate routines via users settings
PDF: Add timeouts for expensive operations
Preliminary maps addon for controller
Split pdf processing object and output object to allow GC
Support BLIS blas library
Support input vectorisation by recvmmsg call
Support multiple base32 alphabets
add queueid, uid, messageid and specific symbols to selectors [Minor] use only selectors to fill vars in force_actions message
allow variables in force_actions messages
extend lua api
#3249
Allow to adjust neurons in the hidden layer
Another try to fix email names parsing
Arc: Allow to reuse authentication results when doing multi-stage signing
Arc: Fix bug with arc chains verification where i>1
Arc: Sort headers by their i= value
Change neural plugin's loss function
Deal with double eqsigns when decoding headers
Default ANN names in clickhouse
Disable reuseport for TCP sockets as it causes too many troubles
Disable text detection heuristics for encrypted parts
Distinguish DKIM keys by md5
Distinguish type from flags in register_symbol
Dmarc: Unbreak reporting after cf2ae3292ac93da8b6e0624b48a62828a51803c9
Do not flag pre-result of virus scanners as least if action is reject
Do not use GC64 workaround on 32bit platforms, omg
Exclude damaged urls from html parser
Fix FREEMAIL_REPLYTO_NEQ_FROM_DOM
Fix FROM_NEQ_ENVFROM
Fix FWD_GOOGLE rule (#1815)
Fix adding of the empty archive file for gzip
Fix aliases in forged recipients and limit number of iterations
Fix authentication results insertion
Fix calling of methods in selectors
Fix clen length for hiredis...
Fix endless loop if broken arc chain has been found
Fix false - operation
Fix get_urls table invocation
Fix group based composites
Fix headers passing in rspamd_proxy
Fix incomplete utf8 sequences handling
Fix lua_next invocation
Fix lua_parse_symbol_type function logic
Fix multiple listen configuration
Fix occasional encryption of the cached data
Fix parsing boundaries with spaces
Fix passing of methods arguments
Fix poor man allocator algorithm
Fix regexp selector and add flattening
Fix rfc base32 encode ordering (skip inverse bits)
Fix rfc based base32 decoding
Fix sockets leak in the client
Fix storing of the original smtp from
Fix types check and types usage in lua_cryptobox
Fix unused results
Fuzzy_check: Disable shingles for short texts (really)
Ical: Fix identation grammar
Improve part:is_attachment logic
Mmap return value must be checked versus MAP_FAILED
One more fix to skip images that are not urls
Pdf: Support some weird objects with no newline before endobj
Rbl: Fix ignore_defaults in conjunction with ignore_whitelists
Restore support for `for` and `id` parts in received headers
Segmentation fault in contrib/lua-lpeg/lpvm.c on ppc64el
Skip spaces at the boundary end
Slashing fix: fix captures matching API
Spamassassin: Rework metas processing
Store reference of upstream list in upstreams objects
Understand utf8 in content-disposition parser
Unify selectors digest functions
Use `abs` value when checking composites
Use strict IDNA for utf8 DNS names + add sanity checks for DNS names
Use unsigned char and better support of utf8 in ragel parser
add missing selector_cache declaration
Allow to specify exat metric result when adding a symbol
Change and improve openblas detection and usage
Close listen sockets in main after fork
Further rework of lua urls extraction API
Lua_cryptobox: Allow to store output of the hash function
Lua_task: Add more methods to deal with shadow results
Modernize logging for expressions
Remove empty prefilters feature - we are not prepared...
Remove old FindLua module, disable lua fallback when LuaJIT is enabled
Rework and refactor forged recipients plugin
Rework expressions processing
Rework fuzzy commands processing
Rework url flags handling API
Rework urls extraction
Split operations processing and add more debug logs
Update zstd to 1.4.5
Use google-ced instead of libicu chardet as the former sucks
add alias util:parse_addr for util:parse_mail_address
get rid of util:parse_addr duplicating the util:parse_mail_address, replace where used
Allow prefix for bitcoin cash addresses
More fixes for bitcoin cash addresses decoding
Refactor bleach32 addresses handling
Mark Rspamd emailbl as ignore whitelist
RBL: Add missing emails = true option
Add support for scripts in fuzzy storage
Arc: Add whitelisted_signers_map option
Implement hosts file processing
Neural: Introduce classes bias that allows non-equal classes learning
Update libev to 4.33
Another brain damage html standard adoptions
Another fix for brain damaged obs-fws state
Fix flags that caused force_actions failure
Fix logging issue
Fix lua symbols scores registration when config does not define scores
Fix opaque maps logic
Fix parsing of the html tags with no spaces after attributes
Fix some corner cases in urls parsing, add limits
Fix tlds extraction if custom composition rules are used
Fix variables replacement in mempool
Improve base64 detection
Normalize dynamic scores in ANN correctly
Plug memory leak introduced by #3153
Stat_redis_backend: Fix memory leak and simplify learn path
Try hard to deal with ghost workers
metadata_exporter default formatter
Change the way to extract URLs when dealing with alternative parts
Fix various url extraction issues
Re cache: Load compiled hyperscan in the main process as well
Re cache: Load hyperscan early
Rework URL structure: adjust tld part
Rework URL structure: host field
Rework URL structure: more structure optimisations
Rework URL structure: user field
URL: Another update for urls extraction logic
Urls: Improve query urls handling
Urls: adopt html related stuff
Urls: more rework of the urls sets
Urls: process query urls in HTML urls correctly
Urls: rework urls hash structure
Urls: update lua libraries
Use multiple search tries for different url extraction types
Fix parsing of the content type attributes
Clickhouse: Add extra columns support
Rbl: Add url_compose_map option for RBL rules
'R' flag is for all headers regexp
Allow to reset settings id from Lua (e.g. because of the priority)
Avoid collisions in mempool variables by changing fuzzy caching logic
Avoid strdup usage for symbols options
Do not trust stat(2) it lies
Filter all options for symbols to have sane characters
Fix all headers iteration
Fix allowed_settings for neural
Fix listen socket parsing
Fix maps expressions evaluation
Fix sentinel connections leak by using async connections
Fix smtp message on passthrough result
Fix tld compositon rules
Fuzzy_storage: Do not check for shingles if a direct hash has been found
Lua_mime: Do not perform QP encoding for 7bit parts
Neural: Distinguish missing symbols from symbols with low scores
Support listening on systemd sockets by name
Logger infrastructure rework
Refactor libraries structure
Rework SSL caching
Update snowball stemmer to 2.0 and remove all crap aside of UTF8
SPF is no longer a C module
Update spamtrap map path example
Fix html entities decoding
Fix re cache when mix of pcre and hyperscan is used
Allow milter code to deal with multiple headers
Antivirus: Add avast support
Dkim_signing: Allow to sign via milter_headers
Implement content hashes
Lua_text: Add regexp split iterator method
Lua_text: Implement flattening of the input tables
Send quit command to Redis
Speed up is_ascii function
Spf: Add external_relay option
Avoid double escaping
Fix O(N^2) algorithm
Fix arc seal validation
Fix base tag processing according to stupid HTML renderer behaviour
Fix dealing with `\0` in ucl strings and JSON
Fix gpg parts misdetection
Fix ignored symbols exporting
Fix processing of numeric url's
Fix processing of the closed tcp connections
Fix regexp type check for pcre2
Fix urls encode function
Fix urls shifting when doing decode to include separators
Fix white on white rule and add is_leaf flag
Further fixes in charset detection
Ignore diacritics in chartable module for specific languages
Limit size of symbols options by max_opts_len option
More fixes in html tag content calculations
Plug memory leak in fuzzy storage
Process high priority settings even if settings/id has been specified
Select a different upstream on last retransmit
Treat soft hyphen as zero width space
Try harder to watch the lifetime of the key_stat
Use ipv6-mapped-ipv4 addresses in radix trie
Allow to add userdata as symbols options
Change mime part specifics handling
Move LRU SPF cache from spf plugin
Rework HTML tags content attachment
Rework options hash structure
Start lua_content library
Stop using of uthash for http headers
Use faster hashing approach for memory pools variables
Add PDF related rules
Antivirus: Fix the default config
Add verdict library in lua
Allow exception when choosing upstream
Allow to disable symbols from the metric config
Allow to limit maps per specific worker
Always validate Rspamd protocol output
Antivirus: Add preliminary virustotal support
Clickhouse: Rework Clickhouse collection logic
Improve base64 usage
Shutdown timeout is now associated with task timeout
#3129 Multiple classifiers on redis working incorrectly
Allow real upstreams configuration
Another try to fix slow callbacks and timers
Check results of write message as SSL can bork them
Clickhouse: Avoid potential races in collection
Clickhouse: Fix periodic script
Fail DNS upstream on each retransmit attempt
Fix consistent hashing when upstreams are marked inactive
Fix issues found
Fix off-by-one in retries for the proxy
Fix termination
Fix upstreams exclusion logic
Fix utf8 validation for symbols options and empty strings
Oops, fix maps reload
Rbl: Allow utf8 lookups for IDN domains
Sigh, another try to fix brain-damaged openssl
Another phase of finish actions rework
Further cmake system rework
Further isolation of the controller's functions
Make cmake structure more modular
Move cmake modules to a dedicated path
Replace controller functions by any scanner worker if needed
Rework final scripts logic
Rewrite rspamd_str_make_utf_valid function
Update neural.conf
Fix dkim verification for multiple headers listed
Add support of uudecode
Allow to explicitly set events backend
Implement configurable limits for SPF lookups
Lua_scanners: Use lua magic for inclusion/exclusion logic
Multimap: Do not check files in office archives
Neural: Add sampling when storing training vectors
SPF: Allow to disable AAAA checks in configuration
Spf: Add limits configuration support
Store etag in cached HTTP maps + better logging
Support segwit BTC addresses, fix LTC verification
Support uuencoding
Add configurable number of threads for OpenBLAS
Add workaround for ragel 7 in hyperscan related maps code
Another fix for numeric urls parsing
Correct EMA time calculations
Do not treat archives as text
Do not use strdup on data extracted from lua
Fix a failure calcuating URL reputation.
Fix crash due to constructors init order
Fix crash on parts with no cd
Fix empty prefilters that require mime structures
Fix event loop creation
Fix issues sending DMARC reports.
Fix misprint
Fix saving of the file maps
Fix size calculations when converting from utf16
Fix support of disable_monitoring in rbl
Fix use-after-free
Fix zip files check to relax requirements
Important hiredis fixes
Lot's of fixes in maps check logic
Lua_tcp: Deal with temporary fails on write
Lua_tcp: Make write errors fatal and rework error handlers
Meta: Filter some more values
Neural: Add protection agains infinities
Oops, fix math.huge invocation
Plug memory leak
Sigh, another email to string fix
Try to fix another ownership race in ssl connection
Uuencode: Fix parsing of corrupted uuencode
lua_scanners - razor rename need_check function
Require CMake 3.9 to work, remove manual lto crap
Add BROKEN_HEADERS_MAILLIST composite
Add path to greylist-whitelist-domains.inc
Clarify documentation in the config files
Introduce maps.d directories
Log settings id by default
Make LEAKED_PASSWORD_SCAM a composite rule again
Move all surbl/emails rules to rbl
Register new Spamhaus codes
Remove configs for deleted modules
Remove surbl parts, fix hash_format attribute
Show autolearn sample
Slashing: Change default stats backend to Redis
Surbl: Utilise new `check_emails` option
Update header
Use multi-prefixes RBLs in the default config
Deal with case-sensivity in Content-Disposition parser
Eliminate old endpoint
Fix case sensivity when parsing Content-Type
Fix loading of DKIM public keys
Fix procesing of urls
Fix whitelisting when both spf and dkim are required to be valid
Langdet: Fix language detection where no stop words found
Add description to the groups
Add limit for number of URLs in Lua
Add logging of groups to the log_format
Add lua_smtp library
Add maps cache and type refinement
Add p0f scanner
Adopt emails module to use lua_maps
Allow options matching in composites
Allow selectors in rbl module
Allow to output group results
Asn: Allow to use bgpdump when NET::MRT is broken
Calculate tokens occurrences distribution
Clickhouse: Add authenticated user and settings id columns
Clickhouse: Store groups data
Clickhouse: Utilise LowCardinality feature
Implement Redis prefixes registration logic
Implement settings id propagation between deps
Improve AV results caching
Improve autolearning
Improve logging locking logic (remove it actually)
Improve settings processing
Langdet: Limit number of stop words to be checked
Libucl: Allow to sort keys in ucl objects
Lua_config: Extend get symbols method
Lua_maps: Allow static maps for key-value pairs
Lua_mimepart: Add function filter_words
Lua_selectors: Add `words` selector
Lua_selectors: Add sort and uniq transform functions
Lua_selectors: Allow table arguments for selectors
Lua_tcp: Add preliminary support of SSL connections
Lua_trie: More flexible API
Lua_util: Add filter_specific_url function
Lua_util: table_digest can now recursively traverse tables
Maillist: Improve detection
Maps: Allow caching for complex maps
Monitored: Support random lookups
Multimap: Add combined maps prototype
Multimap: Add dependend maps via redis keys selectors
Multimap: Allow multiple email addresses matches
Multimap: Also check detected charset when do filename checks
Output number of messages processed to proctitle
Perform clean SSL shutdown
Performance: Do not use base64 SIMD version for bad inputs
RBL: Support bit results in replies
RBL: Support type specific prefixes
Ratelimit: Consider number of SMTP recipients
Rbl: Add ability to check urls
Rbl: Add resolve_ip based RBLs
Rbl: Make config checks much more strict
Rbl: Support per-rule whitelists
Rbl: Support process script
Rbl: Support replyto addresses
SURBL: Allow to check email domains
Selectors: Add `list` generator
Selectors: Add `specific_urls` extractor
Selectors: Add flatten function
Selectors: Support filter_map and apply_map functions
Store Clickhouse data outside of lua alloc
Support caching for encrypted files and macros
Support images when extracting urls
Support more hyperscan flags
Support protocol flags
URL: Apply stringprep to hostnames to filter garbage
Upstreams: Add lazy resolving logic to all upstreams
Upstreams: Set noresolve flag on numeric upstreams
Use `scores` in apply section
Use maps logic from lua_maps for multimap
Use random monitored in rbl module
lua_scanners - add Razor support
Add another safe-guard in urls processing
Add debug to ssl, fixed write hangs
Add missing groups to C callback symbols
Add more checks for ghosts symbols
Allow to enable or add new actions via settings
Allow to set 0 size for spf/dkim caches
Another bunch of fixes towards protocol mess
Another fix to deal with bad URLs
Arc: Another bunch of fixes for arc signing
Arc: More arc signing fixes
Avoid another overflow in fpconv
Clickhouse: Fix quoting
Clickhouse: Fix retention query quoting
Distinguish empty and non-empty prefilters
Distinguish remote and local addrs parsing
Do not assert if length of sig is bad, just fail verification
Do not assert if we have broken mime boundary in the headers
Do not call implicit strlen to avoid issues
Do not count images urls when checking url regexps for compatibility
Do not output rbl suffix in symbol option
Do not use config pool to avoid issues with double reload
Do not use ephemeral string
Do not use lightuserdata for traceback
Do not use priority in metric registration
Emails: Check email sanity before testing on BL
Emails: Fix misprint in key name
Escape utf in regexp to dodge ragel/hyperscan issue
Extend task_timeout to postfilters stage
Fix ARC signing after fixing another bug in it...
Fix AV scan logic
Fix DMARC_NA behaviour in case of no valid policies
Fix LRU hash iteration logic
Fix alignment mess
Fix configuring symbols without scores
Fix disabling of the actions
Fix dkim signing exceptions
Fix embedded images linking logic
Fix events leak
Fix eviction corner case
Fix fuzzy image score calculation #2962
Fix hang in fuzzy_learn when explicit rotation is set
Fix headers propagation logic
Fix hearbeats restart issue
Fix history reset
Fix log parameter
Fix lua_ip_equal logic
Fix more issues with nested messages + tests
Fix normalization of non-alphabet based languages
Fix offsets when parsing message/rfc822 in multipart
Fix options in rbl symbols
Fix out of bound access in lua logger
Fix out-of-bound read in qp decode
Fix parent CTE propagation
Fix parsing of the received headers with empty part
Fix pending checks for events
Fix printing of NULL pointer with fixed length
Fix race condition in watcher handler
Fix read-after-end in quoted printable decoding
Fix redis sentinel support
Fix registry leak in case of DNS errors
Fix reload logic
Fix sending of large entries via HTTPS
Fix settings reload
Fix some more corner cases for fpconv
Fix trie code when there are regexps and Hyperscan is absent
Further fixes to printing of the FP numbers
Fuzzy_check: Fix timeouts
Grrr, fix empty ip case
Html: Fix processing of fjlig entity
Lang_det: Try better to distinguish Chinese and Japanese
Lua_mime: Fix reversed extensions map
Lua_task: Fix message-less API
Lua_tcp: Report connection failures
Lua_tcp: Various fixes and debugging improvements
Metadata_exporter: This plugin is idempotent not a postfilter
More fixes to extract_specific_urls
More stages fixes
Neural: Another bunch of fixes
Neural: use version in ANN key profile
Postpone lua state destruction to allow lua dtors to be used
Prefer surbl/emails rule on rbl to preserve compatibility
RBL: Fix behaviour of emails_domainonly
Ratelimit: Fix dynamic score
Rbl: Fix emailbl functions
Really fix hyperscan workaround
Set sanity limits for pcre2
Settings: Fix settings check flags
Sort keys when getting data from Lua when filling rules
Statistics: Do not query Redis tokens when there are no learns
Stop IO event on write finished in http connection
Use heuristically detected text parts data
Various fixes to QP encoding algorithm
Various fixes to SSL state machine handler
Various fixes to asn module
Workaround for empty charset in rfc2231 encoding
Allow execution of async events when hs compiles regexps
Bayes expiry: eliminate `default` expiration mode
Dkim: Remove signing code
Dkim_signing: Move sign condition to dkim_signing
Do not lowercase all data send to ClickHouse
Drop url tags
Eliminate lua_squeeze as it has shown no improvements
Eliminate virtual scan time as it is useless
Lua core: Use lightuserdata to index classes
Lua_util: Another rework for extract_specific_urls
Migrate from ip_score to reputation
Move mime modification functions to lua_mime library
Rbl: Major whitelisting logic rework
Remove deprecated plugins
Remove log helper worker
Remove rspamd.classifiers.lua
Rename filter.h to a more sane name
Reorganise selectors implementation
Replace linenoise with replxx
Reputation: Remove ipnet from the ip reputation
Reputation: Slashing - change name of symbols
Rework children operations
Rework config reload
Rework expression API
Rework image urls processing
Rework initialisation to reduce static leaks count
Rework request headers processing
Slashing: Change versioning schema - move to 2.0
Slashing: Turn off postfilters when passthrough result is set
Start moving to replxx
Stop support of signed HTTP maps to simplify code
Store ASN as UInt32 in ClickHouse
Url_redirector: Rewrite plugin
Use a dedicated library for autolearn
Use libsodium instead of hand crafted crypto implementations
Use opaque structure to store a table of mime headers
Add dedicated bitcoin addresses filter rule
Add more detection to LEAKED_PASSWORD_SCAM
Catch LTC addresses
Reduce weight of RSPAMD_EMAILBL
Rework LEAKED_PASSWORD_SCAM rule one more time
Fix case sensitivity when parsing Content-Type
Arc: Another bunch of fixes for arc signing
Arc: More arc signing fixes
Avoid another overflow in fpconv
Fix ARC signing after fixing another bug in it...
Fix dkim signing exceptions
Fix some more corner cases for fpconv
Further fixes to printing of the FP numbers
Ratelimit: Fix dynamic score
Add IP_SCORE_FREEMAIL composite rule
Add cryptobox method to generate dkim keypairs
Add fast hashes to lua cryptobox hash
Add least passthrough results
Allow oversign if exists mode
Clickhouse: Modernise table initial schema
Implement IUF interface for specific fast hashes
Lua_util: Allow to obfuscate different fields
Tune memory management in Rspamd and Lua
Avoid buffer overflow when printing long lua strings
Change the default oversigning headers to a more sane list
Clickhouse: Do not store digest as it is not needed now
Clickhouse: Fix lots of storage issues
Clickhouse: Support custom actions
Deny URLs where hostname is bogus
Do not blacklist mail by SPF/DMARC for local/authed users
Fix DoS caused by bug in glib
Fix UCL parsing of the multiline strings
Fix buffer overflow when printing small floats
Fix init code for servers keypairs cache
Fix issue with urls with no tld (e.g. IP)
Fix memory in arc signing logic
Fix memory leak in language detector during reloads
Fix mixed case content type processing
Fix processing of the ip urls in file
Fix use after free
HTML: Fix `size` attribute processing
Hum, it seems that 99ff1c8 was not correct
Lua_task: Fix task:get_from method
Preserve fd when mapping file to scan
Re-use milter_headers settings when doing arc signing
Set dmarc force action as least action
Switch to GMT
allow PKCS7 signatures to be text/plain, too
Move lua_worker to a dedicated unit
Allow to load users plugins from plugins.d
oversign openpgp and autocrypt headers
Add SPF FFI library for Lua
Add more verbosity for SPF caching
Antivirus: Handle encrypted files specially
Clickhouse: Slashing - add new fields to CH
Dkim_signing: Add OpenDKIM like signing_table and key_table
Dkim_signing: Allow to use new options as maps
Import fpconv library
Lua_maps: Allow static regexp and glob maps
Parse ical files
Rspamadm: Add dns_tool utility
Store SPF records digests
Use fpconv girsu2 implementation for printing floats
Clickhouse: Use integer seconds when inserting rows
Fix floating point printing
Fix processing of embedded urls
Lua_clickhouse: Fix CH errors processing
Make spf digest stable
Properly detect encrypted files in zip archives
Slashing: Store times in GMT timezone in ClickHouse
Add additional conditions to perform BTC checks
Fix pay-to-hash addresses validation
Add vendor groups for symbols
Add `rspamadm template` command
Allow to add messages from settings
Allow unconnected DNS servers operations
Check limits after being set, migrate to uint64
Greylist: Allow to disable greylisting depending on symbols
Improve lua binary strings output
Mime_types: Implement user configurable extension filters
Mime_types: When no extension defined, detect it by content
Preprocess config files using jinja templates
Replies: Filter replies sender to limit whitelisting to direct messages
Treat all tags with HREF as a potential hyperlinks
Validate BTC addresses in LEAKED_PASSWORD_SCAM
Add crash safety for HTTP async routines
Another fix for Redis sentinel
Clickhouse: Fix table schema upload
Core: Fix squeezed dependencies handling for virtual symbols
Finally fix default parameters parsing in actions section
Fix ES sending logic (restore from coroutines mess)
Fix finishing script for clickhouse collection
Fix priority for regexp symbols registriation
Fix various issues found by PVS Studio
Initialize lua debugging earlier
Neural: Fix training
Rework cached Redis logic to avoid sentinels breaking
SURBL: Fix regression in surbl module
Fix double signing in the milter
Change lua global variables registration
Rework HTML content urls extraction
Start rework of aliasing in Rspamd
Add missing includes
Move to options
Rbl: DWL is actually special whitelist
Relax some uribl rules
Remove abuse.ch
Html: Entities are not valid within tag params values
Add `rspamadm mime sign` tool
Add configgraph utility
Add dedicated ZW spaces detection for URLs
Add flag to url object when visible part is url_like
Add method task:lookup_words
Add pyzor support (by crosenberg)
Allow to add upstream watchers to Lua API
Allow to set rewrite subject pattern from settings
Better escaping of unicode
Clickhouse: Allow to store subject in Clickhouse
Core: Add QP encoding utility
Core: Add libmagic detection for all parts
Core: Add support for gzip archives
Core: Allow to construct scan tasks from raw data
Core: Detect charset in archived files
Core: Ignore and mark invisible spaces
Core: Normalise zero-width spaces in urls
Core: Process data urls for images
Core: Relax quoted-printable encoding
Core: Support RFC2231 encoding in headers
Core: Support telephone URLs
Core: allow to emit soft reject on task timeout
DCC: Add bulkness and reputation checks to dcc
Elastic: Modernize plugin
Export visible part of url to lua
Fuzzy_storage: add preliminary support of rate limits
HTML: Specially treat data urls in HTML
Implement event watchers for upstreams
Implement includes tracing in Lua
Improve dkim part in configwizard
Lua_scanners: Add VadeSecure engine support
Lua_task: Add flexible method to get specific urls
Mime_types: Add MIME_BAD_UNICODE rule
Mime_types: Use detected content type as well
Plugins: Add preliminary version of the external services plugin
Query sentinel on master errors
Regexp: Allow local lua functions in Rspamd regexp module
Rspamadm: Allow to append footers to plain messages
Rspamadm: Allow to rewrite headers in messages
Selectors: Add `ipmask` processor
Settings: Allow hostname match
Settings: Allow local when selecting settings
Settings: Allow multiple selectors
Settings: Allow to inverse conditions
Support User-Agent in HTTP requests
Support ed25519 dkim keys generation
Try to filter bad unicode types during normalisation
external_services - oletools (olefy) support
lua_scanners - icap protocol support
lua_scanners - spamassassin spam scanner
Add filter for absurdic URLs
Add some more cases for Received header
Allow to disable/enable composite symbols
Arc: Use a separated list of headers for arc signing
Archive: Final fixes for 7z archives
Clickhouse: Fix database usage
Controller: Make save stats timer persistent
Core: Detect encrypted rarv5 archives
Core: Don't detect language twice
Core: Fix address rotation bug
Core: Fix content calculations for message parts
Core: Fix emails comments parsing and other issues
Core: Fix etags support
Core: Fix headers folding on the last token
Core: Fix iso-8859-16 encoding
Core: Fix log_urls flag (and encrypted logging)
Core: Fix part length when dealing with boundaries
Core: Fix parts distance calculations
Core: Fix processing of NDNs of certain type
Core: Implement logic to find some bad characters in URLs
Core: treat nodes with ttl properly in lru cache
Fix Content-Type parsing
Fix HTTP headers signing case
Fix control interface
Fix deletion of the duplicate headers
Fix emails filtering in emails module
Fix greylisting log message and logic
Fix issues with storing of the accepted addr in rspamd control
Fix maps object update race condition
Fix memor leaks and whitespace processing
Fix processing of null bytes in headers
Fix rcpt_mime and from_mime in user settings
Fix rfc2047 decoding for CD headers
Fix rfc2231 for Content-Disposition header
Fix setting of the subject pattern in config
Greylist: fix records checking
HTML: Another HTML comments exception fix
HTML: Another entities decoding logic fix
HTML: Fix HTML comments with many dashes
HTML: Fix entities in HTML attributes
HTML: Fix some more SGML tags issues
Ignore whitespaces at the end of value in DKIM records
MID module: Fix DKIM domain matching
Milter_headers: Fix remove_upstream_spam_flag and modernise config
Mime_parser: Fix issue with parsing of the trailing garbadge
Mime_parser: Fix parsing of mime parts without closing boundary
Multimap: Fix operating with userdata
Process orphaned `symbols` section
Rdns: Fix multiple replies in fake replies
Rework groups scores definitions
Set proper element when reading data from Sentinel
Set rspamd user to initialise supplementary groups on reload
Settings: Fix selectors usage
Sort data received from Sentinel to avoid constant replacing
groups.conf - filename typo
lua_scanner - oletools typos, logging
lua_scanners - actions and symbol_fail
lua_scanners - fix luacheck
lua_scanners - kaspersky - response with fname
lua_scanners - savapi redis prefix
tests - antivirus - fprot symbols
Convert rspamd-server to a shared library
Dcc: Rework DCC plugin
Enable explicit coroutines symbols
Rework telephone urls parsing logic
Rewrite RBL module
Settings: Rework settings check
Slashing: Distinguish lualibdir, pluginsdir and sharedir
Unify task_timeout
Use VEX instructions in assembly, relocate
Make flags mutually exclusive for mime parts
Strictly deny unencoded bad utf8 sequences in headers
Add Kaspersky antivirus support
Add method to get dkim results
Add more words regexp classes
Allow to choose words format in `rspamadm mime`
Allow to get all types of words from Lua
Allow to get task flags in C expressions
Allow to require encryption when accepting connections
Ignore bogus whitespaces in the words
Implement more strict configuration tests
Improve SPF results in Authentication-Results
Support ClickHouse database
Add failsafety for utf8 regexps
Do not trigger BROKEN_CONTENT_TYPE on innocent text parts
Emit error if connection has been terminated with no stop pattern
Fix boundaries checks in embedded messages
Fix double free
Perform policy downgrade on sample out, add tests
Properly escape utf8 regexps in hyperscan mode
Selectors - attachments args condition
Some fixes for raw parts
Treat learning errors as non-fatal
Use tld when looking for DKIM domains
Add DWL support in the default configuration
Disable rspamd_update by default (again)
Fix configuration sample for ratelimit
Disable broken url tags by default
Fix \0 processing when doing RSA sign
Fix adding symbols to their primary groups
Add `rspamadm cookie` utility
Add specialised functions for generating encrypted cookies
Add support of cookies in replies module
Add support of words regexps
Allow to add 3rd party clang plugins
Allow to create lua regexps from glob or plain patterns
Allow to set custom limits for upstream lists
Detect orphaned parts and attach them to message
Filter tokens in bayes
Fold b= value when doing arc sealing
Ignore cookies in the future and too old in the past
Skip stop words in statistics
Store stop words and allow to query them
Support query arguments in controller's custom commands
Tune upstream limits in Rspamd proxy
Use different callback symbols for different uribls
Write DKIM selector in dkim allow/reject symbols
Add obs_fws state support to eoh state machine
Add sanity check when applying mime boundaries heuristic
Antivirus - virus names with 0 were recognized as tables
Disable headernames in bayes temporarily
Do not allow syntax errors in include files...
Do not allow to merge an object with an array (or vice versa)
Don't perform forged recipients check for missing recipients
Fix DKIM based RBLs
Fix actrie implementation (sync from upstream), fixed OOB read
Fix explicit methods call in selectors
Fix extraction of additional parts
Fix finalization for internal plugins
Fix override_defaults function
Fix squeezed symbols when using settings
Fix urls insertion in Clickhouse module
Furhter fixes to ratelimits logic
Ignore signatures when looking for boundaries
Properly set learned count
Really fix ratelimits configuration and work
Remove ambigious format flag from printf
Restore URLs exporting in ClickHouse plugin
Rework bayes calculations...
Switch from chi-square to naive for large Fisher value
Treat normal password as enable password if there is no enable password
Use proper syntax for making DNS requests
Various fixes in embedded plugins
Fix options insertion
Fix words decay one more time (affects long messages)
Increase default words_decay
Plug memory leak in redis pool
Add `check_violation` feature to DKIM/ARC signing
Add only unique elements to Clickhouse url arrays
Allow `g+:` and `g-:` composite atoms
Allow dkim domains check in surbl
Allow maps with HTTP auth
Allow to disable actions by users settings
Extend whitelisting options
Store url object in images
Use verdict instead of the plain action in plugins
Allow to call fstring append with NULL string
DCC - luacheck
Do not load torch on each rspamadm invocation
Fix boundaries detection and rework stop words algorithm
Fix dependencies for DNS_SIGNED symbol
Fix errors when dealing with dynamic rates/bursts in Ratelimit
Fix groups mess
Fix groups mess
Fix parsing address with comments
Fix resolving in DMARC reports
Fix various issues with parsing of the received headers
Fix watchers issue in lua_tcp when doing no resolving
Plug memory leak in language detector (affects reloads)
Remove one letter stop words
Slashing: backport chunk logic from libucl
Stop libevent from using cached time in rspamadm
Try to fix watchers chaining
Various fixes in redis sync interface
ip_score - respect check_authed and check_local settings from config
Always create result for a task
Completely rewrite DMARC checks logic
Rework and fix whitelist plugin
Add arguments schemas to processors and extractors
Add functional selectors library
Add generic selector to reputation module
Add more ratelimits: by digest, by attachments data, by filenames
Add preliminary stop words detection support
Add pure Lua debugm function
Add schema validation for Redis settings
Add selectors combine function
Add some recursion protection to lua logger
Add support for Lua API tracing
Allow to apply schema to arguments
Allow to get dkim signing data directly from HTTP headers
Allow to reuse existing authentication results
Cache selectors results in re runtime
Implement new text tokenizer based on libicu
Integrate selectors framework to multimap
Relax FORGED_RECIPIENTS
Support (almost) all html entities
Support adding and deletion of recipients in the milter block
Support gathering HTTP body from fragments in lua_http
Support multi flag in regexp and glob maps
Support selectors in ratelimit module
Support selectors in settings
Use khash in HTML parser
Use pure Lua debugm function
Add fail-safety for destroying sessions
Allow to add result-less fake DNS records
Another try to fix race conditions on config unload
Call Lua callback on DNS timeouts
Deprecate task:inc_dns_req as it is redundant
Do not allow events deletions on cleanup
Do not try to process skipped messages
Fix HTTP requests with no body
Fix another cleanup race condition
Fix bug in processing of pcre regexps
Fix byte array allocation in the pool
Fix crashes on task cleanup
Fix dynamic buckets in ratelimits
Fix endless loop when waiting for Rspamd to stop
Fix lua_util.str_split in case of delimiters set
Fix more issues with watching of async events
Fix stop words detection and loading logic
Fix various corner cases for language detection
Fix watchers in lua_tcp
Fix words decay algorithm
Implement watchers replacement to handle nested calls
Save faked code into fake dns record
Show the proper frame when using lua_util.debugm
Use fake dns records in tests
Use unicode replacements for HTML entities
fixed "cannot find dependency on symbol 1" issue when using replaced symbols in spamassassin rules
partition_id is not available in old versions of CH
Move phishtank to a DNS based service
Rework Clickhouse plugin to use the new API
Rework language detector
Rework utf content processing in text parts
Fix caseless comparison of equal length strings
Add HTTP basic auth support to elastic and clickhouse plugins
Add SPF selector to reputation
Add support of the fallback backends for HTTP maps
Allow to print full mime structure when extracting mime data
Allow to split symbols in reputation plugin
Check attachments only on AV scanners in attachments_only mode
Disable all SSL checks if ssl_no_verify flag is set
Implement parsing of scoped IPv6 addresses
Improve `rspamc counters` output
Add sanity checks when expanding SPF macros
Allow to parse SA rules with no spaces around =~ (dirty hack)
Avoid one extra byte writing
Deal with direct hash table
Detect empty text part as text, not HTML
Do not reduce map watch timeout for mixed http/file maps
Fix HTML part detection heuristic
Fix double free in redirectors cleanup
Fix legacy history handling in the controller
Fix messages insertion
Fix sending string method
Fix statconver command line arguments
Fixed argument checking for being null
Fixed issues reported by luacheck
Freeze updates queue when do actual storage update
HTTP map hash is per-backend and not per-map
Plug memory leak in fuzzy updates
Prefer 'MTA-Name' when producing authentication results
Replace bad unicode sequences instead of stopping on them
Set classifier version on learning
Add more extended statistics about fuzzy updates
Add more non-conformant Received headers support
Add preliminary function to get fuzzy hashes from text in Lua
Allow to configure AV module rejection message
Implement fuzzy hashes extraction in mime tool
Improve WHITE_ON_WHITE rule
Improve integer -> string conversion
Reuse maps in multimap module more aggressively
Avoid race condition in skip map as pool lifetime is not enough
Eliminate all specific C plugins pools
Fix DKIM check rule if DNS is unavailable
Fix build where ucontext is defined in ucontext.h
Fix crash in base url handling
Fix descriptors leak in sqlite3 locking code
Fix messages quarantine
Fix padded numbers printing
Fix race condition on maps reinit
Fix regexp functions when no data is passed
Fix specific urls extraction
Fix styles propagation
Improve resetting of the limit buckets
Initialize sqlite3 properly
Work with broken resolvers in resolv.conf
Check NM part of pubkey to match it with rotating keypairs
Do not overwrite PID of the main process
Fix maps after reload
Fix maps race conditions on reload
Fix shmem leak in encrypting proxy mode
Add a concept of ignored symbols to avoid race conditions
Add ability to print bayes tokens in rspamadm mime
Add method to get statistical tokens in Lua API
Add preliminary mime stat command
Add rspamadm mime tool
Add urls extraction tool
Address ZeroFont exploit
Allow rspamadm mime to process multiple files
Allow to extract words in `rspamadm mime`
Allow to print mime part data
Allow to show HTML structure on extraction
Distinguish IP failures from connection failures
Improve output for mime command
Improve styles propagation
Main process crash will now cleanup all children
Preload file and static maps in main process
Print stack trace on crash
Process font size in HTML parser
Propagate content length of invisible tags
Read ordinary file maps in chunks to be more safe on rewrites
Support base tag in HTML
Support more size suffixes when parsing HTML styles
Support opacity style
Another fix for nested composites
Fill nm id in keypairs cache code
Fix colors alpha channel handling
Fix destruction logic
Fix double free
Fix maps preload logic
Fix nested composites process
Fix proxying of Exim connections
Fix reload crash
Fix rspamadm -l command
Update ed25519 signing schema
Fix multiple neural networks support
Add decryption function to keypair command
Add gzip compression for HTTP requests in elastic module
Add gzip methods to lua util
Add maps based on Top Level Domains
Add pubkey checks for dkim_signing
Add support of fake DNS records
Add tool to encrypt files
Allow to add symbols using settings directly
Allow to match private and public keys for DKIM signatures
Allow to set task flags via settings
Allow to specify fake DNS address from the config
Implement signatures verification using rspamadm keypair
Implement signing using `rspamadm keypair`
Improve error reporting for DKIM key access issues
Provide $HOSTNAME variable in UCL
Rework levenshtein distance computation
Split message parsing and processing
Support ED25519 DKIM signatures
Support encrypted configs in UCL
Suppress duplicate warning on very large radix tries
Use OSB to combine header names
Cleanup maps data on shutdown
Fix '~' behaviour in composites
Fix HTTP maps updates
Fix NIST signatures
Fix RFC822 comments when processing a mime address
Fix double free
Fix dynamic settings application
Fix for CommuniGate Pro maillist
Fix keypair creation method to actually create keypair...
Fix matching patterns with no paths
Fix memory leak in parsing comments
Fix parsing of urls with numeric password
Fix plugins intialisation in configwizard
Fix potential crash on reload
Fix potential race condition for a finished HTTP connections
Fix race-condition leak on processes reload
Fix signing in openssl mode
Free language detector structures
Relax alignment requirements
Send DMARC reports compressed
Try to fix leak in dmarc module
Try to plug memory leak in metric exporter
Add MSBL proposed return codes
Add additional groups for policies
Do not use volatile Lua strings as UCL keys
Add ability to add fuzzy hashes to headers
Add function to extract most meaningful urls
Add rule to block mixed text and encrypted parts
Allow multiple groups for symbols
Allow to disable lua squeezing logic
Allow to get multipart children in Lua
Allow to insert multiple headers from milter headers
Allow to print scores in subject and further extensions
Be more error-prone in squeezed rules
Support multiple return codes in emails module
Use EMA for calculating averages
Use common jit cache for all regexps
support for CommuniGate Pro self-generated messages
Allow to have multiple values for headers as arrays
Do not open sockets for disabled workers
Fix AuthservId
Fix base64 folding in Lua API
Fix build on non-x86 platforms
Fix cached maps logic
Fix compatibility with old maps query logic
Fix crash if skip_map is used
Fix importing static maps from UCL
Fix parsing of unix sockets
Fix raw_mime regexp on HTML part with no text content
Fix tables logging
Fix vertical tab handling in libucl
Try to fix frequency counters
Use better sharding for ip_score
Use multiple results from SURBL DNS reply
When doing AV scan select a different server for retransmit
Major stock config updates:
Make more sane fuzzy_check default settings
Fix ucl escape for bad symbols
Add failure symbol for AV module
Add lazy expiration mode for new classifier schema
Add preliminary version of maps stats plugin
Allow to block fuzzy requests from specific networks
Allow to change `expire` of live statistics
Distinguish AV failure from clean result
Further improvements of language detector by using khash
Further optimization of the lang_detection
Implement cluster-aware bayes expiry
Implement exclude patterns in rspamc
Implement glob maps in addition to regexp maps
Implement map statistics function for lua API
Implement stop symbols for Clickhouse collection
Support recipients separated by commas
Try harder to upload scripts to the Redis server
Upgrade t1ha distribution
use_domain_sign_inbound
Use scores from maps if `symbols_set` is not defined
Add resolving version of radix map helper
Check URL before adding implicit prefix
Do not check pid/state when using PRNG
Fix CentOS logrotate script for systemd
Fix slash + dot in urls
Fix systemd version of the logrotate script
Propagate key when import implicit array from Lua
Strip spaces from map keys and values
Try to fix a specific case when processing milter protocol
Try to fix crash when a tcp connection cannot be set
Typo use_domain_local --> use_domain_sign_local
Various fixes to once_received module
Plug bad memory leak in protocol reply
Add avx2 codec for base64
Add method to receive all URL flags from Lua API
Allow to fold headers on stop characters
Allow to set lua_cpath from options
Allow to specify custom rejection message in milter
Deal with unnormalised Unicode obfuscation
Do not detect language twice for relative parts
Implement oversigning feature
Implement silent logging level to minimize noise in logs
Improve URL_IN_SUBJECT rule
Use hashing to reduce redis attack surface
Add oversigning for the most important headers
add 'rewrite subject' to History dropdown
Another fix in folding algorithm
Do not call multimap addr for parts of addr if filter is presented
Do not clean hostname on generic reset
Do not create pid file in no-fork mode
Fix fold_after case to preserve multiple spaces
Fix folding and folding tests
Fix hostname usage in milter mode
Fix lua RSA verify and its tests
Fix metadata exporter send_mail backend (#2124)
Fix processing of '\v' in libucl
Fix shemaless URLs detection
Fix support of multiple headers in sign_header
Fix usage of util.parse_mail_address
Fix weights of dynamic squeezed rules
Leak from bucket before checking the burst
Stop using own localtime as DST could be messy in many cases
Treat unnormalised URLs as obscured
Restore leaky bucket model in ratelimit plugin
Store emails in Clickhouse
Support single quotes in config
Use templates when publishing CH schema
Improve Docker image
Add rounding when printing a lot of FP variables
Allow to disable certain actions by assigning null to them
Disable results caching
Fix disabling of squeezed symbols
Fix scan time set
Rework logic of actions setting
Try to fix various Lua stack issues
Fix lowercase comparison
Timezone defines seconds WEST UTC not East
Add filename to log format
Add lua rules squeezing
Add related symbols analysis to rspamd_stats
Remove upstream `X-Spam: Yes` header by default
rspamd_stats: Output progress info on STDERR
Whitelist for emails module
Do not allow dependencies on self
Do not cache metric result
Do not trust all issuers as a client certificate
Fix dependencies in lua squeeze
Fix enabling/disabling squeezed rules
Fix enabling/disabling symbols
Fix external dependencies
Fix processing of a single compressed file
Fix some typos
Fix various modules in case of empty message
Handle callbacks that returns table of options
Improve cached action interaction
Make dynamic conf more NaN aware
Never hide actions from WebUI `configuration` tab
Add bayes_expiry as explicit module
Adjust names and weights for neural network plugin
Change updates url
Default statistics is stored in Redis now
Disable fann_redis module by default
Fix default elastic configuration
Fix double quote position
Massive config rework for new structure of symbols and scores
Rename Rambler BLs as they are now Rspamd's ones
Use dedicated rspamd.com subdomains
Use more data from rspamd.com fuzzy storage
Add sanity guards for badly broken HTML
Another errors path handling fix
Another portion of tokenization fixes
Do not send reject messages after set reply
Fix ARC chain verification
Fix crash in milter errors handler
Fix memory leak in spf caching logic
Fix milter commands pipelining
Fix newlines detection
Fix semicolons parsing in the content type
Plug memory leak in zstd protocol compression
Add ability to match score in force_actions module
Add aes-rng PRF to libottery
Add 'composites' debug module
Add concept of experimental modules
Add DKIM trace symbol
Add EBL to the default config
Add expected ip check for emails plugin
Add framework to manage Redis scripts
Add framing for the new reputation generic plugin
Add function to show plugins stat
Add gzip compression support for clickhouse module
Add gzip compression support for rspamd controller
Add gzip support when sending lua http requests
Add json output for rspamd_stats
Add method to do a synchronous Redis connection
Add method to get all content-type attributes in Lua
Add `-m` flag to configdump to show modules states
Add mime types to extensions map
Add more features to rescore utility
Add more gtube like patterns to test other spam actions
Add more metafunctions, improve logging
Add more text attributes
Add new configwizard command to rspamadm
Add new tooling for stats conversation
Add old groups migration tool
Add plugins state variable
Add preliminary ecdsa keys support in DKIM
Add preliminary support of idempotent symbols
Add Redis server wizard
Add routine to convert old style stats to a new one
Add some sanity checks for actions and controller
Add statistic convertation module to configwizard
Add sugestions logic to mempool allocator
Add support of config transform in Lua
Add timeout to rspamc when doing corpus test
Add tooling to convert bayes schemas
Add torch conditional to configuration
Add torch-decisiontree package
Add torch-optim contrib package
Add TTL autodetection
Add urls reputation to the reputation framework
Allow floating and negative values in expressions limits
Allow multiple CTs in full extensions map
Allow multiple fann rules
Allow randomly select User-Agent from a list
Allow rspamadm commands to export methods in Lua
Allow rule specific min_bytes in fuzzy check
Allow to adjust symbols scores from Lua
Allow to attach stat signature to messages
Allow to change SMTP from via milter headers
Allow to configure monitored
Allow to create directories in Lua API
Allow to disable torch and skip train samples for ANN
Allow to discard messages dynamically
Allow to enable/disable languages from the detector
Allow to generate DKIM keys from rspamadm API
Allow to get CPU flags from Lua
Allow to have high precision timestamps in logs
Allow to insert headers into specific position
Allow to limit redirector requests per task
Allow to load and use dynamic ANNs with torch
Allow to quarantine rejected messages using milter interface
Allow to receive signing keys from mempool vars
Allow to reserve elements in libucl
Allow to reuse signal handlers chains
Allow to set custom mempool variables from settings
Allow to set headers from settings
Allow to set Settings-Id for all connections
Allow to skip real action and add a header instead
Allow to skip specific hashes in fuzzy storage
Allow to spawn asynchronous processes from Lua
Allow to specify number of threads for ANN learning
Allow to use global lua maps in settings
Allow to use postfilters in composites
Allow to verify signatures from HTTP headers in maps
Antivirus: ordered pattern matches
Authentication-Results: support hiding usernames
Automatically create tables in clickhouse
Catch next-to-last bad extension
Check cached maps more frequently
Check groups sanity
Deal with obscured URLs with @ symbols
Enhance task:store_in_file method
Export password encryption routines to Redis
Filter nan and inf when adding scores
Finalize 7zip files support
Further improvements in language detection
Further improvements in language detection algorithm
Generic key name expansion for Redis keys
Hash whitelist for fuzzy_check
Implement bayes signatures storage
Implement buckets for Redis backend
Implement DKIM reputation adjustments
Implement forked workers children monitoring
Implement headers flags in mime parser
Implement l1/l2 regularization against the current weights
Implement manual ANN train mode
Implement per-user ANN support
Implement torch based ANN learning
Implement upstreams logic for clickhouse exporter
Import torch to Rspamd...
Improve allocation policy when interacting with Lua
Improve Lua/C interaction in history_redis
Improve multiple fuzzy results combining
Improve parsing of DKIM keys: parse algorithm
Improve subprocesses termination handle
Improve symbol type parsing in Lua API
Metadata Exporter: e-Mail Alerts: support multiple recipients; alerting senders/recipients/users (#1600)
Milter headers: support adding/removing arbitrary headers from config
More metatokens
Multimap: checking of symbol options
Multimap: template URL filter
New bayes expiry plugin
Periodically save rspamd stats to disk
Preliminary import of the elasticsearch module
Ratelimit: allow full addresses in whitelisted_rcpts
Ratelimit: support fetching limits from Redis
RBL: received: filtering by position & flags
Read global maps for lua
Redis settings: support checking multiple keys
Rework fann plugin to be a normal post-filter
Rework logging configuration for rspamadm case
Rework short hashes generation to avoid FP
Save real ucl types when exporting to Lua
Set TCP_NODELAY for milter sockets
Setup DKIM signing from configwizard
Skip certain symbols from ANN classify
Store plugins state
Support etag for HTTP maps
Support Expires header when using HTTP maps
Support sending given header multiple times in lua_http
Support sha512 in DKIM signatures
Try to detect HTML messages better
Use array instead of queue to reduce memory fragmentation
Use controller port by default when connecting to local IP
Use rdtsc where possible
Actively load skip hashes map in fuzzy storage
Add another workaround to display history properly
Add definition for old glib compatibility method
Add missing rspamadm control options to help
Add workaround for IPv6 in sendmail
Add workaround for system with non-XSI compatible tzset
Allow oversigning in DKIM signatures
Allow to check negative scores in force_actions
Allow to have negative actions limits
Allow to set any layers number for fann rules
Another fix for rdtcs
Another fix to lua xmlrpc
Another try to deal with #1998
Another try to fix #1998
Another try to fix threading in torch
Apply language detection when adding fuzzy hashes
ARC: Fix Lua 5.3 compatibility; timestamp should be integer
Authentication Results: Fix SPF smtp.mail_from
Auth-Results: Multiple DKIM signatures
Avoid changing content-transfer-encoding header's value
Better handling of the legacy protocol
Check decoded headers sanity (e.g. by excluding \0)
Check for magic when checking for an archive
Cleanup mess with groups
Clickhouse: Insertion in the symbols table
Crash in URL processing
Deal with another case when processing exceptions
Deal with deeply nested messages more aggressively
Deal with nan and inf encoding in json/ucl
Deal with non-key arguments in lua_redis.exec_script
Deal with unknown weight
Deal with URLs with no slashes after protocol
Deal with URLs wrapped in [] in text parts
Deal with zero scores symbols
Default monitoring domain for surbl plugin
Delay upstream re-resolving when one upstream is defined
Detection of maillist optimized and fixed
DKIM signing: allow for auth_only to be false
DMARC: require report_settings for sending reports only
Do not allow garbadge when checking url domain
Do not cache SPF records with PTR elements
Do not constantly re-resolve failed upstreams with a single element
Do not crash if no words defined
Do not crash on empty subtype
Do not expose spamtrap messages to SMTP reply
Do not fail rbl plugin when there are no received or emails
Do not ignore short words
Do not include idempotent/nostat symbols to checksum
Do not override groups when converting metrics
Do not override unix socket group when group comes before owner
Do not skip the last character
Do not spawn too many workers by default
Do not stop monitored on dns errors
Do not stop parsing headers on bad IP header
Do not strip last character in the last word
Do not treat script content as text
Do not try to connect to non-supported addresses
Do not try to dereference last character
Do not try to sign unknown domains
Don't use whitelist/greylist maps as regexp, but as map
Erase unknown HTML entities
Exim Received header protocol parsing
First load selector_map and path_map. And only return false when domain not found if try_fallback is false
Fix a lot of FP in chartable in mixed languages
Fix ANN checks
Fix ANN loading logic
Fix another tokenization issue
Fix autolearn parameters reading
Fix bad archive characters stripping
Fix bad extension check
Fix bayes schema conversion
Fix blacklists and DMARC in whitelist
Fix brain-damaged torch build system
Fix build on FreeBSD
Fix clickhouse exporter
Fix clickhouse schema
Fix comparision
Fix composites processing
Fix connecting to a unix socket in rspamadm statconvert
Fix couple of warnings
Fix crashes in the rspamd_control path
Fix deletion from hash
Fix DKIM forgeries via multiple headers
FIx dynamic conf plugin
Fix emails detection
Fix empty headers simple canonicalization
Fix empty threshold check in greylisting module
Fix encrypted legacy reply in fuzzy storage
Fix enormous scores for R_WHITE_ON_WHITE
Fix exceptions list in surbl
Fix *_EXCESS_BASE64 rules
Fix expire rounding
Fix extra hits in PCRE mode for regular expressions
Fix format strings
Fix get_content method
Fix groups override when defining symbols
Fix learned count in new schema
Fix learn errors propagation
Fix loading of per-user redis backend for statistics
Fix logging buffer corruption in case of repeated messages
Fix lua cached elements invalidation
Fix merging of the implicit arrays
Fix mime_types scoring
Fix multiple headers in DKIM headers list
Fix null callee case in clang plugin
Fix obscured url in format user@@example.com
Fix parsing of the per-user script
Fix priorities in rspamd_update, disable rules execution
Fix processing of closed tags
Fix processing of idempotent rules when autolearn fails
Fix processing of multipart parts with no headers
Fix processing of skip-hashes in fuzzy storage
Fix PTR processing in SPF
Fix pushing country to clickhouse asn table
Fix random forests module
Fix real IP parsing for some strange Exim received
Fix Redis timeout setup
Fix reload crash when hyperscan is enabled
Fix reusing of redis connection after exec
Fix sanity checks on macro value
Fix setting of path and cpath for Lua
Fix setting of signals when spawning a thread
Fix text splitting: stack overflow (too many captures)
Fix ticks processing
Fix upstream addrs updating
Fix urls/emails distinguishing found in queries
Fix user settings check
Fix variable increment
Fix various issues in stat_convert
F-PROT Antivirus infection string for all known occurences
F-PROT Antivirus: only check return code to determine infection
Further fixes around floating point expressions
Further fixes to ANN module
Further fixes to rescore tool
Further fixes to support ES 6
Further tokenization fixes
Greylisting set phase is not idempotent
Handle proxy copy errors
Header checks: Fix get_raw_header method
Header checks: REPLYTO_UNPARSEABLE rule
Kill spawned processes on termination
Load skip map from all processes as shared cache is unavailable
Lowercase HTTP headers to make them searchable from Lua
Lowercase words
Lua_http: freeing
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"
Map absence is not an error
Metadata exporter: check IP sanity
Milter headers: custom headers: removing headers
Milter headers: skip_local / skip_authenticated settings
Milter headers: X-Spamd-Result header if X-Virus ran first
mime_types: fix next-to-last extension length check
More hacks to deal with old configs
Move composites second pass to the dedicated stage
Multimap: received: filtering of artificial header
Multiple fixes in torch based ANN plugins
Once more (#1879) fix bad extension check
Optimize rspamd_fstring_t reallocations
options.local_networks setting
Parse HREF urls without explicit prefix
Plan new event on HTTP errors
Plug another possible memory leak
Plug memory leak
Plug memory leak in lua_tcp
Plug memory leak when setting email addresses from Lua
Propagate learn/stat errors more precisely
Ratelimit: fix whitelisted_rcpts matching
Ratelimit: lowercase email addresses
RBL: received: deal with missing data (#1965)
Rebalance and slightly rework MX check plugin
Redis key expansion: EVAL: deal with strings
Redis script loading in DMARC; URL tags; URL reputation
Reject invalid bh for DKIM signatures earlier
Relax pem signature detection
Relax unicode properties requirements for chartable module
Remove extra noise from dkim and arc signing
Remove hop-by-hop headers in proxy
Remove incorrect method `task:set_metric_subject`
Replace space like characters in headers with plain space
Restore old style ratelimits support
Rework elasticsearch plugin
Rewriting subjects via force actions module
RPM postinstall
Sanitize IP in history redis
Select the correct signature when doing simple canon
Set CLOEXEC flag on files opened
Setting check_local / check_authed in plugins (#1954)
Settings: avoid checking invalid IP (#1981)
Settings: header: deal with multiple settings (#1988)
Skip checks if both extensions are not bad
Skip nostat tokens when get number of tokens
Some more fixes towards emails detection
SpamAssassin: Fail check_freemail_header if regexp didn't match
Stop using of g_slice...
Switch rspamadm logging to message level
Symbol 'FANNR_SPAM' has its score defined..
Table parameter for rspamd_config:add_doc()
Treat 'rewrite subject' as spam action
Try harder in passing IPv6 addresses
Try harder to find rfc822 notifications
Try harder to find urls
Use decoded values when parsing mime addresses
Use full URL when making an HTTP request
Use greylisting threshold in greylisting module
Use n_words attribute from ngramms
Use raw urls when sending requests to redirector
Use the right boolean operator on error check
Use weight from map for fuzzy scoring
Various fixes to elastic plugin
Various fixes to fann_redis instantiation
Various improvements in language detection
Virus infection string for F-PROT Antivirus
Virus infetction string for F-PROT Antivirus
WebUI: use relative path for savemap (#1943)
WHITE_ON_WHITE: Ensure score is matched to part that fired the rule
Write configuration changes as UCL config
Add frame for new reputation based IP score module
Continue stat_convert rework task
Implement new version of fuzzy replies
Improve readability of xmlrpc API
Kill metrics!11
Ratelimit module
Rename fann_redis to neural plugin
Reorganize mime_types module
Rework rescore utility
Rewrite model and learning logic for rescore
Run post-loads when all initialization is completed
Simplify lua path initialization
Start major stat_convert rework
Start mempool fragmentation reduce project
Start moving of fann redis to torch
Stop embedding rspamadm scripts into C
Use floating point arithmetics in Rspamd expressions
Use frequencies distribution in language detector
Penalise R_BAD_CTE_7BIT for utf8 messages
Add sanity guards for badly broken HTML
Another errors path handling fix
Fix ARC chain verification
Fix crash in milter errors handler
Allow to insert headers into specific position
Allow to receive signing keys from mempool vars
Authentication-Results: support hiding usernames
Another try to deal with #1998
Another try to fix #1998
Better handling of the legacy protocol
Check decoded headers sanity (e.g. by excluding \0)
Deal with nan and inf encoding in json/ucl
Deal with URLs wrapped in [] in text parts
DKIM signing: allow for auth_only to be false
Do not crash on empty subtype
Do not fail rbl plugin when there are no received or emails
Do not skip the last character
Do not try to dereference last character
Do not try to sign unknown domains
Exim Received header protocol parsing
First load selector_map and path_map. And only return false when domain not found if try_fallback is false
Fix bad archive characters stripping
Fix comparision
Fix connecting to a unix socket in rspamadm statconvert
Fix empty headers simple canonicalization
Fix extra hits in PCRE mode for regular expressions
Fix parsing of the per-user script
Fix processing of skip-hashes in fuzzy storage
Fix Redis timeout setup
Fix sanity checks on macro value
Fix text splitting: stack overflow (too many captures)
Fix urls/emails distinguishing found in queries
F-PROT Antivirus: only check return code to determine infection
Metadata exporter: check IP sanity
Multimap: received: filtering of artificial header
Plan new event on HTTP errors
Plug another possible memory leak
Remove hop-by-hop headers in proxy
Sanitize IP in history redis
Setting check_local / check_authed in plugins (#1954)
Settings: avoid checking invalid IP (#1981)
Try harder in passing IPv6 addresses
WebUI: use relative path for savemap (#1943)
Another portion of tokenization fixes
Fix memory leak in spf caching logic
Fix milter commands pipelining
Fix newlines detection
Filter nan and inf when adding scores
Implement headers flags in mime parser
Support Expires header when using HTTP maps
Actively load skip hashes map in fuzzy storage
Add workaround for IPv6 in sendmail
Authentication Results: Fix SPF smtp.mail_from
Check for magic when checking for an archive
Deal with another case when processing exceptions
Deal with URLs with no slashes after protocol
Do not allow garbadge when checking url domain
Do not ignore short words
Do not strip last character in the last word
Do not treat script content as text
Erase unknown HTML entities
Fix another tokenization issue
Fix DKIM forgeries via multiple headers
Fix emails detection
Fix empty threshold check in greylisting module
Fix enormous scores for R_WHITE_ON_WHITE
Fix loading of per-user redis backend for statistics
Fix multiple headers in DKIM headers list
Fix obscured url in format user@@example.com
Further tokenization fixes
Load skip map from all processes as shared cache is unavailable
Lowercase words
Milter headers: skip_local / skip_authenticated settings
Milter headers: X-Spamd-Result header if X-Virus ran first
Ratelimit: fix whitelisted_rcpts matching
Some more fixes towards emails detection
SpamAssassin: Fail check_freemail_header if regexp didn't match
Use greylisting threshold in greylisting module
Add method to get all content-type attributes in Lua
Add some sanity checks for actions and controller
Allow randomly select User-Agent from a list
Deal with obscured URLs with @ symbols
Milter headers: support adding/removing arbitrary headers from config
Add another workaround to display history properly
Add missing rspamadm control options to help
Auth-Results: Multiple DKIM signatures
Crash in URL processing
Default monitoring domain for surbl plugin
Detection of maillist optimized and fixed
Do not cache SPF records with PTR elements
Fix blacklists and DMARC in whitelist
Fix exceptions list in surbl
Fix processing of closed tags
Fix PTR processing in SPF
Lowercase HTTP headers to make them searchable from Lua
options.local_networks setting
Ratelimit: lowercase email addresses
Rebalance and slightly rework MX check plugin
Redis script loading in DMARC; URL tags; URL reputation
Reject invalid bh for DKIM signatures earlier
Remove incorrect method `task:set_metric_subject`
Rewriting subjects via force actions module
RPM postinstall
Treat 'rewrite subject' as spam action
Try harder to find urls
Use full URL when making an HTTP request
Use raw urls when sending requests to redirector
Use weight from map for fuzzy scoring
Penalise R_BAD_CTE_7BIT for utf8 messages
Fix semicolons parsing in the content type
Add EBL to the default config
Allow to configure monitored
Allow to skip specific hashes in fuzzy storage
Multimap: checking of symbol options
Redis settings: support checking multiple keys
ARC: Fix Lua 5.3 compatibility; timestamp should be integer
Avoid changing content-transfer-encoding header's value
Don't use whitelist/greylist maps as regexp, but as map
Fix get_content method
Header checks: Fix get_raw_header method
Header checks: REPLYTO_UNPARSEABLE rule
Lua_http: freeing
Milter headers: custom headers: removing headers
Parse HREF urls without explicit prefix
WHITE_ON_WHITE: Ensure score is matched to part that fired the rule
Remove Rambler email bl for now
Switch RAMBLER_URIBL to a locally managed source
Switch from ragel to C for Content-Type parsing
Add `-e` option for lua_repl
Add per-domain emails normalisation rules
Add sessions cache to debug dangling sessions
Add short_text_direct_hash for fuzzy check module
Add text_part:get_stats function
Allow to add custom processing script for surbl
Allow to check reply-to email
Allow to customize spam header, remove existing spam headers
Allow to disable specific workers in the config
Allow to discard messages instead of rejection
Allow to specify custom delimiter in emails plugin
Allow to specify custom User-Agent for rspamc
Allow to store symbols data in Clickhouse
Allow to use HTTPS when connecting to Clickhouse
Enable sessions cache tracking for milter connections
Implement per-line mode in lua_repl (like `perl -p`)
Implement rdns-curve plugin based on rspamd cryptobox
Improve maps cached data lifetime
Improve maps checking frequency
Improve monitored timeouts logic
milter_headers: add `extended_headers_rcpt` option
Milter headers: Add X-Spam-Flag to rmilter-compatibility headers
Milter headers: remove-header routine
Multimap: received filters for extracting TLDs from hostnames
Normalize email aliases in emails module
Re-add rambler email bl (as hashed list)
Reload file maps more frequently
Rework newlines strip parser one more time
Skip updates for messages scanned via controller
Split long DKIM public keys
Store more data when stripping newlines
Support SPF macros transformations
Support suppressing DMARC reports for some domains
Add missing `break` statement
Allow modifiers in SPF macros
DKIM sign tools: edge-cases around use_esld
Do not cache SPF records with macros
Do not overwrite score when setting pre-action
Fix comparison logic
Fix DKIM base64 folding for milter flagged messages
Fix emails module configuration
Fix folding for arc headers when milter interface is used
Fix gmail dots removal
Fix rspamc detection in greylist module
Fix some more issues with HTTP maps
Milter sessions can live forever
Normalize fuzzy probability better
Plug memory leak
RBL: Fixed hashed email address lookups
Try to deal with brain-damaged milter behaviour
Use `\n` to fold headers for milter
Allow to use custom callback for monitored checks
Further steps towards one process monitoring
Send health checks from a single worker
Allow to init resolver without rspamd_config
Do not crash when resolver failed to initialize
Fix abstract context layout
Fix CGP helper reply parsing
Fix crashes when socket write errors occur
Fix parsing IPv6 nameservers in resolv.conf
Milter: Don't defer on "greylist" action
Add rspamd_proxy to the default configuration set
Add sample arc module config
Do away with systemd specifics completely
Increase min_bytes to avoid FP
Remove ratelimits from default configuration
Fix accepting on IPv6 sockets
Fix corruption when multiple fuzzy are defined
Fix learn condition in fuzzy check
Fix memory leak in fuzzy check
Fix memory leak in maps scheduling
Paese the last character in DKIM signature correctly
Zero fill sockaddr_un
Add ability to add doc strings by example
Add API to verify DKIM (and ARC) signatures
Add compression/decompression to proxy
Add count to url structure
Add initial support of the new protocol reply
Add Lua plugin spamtrap
Add `monitored_address` for rbls
Add new schema for bayes tokens
Add preliminary ARC support to dkim code
Add preliminary support of ARC signing
Add rules to detect bad 8bit characters in From and To
Add scanning support for milter protocol
Add support for bidirectional symbols in rspamd_stats
Add support for static maps
Add support of maps with multiple regexps matches
Add `text_multiplier` param
Add the preliminary ARC plugin
Add top redirector targets rank
Allow async events to be registered from LUA rules
Allow storing bayes tokens in Redis
Allow to exclude specific domains from mx check
Allow to have a stack of watcher finalisers
Allow to pass hostname to `-i` flag in Rspamc
Allow to set custom user agent in url redirector
Allow to use custom callback when parsing resolv.conf
Allow to use domain from authenticated user
Bayes expiry plugin
Check dkim sign keys for modifications
DKIM signing: sign_networks/local address specific use_domain settings
DMARC: Support excluding domains from sampling
Expire processing items for URL redirector aggressively
Fix surbl monitored for IP lists, add `monitored_domain` option
Implement caching for dkim body hashes
Implement milter protocol scan reply
Improve omograph phishing detection
Initial support of self-scan in Rspamd proxy
Keep track of headers in milter interface
Milter headers: better controls for local/authenticated
Multimap: email:domain:tld filter
Preliminary DMARC reporting implementation
Reuse stemmers in the cache
Rework confighelp to load Lua plugins
Rework hfilter to use hyperscan if possible
Rework lua RSA API
Rmilter_headers: approximate rmilter's extended_spam_headers
Start integration of milter support in proxy
Store average words length and short words count
Store hash of headers order and names
Support MTA name header
Support multiple types of dkim signing in Lua
Support numeric arguments for Redis requests
Use headers hash in bayes metatokens
Use normal resolv.conf rules of rotation in Rspamd
Use version 2 proto for checking messages
Allow to follow symlinks when safe
Append MX name for authentication results as required
Change default text multiplier from 0.5 to 2.0
Check min_bytes for images as well
Deal with 7bit charsets properly
Deal with 8bit characters in email addresses
Deal with unpaired <a> tags
Detect confighelp in plugins initialisation
Disable certain checks for utf spoof detection
DKIM Signing: avoid nil index when From header is missing
Do not add exact hashes from different parts
Do not check DMARC if SPF or DKIM were not checked
Do not check URLs that are resolved to be redirected
Do not set bayes probability if we don't use it
Do not stop on illegal unicode points - replace them
Fix another race condition in arc checks
Fix arc count logic
Fix ARC signing
Fix brain-damaged spamc protocol for now
Fix calling for peak functions
Fix couple of issues in FORWARDED rule
Fix CTE propagation from parent containers to children parts
Fix errors processing in the controller
Fix format string in milter
Fix issues in SPF macros parsing
Fix logging format string
Fix logic of cached passwords check
Fix lowercasing of stemmed words
Fix LRU elements removal
Fix memory leak when accepting from unix sockets
Fix milter connections persistence
Fix objects merging in UCL
Fix order of operations to avoid race condition
Fix parsing of long regexp types
Fix passing data to log helper when many symbols defined
Fix pools management for milter session
Fix processing of the watchers
Fix queue id macro in milter
Fix R_BAD_CTE_7BIT rule
Fix Redis timeout set
Fix REPLYTO_UNPARSEABLE rule
Fix setting of email address
Fix some more issues about duplicated fuzzy requests
Fix spamc support in rspamd proxy
Fix syntax error in spamtrap plugin
Fix url counts for href urls
Fix url handling in the protocol
Multimap: Received IP filters with Redis
Oops, fix d9d0fa5e86db2f4470d34395a233b450478b2f60
Parse rgb[a](x,x,x[,x]) css colors
Phishing: strict_domains
Reduce maps aggressiveness
Reresolve upstreams even if there is a single server there
Rspamadm grep: Disable Lua patterns in string search by default
Skip text parts when checking binary parts in fuzzy check
Support v2 checks in controller
Treat empty address as valid
Try harder to detect CTE
Try to deal with v4 mapped to v6 addresses on accept
Use dkim signing callback properly
Use non-volatile memory for storing data
Use static maps instead of ugly hack for radix_from_config
Use the same pool for related sessions
Continue modularisation for lua library
Initial milter protocol support
Make log pipes worker agnostic, add scanners API
Move authentication results generation to a separate routine
Move common DKIM functions to a separate lua module
Move global functions to a separate directory
Prepare dkim module for ARC checks
Propagate ucl variables from the command line
Remove multiple metrics support from Rspamd
Stop using name 'rmilter' for the modern protocol
Use LFU algorithm in LRU cache
Fix received TLS rules
Improve URL_COUNT_ODD rule
Increase min_bytes to avoid FP
Remove ratelimits from default configuration
Fix accepting on IPv6 sockets
Zero fill sockaddr_un
Add `text_multiplier` param
Check min_bytes for images as well
Do not add exact hashes from different parts
Fix memory leak when accepting from unix sockets
Fix some more issues about duplicated fuzzy requests
Phishing: strict_domains
Skip text parts when checking binary parts in fuzzy check
Fix memory leak in fuzzy check
Fix memory leak in maps scheduling
Multimap: email:domain:tld filter
DKIM Signing: avoid nil index when From header is missing
Do not set bayes probability if we don't use it
Do not stop on illegal unicode points - replace them
Fix brain-damaged spamc protocol for now
Fix Redis timeout set
Fix spamc support in rspamd proxy
Multimap: Received IP filters with Redis
Parse rgb[a](x,x,x[,x]) css colors
Reresolve upstreams even if there is a single server there
Treat empty address as valid
Try harder to detect CTE
Try to deal with v4 mapped to v6 addresses on accept
Fix corruption when multiple fuzzy are defined
Fix learn condition in fuzzy check
Add rules to detect bad 8bit characters in From and To
DKIM signing: sign_networks/local address specific use_domain settings
Support numeric arguments for Redis requests
Deal with 8bit characters in email addresses
Fix couple of issues in FORWARDED rule
Fix passing data to log helper when many symbols defined
Fix R_BAD_CTE_7BIT rule
Fix REPLYTO_UNPARSEABLE rule
Fix setting of email address
Rspamadm grep: Disable Lua patterns in string search by default
Add unigramms support in bayes
Allow configurable sign headers for DKIM
Allow to add unigramm metatokens from Lua
DKIM Signing: envelope match exception for local IPs
UCL: register parser variables from Lua
Always try to adjust filename
Do extra copy to ensure that original content is never touched
Fix SPOOF_REPLYTO rule
Ignore Rmilter added Received
More fixes for hashed email dnsbls
Plug memory leak in chartable module
Fix classifier learning with Redis backend
Fix issue when parsing encoded rfc822/messages
Add escaped version of lua_ucl import
Add task:headers_foreach function
Allow to process filenames from content type
Allow to query hashed emails
Ignore bayes with mostly metatokens or with too few text
Probabilistically skip metatokens
Retrieve all virus names from SAVAPI
Rework classifiers lua metatokens
Store headers order
Store text tokens inside bayes tokens
Use cached shingles keys
Add missing score normalisation for HFILTER_URL_ONLY
Avoid lookup in absent hash
Check return values from Lua functions called from C
Do not count sending and loading time in rspamc
Escape json strings for controller rejplies from Lua
Fix archive scans for savapi
Fix domain_only emails RBL
Fix ip_score map configuration
Fix JSON output for history_redis
Fix one character length substrings search
Fix parsing of non-RFC compatible Exim received
Fix parsing of options for workers with the same type
Fix processing of small tokens vectors
Fix rfc2047 tokenization
Fix typo
More fixes for inplace decoding
Try to avoid modifications of the original data
URL redirector: Fix call to is_redirector
Set token data as uint64_t instead of chars array
Add history_redis default configuration
Add spoofed rules
Add URL_IN_SUBJECT rule
Allow to get task's subject
Allow to specify maximum number of shots for symbols
Distinguish URLs found in Subject
Memoize LPEG grammars
Parse else parts in SA rules
Process subject for mixed characters
Resolve url chains in url_redirector module
Stat greylisted messages as greylisted not soft-rejected
Support checking for redirector in Lua SURBL
Support tag_exists SA function
Work with broken rfc2047 tokens
Check all watcher's dependencies
Do not compile hyperscan with no SSSE3 support
Do not crash if cannot decode qp encoded part
Fix dependencies of DKIM when multiple signatures are found
Fix lists in whitelist plugin
Fix one-shot symbols weight calculations
Fix options and shots match
Fix order of symbol options
Fix parsing of dot at the end of the address
Fix parsing of lua table arguments
Fix processing of subject words
Fix string split memoization
Fix templates grammar usage
Fix various issues related to Lua stack manipulation
Force actions: Use postfilter if we have honor_action / require_action
Further fixes to avoid PHISHING FP
Preserve order of options in symbols
Rspamadm grep: deal with unusually-formatted logs
Use hostname suffix when dealing with history
Remove outdated SA rules
Add composite for hacked wordpress phishing
Fix base64 decoding when there are unparseable characters
Additional symbol metadata in metadata exporter
Add method to get protocol reply from Lua
Add symbols when tagged rcpt/sender are normalised
Add task:get_symbols_all() function
Allow multiple formats of DKIM signing key
Allow to cache and use flexible protocol reply
Allow to set one_shot flag from register_symbol
Allow to skip certain types of hashes when learning fuzzy
Cache and insert scan time into the protocol
Detect newlines in rspamc --mime
DKIM signing: support use of maps
Greylist: Support excluding low-scoring messages from greylisting
Implement lua history in controller
Implement redis history querying
Preliminary implementation of redis history plugin
Support using request headers in settings
Change default template to deal with non-ASCII characters
Deal with lists of maps in whitelist module
DKIM signing: use domain-specific signing key
Do not reallocate completed zstd buffer
Do not use local_addrs in proxy
Fix crash when resolver is undefined
Fix double free when closing lua_tcp connections
Fix for lua 5.3
Fix freeing of arrays iterators
Fix issue with task:get_symbol and symbols with no metric
Fix log line duplication in `rspamadm grep`
Fix memory corruption on termination
Fix out-of-bound access in base64 decode
Fix ratelimit + greylisting
Fix subject rewriting
Fix task:set_recipients function
Fix URI_COUNT_ODD rule
Follow the traditional symbols conventions in RCPT_COUNT rule
Greylist: Suppress greylist action for whitelisted hosts too
Metadata exporter: use rule-specific settings for emails
Properly set missing fields in exporter
Proxy: max_retries option
RCPT_COUNT fixes
Rework HAS_X_PRIO rule to match symbols conventions
Update issues in ac-trie
Use optimised base64 decoding in DKIM
Add default config for spamassasssin plugin
Add default configuration for antivirus module
Add dkim signing docs
Add mx_check default config
Add replies config
Add trie default config
Add heuristic to find text parts in files
Add rule to detect broken content type
Allow to extract CTE in Lua API
Allow to set from address for a lua_task
Allow to set recipients of a task from Lua
Enchance text_part:get_content method
Remove + aliases from emails
Support rmilter block and dkim signature in CGP helper
Support running event loop from Lua
Antivirus: use scanner-specific redis prefix
Couple of fixes for DKIM signing module
Distinguish missing and broken mandatory headers
Do more heuristical detection for missing CTE
Do not resort cache on each check
Fix CGP escaping
Fix MISSING_MIME_VERSION rule for plain messages
Fix parsing of cte in expressions
Fix partial matches in rspamadm grep
Fix setting class on style field
Fix processing of stop_patterns with `\0` character
Fix setting of raw key for signing
Fix lua exports from plugins during reload
Fix prefilters action scores
Fix symbols processing order
Add configurations for asn, clickhouse and dcc
Add default config for url redirector plugin
Add the default config for greylist module
Allow to edit all local maps from WebUI by default
Deal with absent headers in DKIM
Do not trust remote shingles count
Fix bad memory leak in TLS certificates validation
Fix critical memory issues with radix maps
Fix descriptors leak on reload
Fix headers selection in DKIM verification
Fix parsing of boundaries that end with `--`
Repair PTR_ARRAY_FOREACH macro
Add CORS support to the controller
Add FROM_NAME_EXCESS_SPACE rule
Add REPLYTO_EMAIL_HAS_TITLE rule
Add `caseless_hash` method to `lua_util`
Add `rip` keyword to ratelimit module
Add a simple benchmark for content type parsing
Add boundaries parsing in content type
Add charset detection for text parts
Add content disposition parser
Add fallback if too many updates are failing
Add function to convert struct tm to time using timezone
Add function to normalize HTTP paths
Add fuzzy collection plugin
Add fuzzy logic for images
Add gmime parser to mime_tool
Add heuristic to detect broken messages
Add heuristic to find displayed URLs
Add heuristic to process broken email addresses
Add images normalization
Add mechanism for disabling composites (Fixes #1270)
Add method to create regexp from a glob pattern
Add mime encoding manipulation routines
Add mime tool to explore messages
Add more meta tokens from received headers
Add neighbours option to support Rspamd cluster in WebUI
Add new function to parse mime addresses
Add new methods for lua_tcp
Add own headers decoding routine
Add own routine to generate a message id
Add parser for SMTP date
Add per-task lua cache to reuse 'heavy' objects
Add plugins list path in WebUI
Add preliminary multipart support
Add preliminary version of DKIM signing module
Add profiling support in client output
Add rfc2047 grammar
Add rfc2047 variant for QP decoding
Add rmilter_headers module (Fixes #1227)
Add sse42 version of base64 decoding
Add ssse3 and avx2 base64 decoders
Add support of libgd
Add the preliminary version of redirects resolver in Lua
Add ucl_object_iterate_full function
Add url encoding function
Allow SOA requests in lua dns
Allow custom parse types in lua ucl
Allow plugins to register webui handlers
Allow to add options explicitly to symbols
Allow to call a callback when symbol frequency is on peak
Allow to call redirector script from SURBL
Allow to create variable length dkim keys
Allow to have module specific options for Redis in plugins
Allow to pass sign key directly from Lua
Allow to register configuration docs from Lua API
Allow to return options as a table
Allow to set peak callbacks from Lua
Allow to specify custom method for a message
Allow to store dkim keys in Redis
Allow to store messages in files
Apply DCT using AAN for fuzzy signature
Avira SAVAPI support
Cache and simplify DCT and jpeg decode
Cache libicu converters
Detect URLs with suspicious omographs
Do not increase score for duplicate options
Do not trust CTE, check base64 and qp strictly
Dynamic reputation in URL reputation plugin
Extend redis lock when learning spawned
Filter non-utf chars from all decoded headers
Fix phishing detection for IDNA urls
Ignore bad symbols on base64 decoding
Ignore too wide elements in SPF
Implement fuzzy collection mode
Implement helo maps in multimap
Implement human readable buckets configuration
Implement min-hash shingles for DCT data from images
Implement new algorithm for fuzzy hashes of images
Implement new unicode normalizer
Implement quoted printable decoding
Implement received headers flags
Implement rspamdgrep tool
Implement sane checksum for config file
Implement url tags concept
Improve detection of omographs using libicu
Improve url redirector module
Multimap: Received header processing
Multiple improvements in the maps
New URL filters in multimap
Plugin to force actions on selected symbols
RBL module: support hashing for emails and helo RBL
Reuse URL tags in SURBL module
Rework RRD ds count, add conversion path
Rework surbl module to avoid extra redirector calls
Send config id to the WebUI
Simplify HTTPCrypt client support
Skip processing for large images
Start collection only mode implementation for fuzzy storage
Start import of the optimized base64 decode
Store all received headers in lua
Store relational order of all headers in a message
Support DKIM signing in Lua plugins
Support HTTPCrypt client in lua_http
Support setting SMTP message in multimap
Support setting metric subject from Lua
Support setting subject in force actions module
Treat v6 mapped addresses as v4 addresses
URL reputation plugin
Use Redis instead of memcached in URLs redirector
Use Rspamd rfc2047 decoder instead of gmime one
Use a different normalization for fuzzy images
Use normalized images in fuzzy hashes
Use own code for parsing of date
Use shingles for images fuzzying
Use t1ha for hashes, allow inlining
Use t1ha instead of metrohash and xxhash32
Various new features in metadata exporter module
rmilter_headers: authentication-results (#78)
Add additional check to mark redis connection inactive
Add packed attribute for protocol structure
Adopt OMOGRAPH_URL rule
Allow static maps
Allow to disable classifiers checks using settings and conditions
Another try to fix 0 length maps
Another try to fix corruption during maps reload
Another try to fix descriptors leak
Another try to fix reload and logger
Antivirus module: register virtual symbols for patterns
Avoid extensive reallocs
Avoid mempool leak in SA plugin on reload
Avoid race condition on saving cache and reload
Avoid reusing g_error (Fixes #1262)
Break pool connection on fatal redis errors
Check for NaN properly
Couple of fixes for date parsing
Date header timezone adjustments (#1279)
Deal with EOF properly
Decode filename in content disposition
Disable fuzzy images by default
Disable zero-copy mode for text parts to avoid crashes
Do not destroy session when not all finish scripts are done
Do not greyscale images
Do not leave parent-less workers processes on fatal errors
Do not lowercase Content-Disposition to perform decoding
Do not penalize characters just after numeric prefix
Do not refork workers that are intended to die
Do not set pre-result and update records for no `Queue-ID` messages
Do not skip post-filters when pre-filters have set some results
Do not stop symbols planning if async events are pending
Do not try to set keys for unencrypted requests in proxy
Encode URLs according to rfc3986
Encode URLs before sending them to the protocol
Filter bad characters from message id
Fix CTE detection heuristic
Fix Content-Type in HTTP requests
Fix IDN eslds phishing checks
Fix adding maps from config in Lua
Fix another reload memory issue
Fix argument returned on redis backend errors
Fix assertion in graph handling
Fix body trie matching
Fix build
Fix byte array expansion during toutf8 conversion
Fix charset normalisation
Fix checking of DKIM bodies that needs just `\n` to be added
Fix couple of cornercases with email addresses
Fix couple of issues
Fix dependencies tracking for callback symbols
Fix detection of jpeg size
Fix errors handling in fuzzy backend initialization
Fix fuzzy hashes count
Fix globbing and convert lists to arrays in fuzzy_check
Fix heuristical CTE detection for QP encoding
Fix ignoring of bad text parts
Fix indexes in array access, interleave loop
Fix int64 -> double conversion
Fix invalid memory access on reload
Fix issues with empty updates
Fix issues with quoted-printable encoding
Fix keys names
Fix lots of issues in mime parser code
Fix lua maps load
Fix macro name
Fix mas group score calculations
Fix matching of the same patterns from different tries
Fix memory corruprtion and leak
Fix memory leak in HTTP maps
Fix memory leak in expression destroying
Fix memory leak in parsing of mime names
Fix memory leak in safe ucl iterators
Fix memory leak on reload in plugins
Fix modules reconfigure on reload
Fix monitored setup fro URLBLs with IP addresses
Fix name of var
Fix new rrd updates
Fix out of bounds access
Fix parsing messages with no body
Fix parsing of '=' character in headers
Fix parsing of messages with no content type
Fix plugins callbacks in webui
Fix possible memory corruption in redis pool
Fix probability calculations for fuzzy redis backend
Fix processing errors in lua_tcp
Fix processing of emails with name only
Fix processing of non-multipart messages
Fix processing of parts with no valid content type
Fix race condition in SIGUSR2 handler
Fix redis options parsing when no redis servers are defined
Fix reload and hyperscan ready event
Fix reload memory issue
Fix rra_ptr conversion
Fix rrd file conversion
Fix setting of content-type attributes
Fix signing headers creation in DKIM
Fix stddev calculations
Fix surbl plugin to work with composite maps
Fix timezones parsing
Fix tokens usage
Fix urls and emails hashes
Fix usage of unsafe ucl iterators
Fix work with broken utf8 tokens
Fix writing of user to roll history
Forgotten worker
Further memory leaks fixes
Ignore lua metatokens in bayes for now
Improve OMOGRAPH_URL rule
Lua IP from string should be invalid if parsing failed
Miltiple fixes to new lua_tcp, add debugging
More fixes for iterators cleanup
More fixes to logger initialization
More heuristic fixes for phishing detection
More leaks eliminated
More leaks...
More random fixes for reload...
Multimap: Fixes for email filters
Multiple fixes for fann module
Multiple memory corruption fixes
Normalize path in HTTP router
Plug memory leak
Plug memory leak in adding radix trees
Plug memory leak in configuration parser
Plug memory leak in expressions parsing during reload
Plug memory leak in learning fuzzy storage
Plug memory leak in lua_tcp
Plug reload leaks
Plug termination memory leaks
Really increase lock lifetime
Replies module: fix symbol weight
Restore content type params related functions
Set task's subject from mime subject
Sigh, one more reload leak
Simplify images shingles
Some more memory issues are fixed
Stop hardcoding of lua in C
Stop processing of bad parts as text parts
Strictly filter bad characters when emittin json
Strings returned from lua are ephemeral
Support unix sockets for lua redis
Try to fix issues with reloading config
Try to fix race condition in redis_pool
Use checksum to avoid intersection between different ANNs
Use rspamd hashes in embedded ucl
Use sane default rewrite subject (*** SPAM *** %s)
Various collection mode fixes
Various fixes to mime parser
Various reload leak fixing
Whitelist certain extensions from archive checks
Add preliminary implementation of the mime parser
Adopt code for the new options
Change logger setup interface
Composite configuration (#1270)
Finally remove gmime dependency from Rspamd
Further fixes to symbols frequencies
Implement content type parser for mime
Kill all InternetAddressList usages
Multiple fixes for symbols cache statistics
Refactor struct names
Rework images fuzzy hashes algorithm
Rework lua_tcp to allow TCP dialog
Start massive rework to get rid of gmime
Start new approach for multiparts parsing
Start rework of mime addresses
Start rework of symbols cache updates
Start switching to libicu
Use a special structure for stats tokens
Use hash tables for symbols options
Use libicu instead of iconv for conversions
Use new scheme to parse mime parts
Deal with absent headers in DKIM
Do not trust remote shingles count
Fix headers selection in DKIM verification
Add EXT_CSS rule
Add toggle for disabling SURBLs
Extend redis lock when learning spawned
Parse <link> HTML tags
Avoid reusing g_error (Fixes #1262)
Do not reset loaded ANN when learning is requested
Fix another issue with external deps in SA
Fix body trie matching
Fix checking of DKIM bodies that needs just `\n` to be added
Fix fuzzy hashes count
Fix keys names
Fix length calculations for url encoded urls
Fix matching of the same patterns from different tries
Fix name of var
Fix parsing of URLs with spaces and other bad chars
Fix probability calculations for fuzzy redis backend
Fix signing headers creation in DKIM
Plug memory leak
Really fix chained SA dependencies
Really increase lock lifetime
Use checksum to avoid intersection between different ANNs
Use rspamd hashes in embedded ucl
Yet another change for testing external deps
ASN support in Clickhouse module
Add clickhouse plugin
Add generic tool to add universal maps for lua modules
Add logger.debugm to debug lua modules
Allow to register metrics symbols using register_symbol
Allow to specify prefix for fann_redis
Clickhouse: support different masks for IPv4/IPv6
Support forcing action in antivirus plugin
Add handling of regexp maps
Allow backslashes in http urls
Avoid mapping of empty files
Do not load tld file to speed up rspamadm
Do not resolve numeric IP addresses due to ipv6 insanity
Filter incorrect training data
Fix Fuzzyconvert tool when password or DB is given
Fix build with custom glib/gmime
Fix converting of learn count from sqlite to redis
Fix crashes with invalid received and task:set_from_ip
Fix external dependencies for SA module
Fix fann_redis when number of scores has been changed
Fix hyperscan usage for non compatible platforms
Fix loading of maps from UCL objects
Fix memory leak for task-less redis requests
Fix mid module with new maps syntax
Fix parsing of URLs with username
Fix re cache initialisation
Fix replacements to sanitize '%' character
Fix set and regexp like static maps
Fix some issues in redis settings
Fix static IP maps
Fix total learns counter for redis stats
Fix usage of config during reload
Fix various warnings and issues
Invalidate ANN if training data is incorrect
Miltiple fixes to fann_redis module
More fixes for URLs with backslashes
Properly get options for ip_score module
Relax requirements for Received as gmail cannot RFC
Remove or fix hyperscan incompatible regexps
Settings: correctly read redis config
Rework lua logger interface slightly
Use new maps add function
Add guards for inactive redis connections
Another fix for proxying files using rspamd_proxy
Cleanup inactive redis connections
Do not sometimes try to exec posfilters before classification
Fix application of IPv6 mask
Fix chunked encoding when reading messages
Fix file mode for rspamd_proxy
Fix hyperscan compilation on regexp change
Fix issue with finding of end of lines pointers
Fix iteration over headers array (introduced in 1.4)
Fix processing of learned tokens count for redis backend
Fix race condition in checking of cached maps
Fix workers scripts by sharing workers configs
Introduce raw content to text parts
Plug memory leak and potential memory corruption
Adaptive ratelimits
Add ASN -> rbldnsd script for asn.rspamd.com
Add DMARC_NA symbol
Add F-Prot support to antivirus module
Add HTTP backend to metadata exporter
Add Lua API module for monitored objects
Add R_DKIM_NA / R_SPF_NA / AUTH_NA symbols
Add R_DKIM_PERMFAIL symbol
Add R_SPF_PERMFAIL symbol
Add Sophos antivirus support
Add ZSTD compression to Lua API
Add `mid` Lua module
Add `one_param` flag for metric symbols
Add a generic lua classifier
Add a very basic interface to access workers data from on_load
Add ability to delete a hash by its data to fuzzy_check plugin
Add ability to enable/disable symbols via dynamic_conf
Add ability to lookup settings by key
Add common way to disable Lua modules
Add compression support to rspamd client
Add condition to do antiviral check
Add configuration for lua classifiers
Add configuration knobs for the errors circular buffer
Add decompression support in rspamd client
Add errors exporter to the controller
Add expected value for monitored DNS resources
Add exporter from error ringbuf to ucl
Add extended version for fann creation function
Add ffi friendly version of process_regexp function
Add frequency and time display to webui
Add fuzzy_delhash command to rspamc client
Add implementation of redis connections pool
Add latency and offline time monitoring
Add learning support for lua classifiers
Add max-size and timeout options to CGP helper
Add method to enable/disable symbols in config
Add methods to get metric's actions and symbols from Lua
Add mmap support to lua_text
Add monitored object for surbl plugin
Add more exceptions to surbl whitelist
Add more meta-tokens to bayes
Add neural net classifier to fann_scores module
Add neural net serialization/deserialization
Add new dynamic conf module
Add periodic events support for lua_config
Add plugin to check MX'es for the sender's domain
Add preliminary monitored module
Add preliminary support of dynamic conf updates in Redis
Add preliminary version of clamav plugin
Add redis cache to asn module
Add replies compression
Add spamhaus DROP dnsbl
Add support for dictionary in client compression
Add support for fuzzy learn and unlearn from lua
Add support for input encryption
Add support of min_learns to neural net classifier
Add termination callbacks for workers
Add user-agent for rspamc
Add utility to perform classifier tests
Add zstd compression library
Allow HTTPS requests in lua_http
Allow conditions for pre and postfilters
Allow custom functions for ratelimits
Allow for excluding messages from AV scanning based on size
Allow for getting worker stats from Lua
Allow getting task UID from Lua
Allow parsing of mailbox messages from the commandline
Allow plugins to publish their lua API via rspamd_plugins
Allow to compare other systems with Rspamd
Allow to execute Lua scripts by controller
Allow to have a function to set custom greylist message
Allow to iterate over multiple tags
Allow to pass extra data from plugins to log helper
Allow to plan new periodics at different time
Allow to reset hashes
Allow to run rspamadm lua just as a lua interpreter
Allow to store settings in redis
Allow to update dynamic conf in Redis
Allow to use dictionaries for compression
Allow to use md5, sha1, sha256, sha384 and sha512 hashes in Lua
Allow whitelisting by IP for greylisting plugin
Antivirus: Support whitelists & pattern-matching sig names
Backport pack/unpack routines from Lua 5.3
Check settings with equal priopities in alphabetical order
Compress neural net in redis
Consider more tags when doing WHITE_ON_WHITE rule
Descriptive options for DMARC failure symbols
Descriptive options for RBL symbols
Enable configuration for monitored objects
Execute on_load scripts with ev_base ready
Fann scores now uses metadata from a message
Implement FANN threaded learning
Implement classifying for lua classifiers
Implement finish scripts for worker processes
Implement monitoring for DNS resources
Implement real priorities for pre and post filters
Insert two symbols: FANN_HAM and FANN_SPAM instead of one
Module to push metadata/messages to redis pubsub
Monitor RBL records
Move fann_classifier to a separate plugin
Normalize all ANN inputs
Preliminary version of metric exporter module
Preserve decompression context between tasks
Ratelimit: Support dynamic bucket size/leak rate
Relax FORGED_RECIPIENTS: allow senders to BCC themselves
Remove symbols weights on composites processing
Return symbol scores when getting resulting symbols
Rework lua tcp module
Rule to detect some obvious X-PHP-Originating-Script forgeries
Rule to identify some X-PHP-Script forgeries
Rules for scoring Google Message-ID fixes
Send hashes values to reply
Set expire for dmarc reports
Stop using cymru zone as it is unstable
Stop using of GLists for headers, improve performance
Store `for` in task:get_received_headers
Store `for` part in received headers
Store enabled flag for webui session
Store error messages in ring buffer
Support compressed maps
Support excluding selected users from ratelimits
Support looking up NS records in lua_dns
Support modern style SURBL configuration
Support multiple hashes in delhash path
Support new messages in rspamc
Support requests without reads in lua_tcp
Support setting task message from Lua
Track visibility of HTML elements
Try to add CRLF when checking DKIM
Try to guess line endings when folding headers
Try to improve normalization function for bayes
Use FFI to optimize SA module
Use length based arguments for redis, allow lua_text as arg
Use more layers for fann and another normalization
User-defined ratelimits
Utility to convert fuzzy storage from sqlite to redis
Yield DMARC_DNSFAIL on lookup failure
Adopt fuzzy storage for flexible backends
Allow plain IP addresses in Rspamd maps
Another fix for brain-damaged hiredis
Another fix for rdns write errors
Another fix for rdns_make_request_full invocation
Another fix in DKIM canonicalization
Another memory leak plugged
Another try to deal with posix idiotizm
Another try to fix RDNS events processing logic
Avoid double frees in HEAD requests
Avoid extra symbols for RBLs
Banish table.maxn from Lua parts
Check for socket error before connection in lua_tcp
Correctly propagate redis timeouts to Lua
Do not add extra newline in MIME mode
Do not be cheated by system hiredis
Do not classify when a message has not enough tokens
Do not crash on redis errors
Do not distinguish NXDOMAIN and NOREC for monitored
Do not replan retransmits if merely one server is defined
Do not use headers to calculate messages digests
Don't force action in replies module for authenticated users/local networks
Explicitly ban default passwords in webui
Finally fix ambiguity between parsed and resolved spf elts
Fix 'decoded' value in task:get_header_full()
Fix DKIM calculations
Fix DKIM signing for messages with no newline at the end
Fix DNS request in monitored
Fix DNS write errors processing
Fix HTTP methods other than GET and POST
Fix PERMFAIL for v6/v4 ambiguities
Fix absurdic scores for HFILTER_URL_ONLY
Fix actions in rolling history
Fix actrie patterns
Fix applying of lua dynamic confg
Fix autolearning errors and redis cache
Fix bayes learn_condition
Fix build with the recent OpenSSL
Fix caching and compressed maps
Fix check plain text part
Fix crash on OpenBSD in `url_email_start`
Fix double free in SPF
Fix extraction of shingles from redis fuzzy storage
Fix false sharing for symbols in the cache
Fix float usage in util:get_time
Fix folding algorithm to deal with empty tokens
Fix format string
Fix format string usage in controller errors handling
Fix handling of '\0' in lua_tcp
Fix handling of HTTP HEAD methods
Fix hash creation
Fix hiredis stupidity
Fix implicit settings module settingsup
Fix interaction with lua GC to avoid craches
Fix ip_score module registration
Fix issue with empty messages and dkim
Fix issues with CGP helper
Fix issues with the recent SPF changes
Fix key name to load ANN correctly
Fix lua tcp module by saving `do_read` in callback data
Fix memory leak in client when using compression
Fix min_learns option
Fix on_finish scripts and async handlers
Fix options for SPF dnsfail symbol
Fix parsing includes and redirects in SPF
Fix parsing of lua comments with empty lines
Fix parsing of unquoted HTML attributes
Fix periodic events and redis
Fix processing of fuzzy learns from Lua
Fix processing of redirect in SPF includes
Fix processing of symbols when reject limit is reached
Fix refcounts when map is specified by IP
Fix rspamd{session} class in Lua API
Fix setting ratelimit key for 'ip' bucket
Fix some cases of TLD urls detector
Fix statconvert tool
Fix stats for backend-less classifiers
Fix training script for fann_redis
Fix variable in ann module
Fix various errors in lua dynamic conf plugin
Forget old ANN when max_usages is reached to avoid overtrain
Further canonicalization fixes
Further fixes for fann_redis prefixes
Handle failures for inactive pooled connections
Improve multimap info message
More fixes in ANN loading
More fixes to fann_redis
More issues in fann_redis
More spaces fix in DKIM signature
Multiple fixes to asn script, add IPv6 support
Multiple issues in fann_redis
No greylist rejected messages
One more attempt to fix lua_redis
One more check for readdir...
Params should be treated as a hash
Plug memory leak in regexp desctructor
Process headers only once
Properly handle nil values in ratelimit plugin
Really fix redis shingles check
Remove fann with incorrect layers count
Remove mentions of deleted include
Remove some incompatible functions
Settings: fix `authenticated` parameter (#886)
Skip MX check for authenticated users and local networks
Slightly fix ANN routines
Stop caching records with DNS failures
Treat all errors in redis_pool as fatal errors for a connection
Try avoid false-positives in HEADER_FORGED_MDN rule
Try to avoid race condition when using rrd
Try to reload redis scripts if they are missing
Unbreak once_received skipping for local networks
Unlock ANN on error
Use memmove for overlapping regions
Use real size instead of displayed for core limits
Use the correct macro to get the size of control
Various fixes for errors ringbuffer
Yield R_SPF_DNSFAIL if lookup of included record fails
mid: fix map initialization
mid: handle incorrect rgexps in the map
Add extract training data function to fann_redis
Add preliminary train tests
Add redis storage feature to fann_redis
Adopt fuzzy storage for abstract backend
Adopt plugins
First reiteration on fann scores
Implement loading/invalidating
Make lua_redis task agnostic
Make rspamd protocol messages useful
Massive removal of legacy code
More cleanup actions
Remove legacy code never used for classifiers
Remove outdated and unused lua_session module
Reorganize fuzzy backend structure
Reorganize the internal backend structure
Restore old fann_scores, move common parts
Rework and simplify rbl plugin
Rework parsing of DMARC records
ASN module; support matching ASN/country in multimap
Add SPF method in spf return result
Add Yandex and Mail.ru forwarding rules
Add mempool maps in multimap
Add rule for identifying mail sent by eval()'d PHP code
Add support of stub DNSSEC resolver to rdns
Add task:get_digest method
Allow for more fine-grained scoring for ip_score
Allow to get digest of a mime part from lua
Allow to print message digest in logs
Fold DKIM-Signature header
Implement encrypted logs
Log URLs encrypted if we have log encryption pubkey
Pass authenticated bit to lua
Read redis backend statistics configuration from global section
Show the exact value matched for multima symbols
Store task checksum
Avoid setting limits when required elements are missing
DMARC: Fix alignment checking for subdomains
DMARC: deal with missing and spurious spaces
Defer insertion of results in ip_score to avoid skewing stats
Disable DMARC for local/authorized mail
Fix handling of proxied headers in controller
Fix hex printing of strings
Fix issue with spaces in maps
Fix parsing of forwarded IP
Fix reload in some plugins and workers
Fix reloading on SIGHUP
Fix some border cases for DKIM canonicalization
Fix url maps
Make dnssec configurable option disabled by default for now
rspamadm statconvert: force db to be a string
rspamadm statconvert: use db/password for learn cache
Rework flags in rspamd logger
Check hyperscan cache sanity before loading
Fix setting of fuzzy keys (completely breaks fuzzy storage)
Add SARBL (sarbl.org) uribl
Add `--search-pattern` option to rspamd_stats
Add some sanity check for very long from/to log elements
Allow to create hashes from string in a single step
Fix order of pre and postfilters
Improve lua URLs API
Improve message about fuzzy rules
Pre-calculate blake2 digest for all parts
Print radix duplicate keys as IP addresses
Simple mechanism for disabling RBLs in local.d/rbl.conf
Use faster hash function for fuzzy storage
rspamd_stats: support log directory reading
Add sanity check for url filters
Do not show rmilter section as a fake metric in rspamc
Fix URL filters
Fix a stupid mistake in util.strequal_caseless
Fix blake2b hash of the string "rspamd"
Fix filename maps filter
Fix finding tld in util.get_tld
Fix multimap content filters
Fix returning boolean from Lua
Fix returning of REDIS_NIL
Try to deal with multiple workers terminated
Use forced DNS request when calling for lua_http
Rework multimap filters, add redis maps
Add a special symbol for SPF DNS errors: R_SPF_DNSFAIL
Add correlations report in fuzzy stats
Add experimental CGP integration
Add method to get urls length in a text part
Add new methods to lua_html to access HTML tags
Allow all types of symbols to be added via __newindex method
Allow to create settings for authenticated users
Allow to get block content for HTML tags
Improve DNS failures when dealing with SPF
Properly implement R_WHITE_ON_WHITE rule
Remove old ugly rules
Rspamc can now add dkim signature in mime mode
Store content length for HTML tags
Support reacher set of HTML colors
Try to avoid FP for low contrast fonts detection
Add missing HTML colors
Add spaces to dkim signature to allow folding
Avoid returning NaN as score on scan
Decode entitles in href parts
Do not cache SPF records with DNS errors
Do not crash on cyclic depends
Do not insert HELO/HOSTNAME unknown when they are not passed
Do not set absent hostname to "unknown"
Do not stress redis with KEYS command (#791)
Fix DMARC_BAD_POLICY symbol
Fix HFILTER_URL module
Fix HFILTER_URL_ONELINE rule
Fix buffering in CGP integration
Fix colors propagation from parent nodes
Fix confusing OpenSSL API usage of i2d_RSAPublicKey
Fix dependencies id sanity check
Fix folding for semicolon separated tokens
Fix largest possible TLD behaviour
Fix last token folding
Fix length calculations in white on white rule
Fix multiple request headers structure
Fix multiple values headers freeing
Fix parsing of background color
Fix printing from field in log_urls
Fix processing of last element of DMARC policies
Further fixes for HTML colors
Further fixes for multiple values headers
Further fixes for white on white rule
Further fixes in HTML tags parsing
Ignore content type/subtype case
Increase score of R_WHITE_ON_WHITE
Parse CGP envelope data
Propagate colors in HTML
Restore multiple values headers in protocol
Restore multiple values in headers processing
Some more changes to tag's content length calculations
Some more fixes for low contrast fonts detector
SpamAssassin plugin: support check_freemail_header('EnvelopeFrom', [..])
Trigger HTML_SHORT_LINK_IMG on any external image
rspamd_stats: remove deprecated defined(@array)
Fix catena passwords validation
Fix crash when the first received is faked
Add DMARC_BAD_POLICY symbol when DMARC policy was invalid
Allow for matching hostnames in multimap (#773)
Allow for setting action based on DMARC disposition
Allow limiting of the inbound message size
Allow maps with multiple symbols and scores
Allow regexps in the emails maps
Allow to register metric symbols from multimap
Allow to reset redis tokens instead of appendig values
Allow to store strings in radix maps
Check UTF validity when there are utf regexps in a map
Correctly work when there is no hard reject action
Implement dependencies for maps
Another effort to unbreak sqlite locking
Avoid crash when closing mmapped file
Do not break history on NaN in required score
Ensure that hyperscan cache written is written properly
Filter NaN from scores in history
Fix DNSBL maps
Fix another locking issue in sqlite
Fix another locking issue with mapped files
Fix deadlock in mmaped file stats
Fix dependencies in multimap plugin
Fix emails module configuration
Fix greylist plugin (#755)
Fix greylisting plugin variable usage
Fix installed permissions for rspamd_stats
Fix locking in mmapped statistics
Fix paths in tests
Fix prefilter mode for multimap
Forgot to commit leftover changes
Really fix local.d includes
Restore selective greylisting behaviour
Set max size on per connection basis
Use temporary storage for hyperscan cache
Remove systemd socket activation
Fix SA rawbody processing - exclude top part
Fix decoding of UTF HTML entitles
Fix encrypted fuzzy requests
Fix leak of shared memory fds and files
Fix levenshtein distance calculations
Fix mime headers processing
Fix parsing of URLs in texts
Fix parsing of missing classes
Fix redis structure by adding {NULL, NULL} member
Fix some more URL detector issues
Fix systemd sockets activation
Fix unencrypted passwords processing in the controller
Fix writing CDPs to the database
Fix writing of encrypted HTTP requests
Plug memory leak in dkim module
Plug memory leak in headers getting code
Pre-filters and post-filters were completely broken
Properly support SA body regexps
Really skip filters in case of pre-result set
Restore the intended pre-filters behaviour
Adopt new maps code
Compile ragel sources when building rspamd
Finish rework for the rest of places that use HTTP
Fix DKIM headers canonicalization
Fix lua maps API
Import linenoise for line editing
Include config structure to all rcl handlers
Make chartable module useful
Move http internal structures to a private header
Partly fix controller
Remove dedicated images list
Rename http proxy to rspamd proxy
Rename mime parts structures
Rework HTTP code
Rework exceptions and newlines processing
Rework pre and postfilters system
Separate method to close backend connections
Start the complete maps rework
Use dynamically generated ragel C sources
Add 'blacklist' and 'strict' modes for whitelists
Add 'symbols_enabled' and 'groups_enabled' to settings
Add ESMTPSA received type
Add a simple script to evaluate rspamd rules in the logs
Add a simple tool to generate DKIM keys
Add a trivial heuristic for codepages
Add and use mumhash for non-crypto hashing
Add better method to check lua userdata types
Add better zip files search algorithm
Add catena PBKDF function
Add configuration knobs for in and out parser scripts
Add content filtering support to multimap
Add different timeouts for proxy connections
Add dot commands for lua REPL:
Add execution of lua global functions script
Add function for pretty printing of inet addresses
Add function to convert fstring_t to c string
Add function to create temporary shared memory mapping
Add function to generate random hex string
Add generic fucnction to parse IP maps
Add initial version of HTTP lua repl
Add learn condition to the default configuration
Add learn conditions for classifiers
Add limit for dkim signatures to be checked
Add locking routines for lua_util
Add lua API for getting info from archives
Add lua utility to decode URL encoding
Add method to copy message from http connection
Add mirrors feature
Add more algorithms for shingles generation
Add more domains to redirectors list
Add more encodingsto cryptobox hash API
Add more file utilities to lua_util
Add more functions to extract data from text parts
Add more methods to get headers from a task
Add more methods to init http message body
Add more options for redis config parsing function
Add new representation of email address
Add new symbols to filter bad extensions in messages
Add new utility methods to mimepart object
Add openphish support to rspamd phishing module
Add parsers for SMTP address in ragel
Add parsing of mirror hosts for fuzzy storage
Add parsing scripts for master connection as well
Add preliminary greylist plugin
Add preliminary phishtank support
Add preliminary rarv5 support
Add preliminary version of ssl toolbox
Add protection against open files limit and accepting sockets
Add rar v4 support
Add reading scripts for master connection
Add replies plugin
Add results parsing code
Add routines to compare and check pubkeys
Add simpler versions of refcounts
Add some time manipulation functions for lua APi
Add support for non-standard BATV signatures
Add support of address with at-domain list
Add support to search archives by magic
Add task:get_rawbody method
Add test to check shared memory support sanity
Add the initial version of LUA repl to rspamadm
Add throughput graph for RRD backend to WebUI
Add universal function to make a proper redis request
Add universal function to parse redis servers for plugins
Add util.unlink function
Add utility function to return random number from 0 to 1
Add utility method to convert ftok to C string
Add utility to map shared memory segments
Add versions to fuzzy storage
Add workaround for legacy clients in rspamd proxy
Add workaround for systems without sane shmem support
Add xoroshiro+ fast rng for non-crypto purposes
Adopt plugins for new maps API
Allow SPF to be checked for empty tasks
Allow binary patterns in lua_trie
Allow catena encrypted passwords in controller
Allow client ip match in the settings
Allow easy adding and overriding of fuzzy rules
Allow empty tasks to be processed
Allow hostnames in IP maps
Allow https maps
Allow multiple PBKDF types in `rspamadm pw`
Allow named fuzzy rules
Allow non zero terminated patterns in multipattern
Allow partial hash updates
Allow pipelining for redis.make_request
Allow sending empty requests using client
Allow setting fuzzy flag by symbol not by value
Allow setting scores and actions from lua
Allow shared memory simple http client
Allow static lua files in any parts of rspamd sources
Allow to change flag from fuzzy learn condition
Allow to check rspamd_text using maps
Allow to disable composite rules from settings
Allow to disable some modules from common redis setup
Allow to extract ucl_object from lua using common API
Allow to get settings and settings id hash from lua_task
Allow to have specific settings for mirrored traffic
Allow to open message from a shared memory segment
Allow to parse pubkeys from the rcl config
Allow to pass extradata from rspamd to rmilter
Allow to query storage about number of fuzzy hashes stored
Allow to read logs without symbols scores
Allow to read password from console for rspamc
Allow to set ciphers and CA paths in config
Allow to skip some initialization phases to speed up rspamadm
Allow underscore separated names in settings
Allow versioning for sqlite databases
Always allow to terminate rspamd
Better deal with backend errors
Better lua_redis logging
Configure CA path and ciphers
Create a dedicated parser to strip newlines
Deduplicate the same urls in multimap module
Distinguish luajit from lua
Do not print garbadge in --compact output
Dynamically detect if a CPU is incompatible with hyperscan
Enable forced resolving for some lua plugins
Enable rrd by default
Enable workaround for exim
Fix task functions to work without rspamd_config
Further improvements to chartable module
Further micro-optimizations for hashing and shingles
Further relax parser
Humanize numbers in stats widgets
Implement HTTPS client
Implement SSL support in http client
Implement body rules for the trie plugin
Implement braced regexp quantifiers
Implement compare scripts for mirrors results
Implement compare scripts setup
Implement composites policies
Implement conditional learning for classifiers
Implement constructing of map from UCL
Implement dkim signing in dkim check plugin
Implement fuzzy storage updates
Implement fuzzy updates push protocol
Implement https maps
Implement inter-process maps caching
Implement mapping of remote flags to local flags
Implement mirroring in rspamd proxy
Implement multi-flags fuzzy replies
Implement multiple-sources fuzzy storage
Implement order of pre/post filters
Implement partial deleting for multi-flags
Implement pipelining for redis async interface
Implement ragel parser for received headers
Implement reading of messages to shared memory
Implement refcount for messages
Implement retransmits for master connection
Implement zero-copy mode for HTTP reading
Improve SPF domain detection logic
Improve config:register_symbol function
Improve error report for type mismatch in lua
Improve fstrings API
Improve getting SMTP data from lua_task
Improve levenshtein distance function
Improve logging in proxy and add refcounts
Improve logging lua types
Improve master/slave logging
Improve phishing plugin
Improve phishtank and openphish support
Improve ragel build target
Improve statistics script
Initialize ssl library to use SSL connections
Interpolate points sent to webui
Limit logging of elements that could have too many items
Lock ANN file when loading
New abstract hashing API in cryptobox
Normalize quoted addresses
Now cryptobox lua API accepts rspamd text as input
Optimize alignment to speed up hashing
Parse received date and ESMTPA proto
Parse received timestamp
Pass settings id to log helper
Pass settings id to lua script from log helper
Perform files expansion on proxying
Preliminary implementation of fuzzy master/slave updates
Print userdata using tostring if possible
Propagate HTTP result string when using proxy
Properly implement unweighted round-robin algorithm
Reduce number of timers queries
Rework and improve fuzzy storage
Rework dns resolving API for lua, add 'forced' option
Rework fann module to understand settings
Rework listening system to allow multiple socket types per worker
Rework ratelimit module to set expiration
Save bayes probability in memory pool var
Save settings id hash for convenience
Search for SSL_set_tlsext_host_name support
Send DKIM signature to protocol reply
Show DKIM signature in rspamc client
Show symbols description in scan output
Sign message merely after DKIM check
Simplify machines by assuming that headers are unfolded
Sort symbols when displaying them in log
Split main connection from mirrored connections
Start moving to the new email address structure
Store HTTP headers in a hash table
Store more information about compressed files
Store raw headers value to use them in DKIM
Store text parts content with newlines stripped
Support DKIM signing
Support EXIF jpeg images
Support archive files list extraction
Support archives when matching patterns in multimap
Support premium/academic feed for openphish
Support rspamd_updates via https
Supprort FQDNs in phishing module maps
Try to read on fuzzy timeout to avoid fake timeouts
Try to select the optimal possible function for input
Unescape and unquote smtp addresses
Update fuzzy timestamp when adding value
Update mumhash
Use -flto if possible when optimizations are enabled
Use extended map types in lua map, unify code
Use file lock in logger to avoid deadlocks
Use generic global string split function
Use metrohash as well
Use mumhash by default for incremental hashing
Use mumhash for words hashing
Use new ip parsing API
Use new maps API for local addrs
Use new ragel parser in message parsing code
Use new received parser instead of old one
Use new redis API in DMARC plugin
Use new redis API in greylist plugin
Use new redis API in ip_score plugin
Use new redis API in ratelimit plugin
Use new redis API in replies plugin
Use new version of register_symbol in rspamd plugins
Use offset when passing shm to deal with encrypted requests
Use one pass to remove newlines and store their positions
Use rspamd specific type checks for userdata
Use shared memory storage for http maps
Use universal redis definitions in rspamd plugins
Various improvements in greylist module
Wait for sqlite if locked when switching to WAL mode
Add filenames sanity filtering for mime types
Add guards for empty parts
Add missing types
Add more priority for config file symbols registered from UCL
Add sanity checks when compiling regexp maps
Add spaces instead of newlines to the normalized content
Add workaround for ancient openssl
Add workaround for gmime CTE stupidity
Add workaround for hex digits
Adjust MISSING_MIMEOLE score
Adjust body/body_buf when stealing encrypted message
Adopt lua task API for the new email addresses structure
Allow for disabling DMARC reporting when Redis is configured
Always register openphish and phishtank virtual symbols
Always use shmem on linux
Another change of newlines policy
Another d3evolution update
Another fix for exim workaround
Another fix for legacy clients
Another fix for maps scheduling
Another fix for marking upstreams inactive
Another fix for postfilters
Another fix for redis timeouts
Avoid `table.getn` method as it has been removed in lua 5.3
Avoid double hashing for images
Avoid linking with actrie if hyperscan is enabled
Check copy result when sending message to mirrors
Cleanup message when assiging body
Cleanup stack from global vars
Correctly parse query type
Disable all symbols if enable_groups is found in settings
Disable fts as it is completely broken in bloody linux
Disable multiple autolearn checks
Disallow updates by default
Do not abort when cannot load a map
Do not check recursion for non-DNS SPF record types
Do not delete uninitialized events
Do not die if shmem_mkstemp fails
Do not die when no metrics defined
Do not even try pcre in case of regexp maps
Do not greylist messages if redis has failed somehow
Do not greylist on rejection
Do not leave temporary maps cached
Do not output meaningless errors
Do not send NaN in json
Don't mix hyperscan and pcre processing within a same task
Finally rework and simplify redis backend for statistics
Fix Exim shutdown patch
Fix JIT compilation for PCRE2 expressions
Fix JIT usage for PCRE2
Fix REPL output
Fix SMTP address parsing machine
Fix UTF8 mode in PCRE2
Fix a stupid misprint in word 'phishing'
Fix accepting the first update when local idx is -1
Fix adding maps from ucl
Fix adding upstream to an active queue
Fix and rescore R_PARTS_DIFFER logic
Fix body rules in SA plugin
Fix body start position
Fix border case in urls detector
Fix border cases for incremental hashing
Fix caseless uthash application
Fix chartable issue with starting digits
Fix client_ip in users settings
Fix compilation issue
Fix conditional learning
Fix crash on empty maps
Fix creating of URLs from LUA
Fix creating of temporary shmem segment
Fix creation of mmapped statfiles
Fix descriptors leak on shmem detaching
Fix detaching of shared memory segments
Fix detection of URLs in text parts
Fix directories processing for rspamc
Fix displaying of rewrite subject in WebUI
Fix dkim private keys operations
Fix dkim signing
Fix dynamic scoring of subject symbols
Fix email address build
Fix encrypted proxy requests
Fix errors counting in upstreams
Fix errors handling in the proxy
Fix event bases for IO events
Fix events handling when scheduling map wacth
Fix fann rewrite
Fix files fallback for shmem transfer
Fix fuzzy adding in webui
Fix fuzzy storage encrypted mirroring
Fix fuzzy storage sync replies
Fix handling of the same words
Fix inserting values to the sources list
Fix ipv6 mask application
Fix issue with missing recipients
Fix issues with multiple returns from lua
Fix learning for non-existent backend
Fix legacy clients support in proxy
Fix length calculations for shared memory segments
Fix listening on UDP sockets
Fix loading of file maps
Fix long regexp flags (e.g. {sa_body})
Fix lua compare function init
Fix maps descriptions
Fix maps locking
Fix max_train setup in ANN module
Fix memory corruption
Fix memory leak in unsigned maps reading
Fix misprints for lto usage
Fix more issues with scripts processing
Fix next-to-last extension length check
Fix openssl initialization
Fix order of arguments
Fix order of initialization
Fix parser
Fix parsing of binary tries
Fix parsing of braced IPv6 addresses
Fix parsing of nested braces in SMTP comments
Fix parsing of rarv5 archives
Fix periodic scheduling when a map is not modified
Fix possible FP in TRACKER_ID rule
Fix post-filters processing
Fix potential NULL dereference
Fix processing of <br> and <hr> tags
Fix processing of addresses in protocol
Fix processing of messages without received headers
Fix proxying issue for unconnected sessions
Fix proxying of the encrypted messages
Fix race condition with shared memory by refcounts
Fix ratelimit initialization
Fix redis set request in replies plugin
Fix redis timeout events handling
Fix redis timeouts processing logic
Fix refcounts in lua_redis
Fix results checking if no master connection is active
Fix return value for couple of lua functions
Fix round-robin selection when upstreams have no weight
Fix rows calculation in graph
Fix rspamd_redis_make_request syntax in replies plugin
Fix scheduling of locked map events
Fix scores detection
Fix searching for newline positions
Fix secure_ip setting in controller
Fix sending data to graph command
Fix setting of score for parts differ
Fix setting of the lua top
Fix setting path for lua
Fix setting path for phishtank
Fix settings application
Fix shm_open call as described in POSIX
Fix size of length in fuzzy mirror wire protocol
Fix smtp grammar issues
Fix some issues with redis API
Fix some issues with retries in the proxy
Fix stack growing
Fix start of body detection in DKIM
Fix state on timeout
Fix stats script
Fix substring search when there are '\0' in strings
Fix symbol name for spf soft fail
Fix symbol type's check
Fix symbols registration and execution
Fix the case of multiple values keys
Fix the default symbol names according to metric
Fix timeout setup on learning
Fix timeouts in redis cache processing
Fix timeouts processing in lua_redis
Fix upstreams interaction for rspamd proxy
Fix usage of rdns reply structure
Fix varargs loop
Fix whitelists and blacklists in SA rules
Fix write servers setup for redis
Fix writing of HTTP messages
Force rspamd to upgrade fuzzy db on opening
Free the correct pointer
Further fixes for lto and static linking
Further fixes for surbl extensions map
Further fixes in maps code
Further improvements to error messages in fuzzy check
Further tweaks to redis garbadge collection
Groups are now case insensitive
Handle log pipe read errors
Handle nested dependencies in SpamAssassin plugin
Implement new automata to skip empty lines for dkim signing
Improve error messages on fuzzy add
Improve lua redis handling
Improve phishing module logging
Improve printing of fuzzy errors
Improve rrd diagnostic errors
Improve strcase hash used in uthash
Include fuzzy key to distinguish storages with different keys
Include slave cluster name into http request
Include some more information about archives
Indicate upstream error on timeout
Initialize hash tables array to avoid crashes
Initialize parser scripts properly
Initialize vars to avoid warnings
Inverse logic for saving ANN
Link lpeg to rspamd lua library
Make extension checks case-insensitive
Mark expired hashes as not found and not as zero flag
Match archive name as well
More and more fixes to redis states
More fixes about shared memory in proxy
More fixes for redis refcounts
More fixes to end of headers detection
More fixes to events logic
More fixes to multi-flag fuzzy storage
More fixes to parts distance calculations
More guards for redis free
One more fix in redis destructor
One more try to fix redis
PIE is required for static build
Partial fix for mmap'd statistics tests
Plug memory leak in proxy
Properly detect end of headers position
Properly init and free session structures
Reduce PRECEDENCE_BULK rule weight
Reduce the default thresholds for learning
Remove Type=forking from systemd unit file (#709)
Remove bad FANN file to save computational resources
Remove event before closing of fd to avoid race conditions
Remove parsing of 'from' variable in redis backend
Remove some bad domains from whitelists
Repair optional dependencies
Reset master connection when retransmitting scan request
Restore ONCE_RECEIVED symbol
Restore compatibility with old lua API behaviour
Restore redis runtime state
Reverse options when received
Send updates to mirrors only if we have some changes
Set host attribute properly when making HTTP request from lua
Set terminated state before calling of async free
Simplify MISSING_MIMEOLE rule
Simplify state machine by ignoring multiple spaces
Skip setting RPATH for static builds
Slightly reduce weights of rules with high FP rate
Some fixes to libmagic initialization
Some more fixes to ratelimit plugin
Strip '\r\n' properly
Switch hashes to mumhash
Treat NaN values properly in graph command
Try to avoid FP when checking for phished URLs
Try to avoid recursive events deletions
Try to fix false positive URL detections in text parts
Try to fix issue in redis stats backend when task is closed
Try to fix proxying of stupid spamc protocol to HTTP mirrors
Try to fix redis crashes
Try to fix upstreams with one element
Try to handle multiline history in a more sane way
Unbreak build on gcc < 4.9
Update RPM spec/sources (#700)
Update d3evolution version
Update mumhash implementation
Use custom error function for pre and post filters
Use new postfilters and prefilters API in the plugins
Use non-blocking mode for systemd sockets
Use shared memory merely for local backends in the proxy
Use watchers for spf plugin
Varioud fixes to the maps code