List of changes

Release 1.6.5: 22 Oct 2017

CritFix

Another portion of tokenization fixes

CritFix

Fix memory leak in spf caching logic

CritFix

Fix milter commands pipelining

CritFix

Fix newlines detection

Feature

Filter nan and inf when adding scores

Feature

Implement headers flags in mime parser

Feature

Support Expires header when using HTTP maps

Fix

Actively load skip hashes map in fuzzy storage

Fix

Add workaround for IPv6 in sendmail

Fix

Authentication Results: Fix SPF smtp.mail_from

Fix

Check for magic when checking for an archive

Fix

Deal with another case when processing exceptions

Fix

Deal with URLs with no slashes after protocol

Fix

Do not allow garbadge when checking url domain

Fix

Do not ignore short words

Fix

Do not strip last character in the last word

Fix

Do not treat script content as text

Fix

Erase unknown HTML entities

Fix

Fix another tokenization issue

Fix

Fix DKIM forgeries via multiple headers

Fix

Fix emails detection

Fix

Fix empty threshold check in greylisting module

Fix

Fix enormous scores for R_WHITE_ON_WHITE

Fix

Fix loading of per-user redis backend for statistics

Fix

Fix multiple headers in DKIM headers list

Fix

Fix obscured url in format user@@example.com

Fix

Further tokenization fixes

Fix

Load skip map from all processes as shared cache is unavailable

Fix

Lowercase words

Fix

Milter headers: skip_local / skip_authenticated settings

Fix

Milter headers: X-Spamd-Result header if X-Virus ran first

Fix

Ratelimit: fix whitelisted_rcpts matching

Fix

Some more fixes towards emails detection

Fix

SpamAssassin: Fail check_freemail_header if regexp didn't match

Fix

Use greylisting threshold in greylisting module

Release 1.6.4: 10 Sep 2017

Feature

Add method to get all content-type attributes in Lua

Feature

Add some sanity checks for actions and controller

Feature

Allow randomly select User-Agent from a list

Feature

Deal with obscured URLs with @ symbols

Feature

Milter headers: support adding/removing arbitrary headers from config

Fix

Add another workaround to display history properly

Fix

Add missing rspamadm control options to help

Fix

Auth-Results: Multiple DKIM signatures

Fix

Crash in URL processing

Fix

Default monitoring domain for surbl plugin

Fix

Detection of maillist optimized and fixed

Fix

Do not cache SPF records with PTR elements

Fix

Fix blacklists and DMARC in whitelist

Fix

Fix exceptions list in surbl

Fix

Fix processing of closed tags

Fix

Fix PTR processing in SPF

Fix

Lowercase HTTP headers to make them searchable from Lua

Fix

options.local_networks setting

Fix

Ratelimit: lowercase email addresses

Fix

Rebalance and slightly rework MX check plugin

Fix

Redis script loading in DMARC; URL tags; URL reputation

Fix

Reject invalid bh for DKIM signatures earlier

Fix

Remove incorrect method `task:set_metric_subject`

Fix

Rewriting subjects via force actions module

Fix

RPM postinstall

Fix

Treat 'rewrite subject' as spam action

Fix

Try harder to find urls

Fix

Use full URL when making an HTTP request

Fix

Use raw urls when sending requests to redirector

Fix

Use weight from map for fuzzy scoring

Rules

Penalise R_BAD_CTE_7BIT for utf8 messages

Release 1.6.3: 26 Jul 2017

CritFix

Fix semicolons parsing in the content type

Feature

Add EBL to the default config

Feature

Allow to configure monitored

Feature

Allow to skip specific hashes in fuzzy storage

Feature

Multimap: checking of symbol options

Feature

Redis settings: support checking multiple keys

Fix

ARC: Fix Lua 5.3 compatibility; timestamp should be integer

Fix

Avoid changing content-transfer-encoding header's value

Fix

Don't use whitelist/greylist maps as regexp, but as map

Fix

Fix get_content method

Fix

Header checks: Fix get_raw_header method

Fix

Header checks: REPLYTO_UNPARSEABLE rule

Fix

Lua_http: freeing

Fix

Milter headers: custom headers: removing headers

Fix

Parse HREF urls without explicit prefix

Fix

WHITE_ON_WHITE: Ensure score is matched to part that fired the rule

Release 1.6.2: 08 Jul 2017

Conf

Remove Rambler email bl for now

Conf

Switch RAMBLER_URIBL to a locally managed source

CritFix

Switch from ragel to C for Content-Type parsing

Feature

Add `-e` option for lua_repl

Feature

Add per-domain emails normalisation rules

Feature

Add sessions cache to debug dangling sessions

Feature

Add short_text_direct_hash for fuzzy check module

Feature

Add text_part:get_stats function

Feature

Allow to add custom processing script for surbl

Feature

Allow to check reply-to email

Feature

Allow to customize spam header, remove existing spam headers

Feature

Allow to disable specific workers in the config

Feature

Allow to discard messages instead of rejection

Feature

Allow to specify custom delimiter in emails plugin

Feature

Allow to specify custom User-Agent for rspamc

Feature

Allow to store symbols data in Clickhouse

Feature

Allow to use HTTPS when connecting to Clickhouse

Feature

Enable sessions cache tracking for milter connections

Feature

Implement per-line mode in lua_repl (like `perl -p`)

Feature

Implement rdns-curve plugin based on rspamd cryptobox

Feature

Improve maps cached data lifetime

Feature

Improve maps checking frequency

Feature

Improve monitored timeouts logic

Feature

milter_headers: add `extended_headers_rcpt` option

Feature

Milter headers: Add X-Spam-Flag to rmilter-compatibility headers

Feature

Milter headers: remove-header routine

Feature

Multimap: received filters for extracting TLDs from hostnames

Feature

Normalize email aliases in emails module

Feature

Re-add rambler email bl (as hashed list)

Feature

Reload file maps more frequently

Feature

Rework newlines strip parser one more time

Feature

Skip updates for messages scanned via controller

Feature

Split long DKIM public keys

Feature

Store more data when stripping newlines

Feature

Support SPF macros transformations

Feature

Support suppressing DMARC reports for some domains

Fix

Add missing `break` statement

Fix

Allow modifiers in SPF macros

Fix

DKIM sign tools: edge-cases around use_esld

Fix

Do not cache SPF records with macros

Fix

Do not overwrite score when setting pre-action

Fix

Fix comparision logic

Fix

Fix DKIM base64 folding for milter flagged messages

Fix

Fix emails module configuration

Fix

Fix folding for arc headers when milter interface is used

Fix

Fix gmail dots removal

Fix

Fix rspamc detection in greylist module

Fix

Fix some more issues with HTTP maps

Fix

Milter sessions can live forever

Fix

Normalize fuzzy probability better

Fix

Plug memory leak

Fix

RBL: Fixed hashed email address lookups

Fix

Try to deal with brain-damaged milter behaviour

Fix

Use `\n` to fold headers for milter

Rework

Allow to use custom callback for monitored checks

Rework

Further steps towards one process monitoring

Rework

Send health checks from a single worker

Release 1.6.1: 14 Jun 2017

Fix

Allow to init resolver without rspamd_config

Fix

Do not crash when resolver failed to initialize

Fix

Fix abstract context layout

Fix

Fix CGP helper reply parsing

Fix

Fix crashes when socket write errors occur

Fix

Fix parsing IPv6 nameservers in resolv.conf

Fix

Milter: Don't defer on "greylist" action

Release 1.6.0: 12 Jun 2017

Conf

Add rspamd_proxy to the default configuration set

Conf

Add sample arc module config

Conf

Do away with systemd specifics completely

Conf

Increase min_bytes to avoid FP

Conf

Remove ratelimits from default configuration

CritFix

Fix accepting on IPv6 sockets

CritFix

Fix corruption when multiple fuzzy are defined

CritFix

Fix learn condition in fuzzy check

CritFix

Fix memory leak in fuzzy check

CritFix

Fix memory leak in maps scheduling

CritFix

Paese the last character in DKIM signature correctly

CritFix

Zero fill sockaddr_un

Feature

Add ability to add doc strings by example

Feature

Add API to verify DKIM (and ARC) signatures

Feature

Add compression/decompression to proxy

Feature

Add count to url structure

Feature

Add initial support of the new protocol reply

Feature

Add Lua plugin spamtrap

Feature

Add `monitored_address` for rbls

Feature

Add new schema for bayes tokens

Feature

Add preliminary ARC support to dkim code

Feature

Add preliminary support of ARC signing

Feature

Add rules to detect bad 8bit characters in From and To

Feature

Add scanning support for milter protocol

Feature

Add support for bidirectional symbols in rspamd_stats

Feature

Add support for static maps

Feature

Add support of maps with multiple regexps matches

Feature

Add `text_multiplier` param

Feature

Add the preliminary ARC plugin

Feature

Add top redirector targets rank

Feature

Allow async events to be registered from LUA rules

Feature

Allow storing bayes tokens in Redis

Feature

Allow to exclude specific domains from mx check

Feature

Allow to have a stack of watcher finalisers

Feature

Allow to pass hostname to `-i` flag in Rspamc

Feature

Allow to set custom user agent in url redirector

Feature

Allow to use custom callback when parsing resolv.conf

Feature

Allow to use domain from authenticated user

Feature

Bayes expiry plugin

Feature

Check dkim sign keys for modifications

Feature

DKIM signing: sign_networks/local address specific use_domain settings

Feature

DMARC: Support excluding domains from sampling

Feature

Expire processing items for URL redirector aggressively

Feature

Fix surbl monitored for IP lists, add `monitored_domain` option

Feature

Implement caching for dkim body hashes

Feature

Implement milter protocol scan reply

Feature

Improve omograph phishing detection

Feature

Initial support of self-scan in Rspamd proxy

Feature

Keep track of headers in milter interface

Feature

Milter headers: better controls for local/authenticated

Feature

Multimap: email:domain:tld filter

Feature

Preliminary DMARC reporting implementation

Feature

Reuse stemmers in the cache

Feature

Rework confighelp to load Lua plugins

Feature

Rework hfilter to use hyperscan if possible

Feature

Rework lua RSA API

Feature

Rmilter_headers: approximate rmilter's extended_spam_headers

Feature

Start integration of milter support in proxy

Feature

Store average words length and short words count

Feature

Store hash of headers order and names

Feature

Support MTA name header

Feature

Support multiple types of dkim signing in Lua

Feature

Support numeric arguments for Redis requests

Feature

Use headers hash in bayes metatokens

Feature

Use normal resolv.conf rules of rotation in Rspamd

Feature

Use version 2 proto for checking messages

Fix

Allow to follow symlinks when safe

Fix

Append MX name for authentication results as required

Fix

Change default text multiplier from 0.5 to 2.0

Fix

Check min_bytes for images as well

Fix

Deal with 7bit charsets properly

Fix

Deal with 8bit characters in email addresses

Fix

Deal with unpaired <a> tags

Fix

Detect confighelp in plugins initialisation

Fix

Disable certain checks for utf spoof detection

Fix

DKIM Signing: avoid nil index when From header is missing

Fix

Do not add exact hashes from different parts

Fix

Do not check DMARC if SPF or DKIM were not checked

Fix

Do not check URLs that are resolved to be redirected

Fix

Do not set bayes probability if we don't use it

Fix

Do not stop on illegal unicode points - replace them

Fix

Fix another race condition in arc checks

Fix

Fix arc count logic

Fix

Fix ARC signing

Fix

Fix brain-damaged spamc protocol for now

Fix

Fix calling for peak functions

Fix

Fix couple of issues in FORWARDED rule

Fix

Fix CTE propagation from parent containers to children parts

Fix

Fix errors processing in the controller

Fix

Fix format string in milter

Fix

Fix issues in SPF macros parsing

Fix

Fix logging format string

Fix

Fix logic of cached passwords check

Fix

Fix lowercasing of stemmed words

Fix

Fix LRU elements removal

Fix

Fix memory leak when accepting from unix sockets

Fix

Fix milter connections persistence

Fix

Fix objects merging in UCL

Fix

Fix order of operations to avoid race condition

Fix

Fix parsing of long regexp types

Fix

Fix passing data to log helper when many symbols defined

Fix

Fix pools management for milter session

Fix

Fix processing of the watchers

Fix

Fix queue id macro in milter

Fix

Fix R_BAD_CTE_7BIT rule

Fix

Fix Redis timeout set

Fix

Fix REPLYTO_UNPARSEABLE rule

Fix

Fix setting of email address

Fix

Fix some more issues about duplicated fuzzy requests

Fix

Fix spamc support in rspamd proxy

Fix

Fix syntax error in spamtrap plugin

Fix

Fix url counts for href urls

Fix

Fix url handling in the protocol

Fix

Multimap: Received IP filters with Redis

Fix

Oops, fix d9d0fa5e86db2f4470d34395a233b450478b2f60

Fix

Parse rgb[a](x,x,x[,x]) css colors

Fix

Phishing: strict_domains

Fix

Reduce maps aggressiveness

Fix

Reresolve upstreams even if there is a single server there

Fix

Rspamadm grep: Disable Lua patterns in string search by default

Fix

Skip text parts when checking binary parts in fuzzy check

Fix

Support v2 checks in controller

Fix

Treat empty address as valid

Fix

Try harder to detect CTE

Fix

Try to deal with v4 mapped to v6 addresses on accept

Fix

Use dkim signing callback properly

Fix

Use non-volatile memory for storing data

Fix

Use static maps instead of ugly hack for radix_from_config

Fix

Use the same pool for related sessions

Rework

Continue modularisation for lua library

Rework

Initial milter protocol support

Rework

Make log pipes worker agnostic, add scanners API

Rework

Move authentication results generation to a separate routine

Rework

Move common DKIM functions to a separate lua module

Rework

Move global functions to a separate directory

Rework

Prepare dkim module for ARC checks

Rework

Propagate ucl variables from the command line

Rework

Remove multiple metrics support from Rspamd

Rework

Stop using name 'rmilter' for the modern protocol

Rework

Use LFU algorithm in LRU cache

Rules

Fix received TLS rules

Rules

Improve URL_COUNT_ODD rule

Release 1.5.9

Conf

Increase min_bytes to avoid FP

Conf

Remove ratelimits from default configuration

CritFix

Fix accepting on IPv6 sockets

CritFix

Zero fill sockaddr_un

Feature

Add `text_multiplier` param

Fix

Check min_bytes for images as well

Fix

Do not add exact hashes from different parts

Fix

Fix memory leak when accepting from unix sockets

Fix

Fix some more issues about duplicated fuzzy requests

Fix

Phishing: strict_domains

Fix

Skip text parts when checking binary parts in fuzzy check

Release 1.5.8

CritFix

Fix memory leak in fuzzy check

CritFix

Fix memory leak in maps scheduling

Feature

Multimap: email:domain:tld filter

Fix

DKIM Signing: avoid nil index when From header is missing

Fix

Do not set bayes probability if we don't use it

Fix

Do not stop on illegal unicode points - replace them

Fix

Fix brain-damaged spamc protocol for now

Fix

Fix Redis timeout set

Fix

Fix spamc support in rspamd proxy

Fix

Multimap: Received IP filters with Redis

Fix

Parse rgb[a](x,x,x[,x]) css colors

Fix

Reresolve upstreams even if there is a single server there

Fix

Treat empty address as valid

Fix

Try harder to detect CTE

Fix

Try to deal with v4 mapped to v6 addresses on accept

Release 1.5.7

CritFix

Fix corruption when multiple fuzzy are defined

CritFix

Fix learn condition in fuzzy check

Feature

Add rules to detect bad 8bit characters in From and To

Feature

DKIM signing: sign_networks/local address specific use_domain settings

Feature

Support numeric arguments for Redis requests

Fix

Deal with 8bit characters in email addresses

Fix

Fix couple of issues in FORWARDED rule

Fix

Fix passing data to log helper when many symbols defined

Fix

Fix R_BAD_CTE_7BIT rule

Fix

Fix REPLYTO_UNPARSEABLE rule

Fix

Fix setting of email address

Fix

Rspamadm grep: Disable Lua patterns in string search by default

Release 1.5.6

Feature

Add unigramms support in bayes

Feature

Allow configurable sign headers for DKIM

Feature

Allow to add unigramm metatokens from Lua

Feature

DKIM Signing: envelope match exception for local IPs

Feature

UCL: register parser variables from Lua

Fix

Always try to adjust filename

Fix

Do extra copy to ensure that original content is never touched

Fix

Fix SPOOF_REPLYTO rule

Fix

Ignore Rmilter added Received

Fix

More fixes for hashed email dnsbls

Fix

Plug memory leak in chartable module

Release 1.5.5

CritFix

Fix classifier learning with Redis backend

CritFix

Fix issue when parsing encoded rfc822/messages

Feature

Add escaped version of lua_ucl import

Feature

Add task:headers_foreach function

Feature

Allow to process filenames from content type

Feature

Allow to query hashed emails

Feature

Ignore bayes with mostly metatokens or with too few text

Feature

Probabilistically skip metatokens

Feature

Retrieve all virus names from SAVAPI

Feature

Rework classifiers lua metatokens

Feature

Store headers order

Feature

Store text tokens inside bayes tokens

Feature

Use cached shingles keys

Fix

Add missing score normalisation for HFILTER_URL_ONLY

Fix

Avoid lookup in absent hash

Fix

Check return values from Lua functions called from C

Fix

Do not count sending and loading time in rspamc

Fix

Escape json strings for controller rejplies from Lua

Fix

Fix archive scans for savapi

Fix

Fix domain_only emails RBL

Fix

Fix ip_score map configuration

Fix

Fix JSON output for history_redis

Fix

Fix one character length substrings search

Fix

Fix parsing of non-RFC compatible Exim received

Fix

Fix parsing of options for workers with the same type

Fix

Fix processing of small tokens vectors

Fix

Fix rfc2047 tokenization

Fix

Fix typo

Fix

More fixes for inplace decoding

Fix

Try to avoid modifications of the original data

Fix

URL redirector: Fix call to is_redirector

Rework

Set token data as uint64_t instead of chars array

Release 1.5.4

Conf

Add history_redis default configuration

Feature

Add spoofed rules

Feature

Add URL_IN_SUBJECT rule

Feature

Allow to get task's subject

Feature

Allow to specify maximum number of shots for symbols

Feature

Distinguish URLs found in Subject

Feature

Memoize LPEG grammars

Feature

Parse else parts in SA rules

Feature

Process subject for mixed characters

Feature

Resolve url chains in url_redirector module

Feature

Stat greylisted messages as greylisted not soft-rejected

Feature

Support checking for redirector in Lua SURBL

Feature

Support tag_exists SA function

Feature

Work with broken rfc2047 tokens

Fix

Check all watcher's dependencies

Fix

Do not compile hyperscan with no SSSE3 support

Fix

Do not crash if cannot decode qp encoded part

Fix

Fix dependencies of DKIM when multiple signatures are found

Fix

Fix lists in whitelist plugin

Fix

Fix one-shot symbols weight calculations

Fix

Fix options and shots match

Fix

Fix order of symbol options

Fix

Fix parsing of dot at the end of the address

Fix

Fix parsing of lua table arguments

Fix

Fix processing of subject words

Fix

Fix string split memoization

Fix

Fix templates grammar usage

Fix

Fix various issues related to Lua stack manipulation

Fix

Force actions: Use postfilter if we have honor_action / require_action

Fix

Further fixes to avoid PHISHING FP

Fix

Preserve order of options in symbols

Fix

Rspamadm grep: deal with unusually-formatted logs

Fix

Use hostname suffix when dealing with history

Rework

Remove outdated SA rules

Release 1.5.3

Conf

Add composite for hacked wordpress phishing

CritFix

Fix base64 decoding when there are unparseable characters

Feature

Additional symbol metadata in metadata exporter

Feature

Add method to get protocol reply from Lua

Feature

Add symbols when tagged rcpt/sender are normalised

Feature

Add task:get_symbols_all() function

Feature

Allow multiple formats of DKIM signing key

Feature

Allow to cache and use flexible protocol reply

Feature

Allow to set one_shot flag from register_symbol

Feature

Allow to skip certain types of hashes when learning fuzzy

Feature

Cache and insert scan time into the protocol

Feature

Detect newlines in rspamc --mime

Feature

DKIM signing: support use of maps

Feature

Greylist: Support excluding low-scoring messages from greylisting

Feature

Implement lua history in controller

Feature

Implement redis history querying

Feature

Preliminary implementation of redis history plugin

Feature

Support using request headers in settings

Fix

Change default template to deal with non-ASCII characters

Fix

Deal with lists of maps in whitelist module

Fix

DKIM signing: use domain-specific signing key

Fix

Do not reallocate completed zstd buffer

Fix

Do not use local_addrs in proxy

Fix

Fix crash when resolver is undefined

Fix

Fix double free when closing lua_tcp connections

Fix

Fix for lua 5.3

Fix

Fix freeing of arrays iterators

Fix

Fix issue with task:get_symbol and symbols with no metric

Fix

Fix log line duplication in `rspamadm grep`

Fix

Fix memory corruption on termination

Fix

Fix out-of-bound access in base64 decode

Fix

Fix ratelimit + greylisting

Fix

Fix subject rewriting

Fix

Fix task:set_recipients function

Fix

Fix URI_COUNT_ODD rule

Fix

Follow the traditional symbols conventions in RCPT_COUNT rule

Fix

Greylist: Suppress greylist action for whitelisted hosts too

Fix

Metadata exporter: use rule-specific settings for emails

Fix

Properly set missing fields in exporter

Fix

Proxy: max_retries option

Fix

RCPT_COUNT fixes

Fix

Rework HAS_X_PRIO rule to match symbols conventions

Fix

Update issues in ac-trie

Fix

Use optimised base64 decoding in DKIM

Release 1.5.2

Conf

Add default config for spamassasssin plugin

Conf

Add default configuration for antivirus module

Conf

Add dkim signing docs

Conf

Add mx_check default config

Conf

Add replies config

Conf

Add trie default config

Feature

Add heuristic to find text parts in files

Feature

Add rule to detect broken content type

Feature

Allow to extract CTE in Lua API

Feature

Allow to set from address for a lua_task

Feature

Allow to set recipients of a task from Lua

Feature

Enchance text_part:get_content method

Feature

Remove + aliases from emails

Feature

Support rmilter block and dkim signature in CGP helper

Feature

Support running event loop from Lua

Fix

Antivirus: use scanner-specific redis prefix

Fix

Couple of fixes for DKIM signing module

Fix

Distinguish missing and broken mandatory headers

Fix

Do more heuristical detection for missing CTE

Fix

Do not resort cache on each check

Fix

Fix CGP escaping

Fix

Fix MISSING_MIME_VERSION rule for plain messages

Fix

Fix parsing of cte in expressions

Fix

Fix partial matches in rspamadm grep

Fix

Fix setting class on style field

Release 1.5.1

CritFix

Fix processing of stop_patterns with `\0` character

CritFix

Fix setting of raw key for signing

Fix

Fix lua exports from plugins during reload

Fix

Fix prefilters action scores

Fix

Fix symbols processing order

Release 1.5.0

Conf

Add configurations for asn, clickhouse and dcc

Conf

Add default config for url redirector plugin

Conf

Add the default config for greylist module

Conf

Allow to edit all local maps from WebUI by default

CritFix

Deal with absent headers in DKIM

CritFix

Do not trust remote shingles count

CritFix

Fix bad memory leak in TLS certificates validation

CritFix

Fix critical memory issues with radix maps

CritFix

Fix descriptors leak on reload

CritFix

Fix headers selection in DKIM verification

CritFix

Fix parsing of boundaries that end with `--`

CritFix

Repair PTR_ARRAY_FOREACH macro

Feature

Add CORS support to the controller

Feature

Add FROM_NAME_EXCESS_SPACE rule

Feature

Add REPLYTO_EMAIL_HAS_TITLE rule

Feature

Add `caseless_hash` method to `lua_util`

Feature

Add `rip` keyword to ratelimit module

Feature

Add a simple benchmark for content type parsing

Feature

Add boundaries parsing in content type

Feature

Add charset detection for text parts

Feature

Add content disposition parser

Feature

Add fallback if too many updates are failing

Feature

Add function to convert struct tm to time using timezone

Feature

Add function to normalize HTTP paths

Feature

Add fuzzy collection plugin

Feature

Add fuzzy logic for images

Feature

Add gmime parser to mime_tool

Feature

Add heuristic to detect broken messages

Feature

Add heuristic to find displayed URLs

Feature

Add heuristic to process broken email addresses

Feature

Add images normalization

Feature

Add mechanism for disabling composites (Fixes #1270)

Feature

Add method to create regexp from a glob pattern

Feature

Add mime encoding manipulation routines

Feature

Add mime tool to explore messages

Feature

Add more meta tokens from received headers

Feature

Add neighbours option to support Rspamd cluster in WebUI

Feature

Add new function to parse mime addresses

Feature

Add new methods for lua_tcp

Feature

Add own headers decoding routine

Feature

Add own routine to generate a message id

Feature

Add parser for SMTP date

Feature

Add per-task lua cache to reuse 'heavy' objects

Feature

Add plugins list path in WebUI

Feature

Add preliminary multipart support

Feature

Add preliminary version of DKIM signing module

Feature

Add profiling support in client output

Feature

Add rfc2047 grammar

Feature

Add rfc2047 variant for QP decoding

Feature

Add rmilter_headers module (Fixes #1227)

Feature

Add sse42 version of base64 decoding

Feature

Add ssse3 and avx2 base64 decoders

Feature

Add support of libgd

Feature

Add the preliminary version of redirects resolver in Lua

Feature

Add ucl_object_iterate_full function

Feature

Add url encoding function

Feature

Allow SOA requests in lua dns

Feature

Allow custom parse types in lua ucl

Feature

Allow plugins to register webui handlers

Feature

Allow to add options explicitly to symbols

Feature

Allow to call a callback when symbol frequency is on peak

Feature

Allow to call redirector script from SURBL

Feature

Allow to create variable length dkim keys

Feature

Allow to have module specific options for Redis in plugins

Feature

Allow to pass sign key directly from Lua

Feature

Allow to register configuration docs from Lua API

Feature

Allow to return options as a table

Feature

Allow to set peak callbacks from Lua

Feature

Allow to specify custom method for a message

Feature

Allow to store dkim keys in Redis

Feature

Allow to store messages in files

Feature

Apply DCT using AAN for fuzzy signature

Feature

Avira SAVAPI support

Feature

Cache and simplify DCT and jpeg decode

Feature

Cache libicu converters

Feature

Detect URLs with suspicious omographs

Feature

Do not increase score for duplicate options

Feature

Do not trust CTE, check base64 and qp strictly

Feature

Dynamic reputation in URL reputation plugin

Feature

Extend redis lock when learning spawned

Feature

Filter non-utf chars from all decoded headers

Feature

Fix phishing detection for IDNA urls

Feature

Ignore bad symbols on base64 decoding

Feature

Ignore too wide elements in SPF

Feature

Implement fuzzy collection mode

Feature

Implement helo maps in multimap

Feature

Implement human readable buckets configuration

Feature

Implement min-hash shingles for DCT data from images

Feature

Implement new algorithm for fuzzy hashes of images

Feature

Implement new unicode normalizer

Feature

Implement quoted printable decoding

Feature

Implement received headers flags

Feature

Implement rspamdgrep tool

Feature

Implement sane checksum for config file

Feature

Implement url tags concept

Feature

Improve detection of omographs using libicu

Feature

Improve url redirector module

Feature

Multimap: Received header processing

Feature

Multiple improvements in the maps

Feature

New URL filters in multimap

Feature

Plugin to force actions on selected symbols

Feature

RBL module: support hashing for emails and helo RBL

Feature

Reuse URL tags in SURBL module

Feature

Rework RRD ds count, add conversion path

Feature

Rework surbl module to avoid extra redirector calls

Feature

Send config id to the WebUI

Feature

Simplify HTTPCrypt client support

Feature

Skip processing for large images

Feature

Start collection only mode implementation for fuzzy storage

Feature

Start import of the optimized base64 decode

Feature

Store all received headers in lua

Feature

Store relational order of all headers in a message

Feature

Support DKIM signing in Lua plugins

Feature

Support HTTPCrypt client in lua_http

Feature

Support setting SMTP message in multimap

Feature

Support setting metric subject from Lua

Feature

Support setting subject in force actions module

Feature

Treat v6 mapped addresses as v4 addresses

Feature

URL reputation plugin

Feature

Use Redis instead of memcached in URLs redirector

Feature

Use Rspamd rfc2047 decoder instead of gmime one

Feature

Use a different normalization for fuzzy images

Feature

Use normalized images in fuzzy hashes

Feature

Use own code for parsing of date

Feature

Use shingles for images fuzzying

Feature

Use t1ha for hashes, allow inlining

Feature

Use t1ha instead of metrohash and xxhash32

Feature

Various new features in metadata exporter module

Feature

rmilter_headers: authentication-results (#78)

Fix

Add additional check to mark redis connection inactive

Fix

Add packed attribute for protocol structure

Fix

Adopt OMOGRAPH_URL rule

Fix

Allow static maps

Fix

Allow to disable classifiers checks using settings and conditions

Fix

Another try to fix 0 length maps

Fix

Another try to fix corruption during maps reload

Fix

Another try to fix descriptors leak

Fix

Another try to fix reload and logger

Fix

Antivirus module: register virtual symbols for patterns

Fix

Avoid extensive reallocs

Fix

Avoid mempool leak in SA plugin on reload

Fix

Avoid race condition on saving cache and reload

Fix

Avoid reusing g_error (Fixes #1262)

Fix

Break pool connection on fatal redis errors

Fix

Check for NaN properly

Fix

Couple of fixes for date parsing

Fix

Date header timezone adjustments (#1279)

Fix

Deal with EOF properly

Fix

Decode filename in content disposition

Fix

Disable fuzzy images by default

Fix

Disable zero-copy mode for text parts to avoid crashes

Fix

Do not destroy session when not all finish scripts are done

Fix

Do not greyscale images

Fix

Do not leave parent-less workers processes on fatal errors

Fix

Do not lowercase Content-Disposition to perform decoding

Fix

Do not penalize characters just after numeric prefix

Fix

Do not refork workers that are intended to die

Fix

Do not set pre-result and update records for no `Queue-ID` messages

Fix

Do not skip post-filters when pre-filters have set some results

Fix

Do not stop symbols planning if async events are pending

Fix

Do not try to set keys for unencrypted requests in proxy

Fix

Encode URLs according to rfc3986

Fix

Encode URLs before sending them to the protocol

Fix

Filter bad characters from message id

Fix

Fix CTE detection heuristic

Fix

Fix Content-Type in HTTP requests

Fix

Fix IDN eslds phishing checks

Fix

Fix adding maps from config in Lua

Fix

Fix another reload memory issue

Fix

Fix argument returned on redis backend errors

Fix

Fix assertion in graph handling

Fix

Fix body trie matching

Fix

Fix build

Fix

Fix byte array expansion during toutf8 conversion

Fix

Fix charset normalisation

Fix

Fix checking of DKIM bodies that needs just `\n` to be added

Fix

Fix couple of cornercases with email addresses

Fix

Fix couple of issues

Fix

Fix dependencies tracking for callback symbols

Fix

Fix detection of jpeg size

Fix

Fix errors handling in fuzzy backend initialization

Fix

Fix fuzzy hashes count

Fix

Fix globbing and convert lists to arrays in fuzzy_check

Fix

Fix heuristical CTE detection for QP encoding

Fix

Fix ignoring of bad text parts

Fix

Fix indexes in array access, interleave loop

Fix

Fix int64 -> double conversion

Fix

Fix invalid memory access on reload

Fix

Fix issues with empty updates

Fix

Fix issues with quoted-printable encoding

Fix

Fix keys names

Fix

Fix lots of issues in mime parser code

Fix

Fix lua maps load

Fix

Fix macro name

Fix

Fix mas group score calculations

Fix

Fix matching of the same patterns from different tries

Fix

Fix memory corruprtion and leak

Fix

Fix memory leak in HTTP maps

Fix

Fix memory leak in expression destroying

Fix

Fix memory leak in parsing of mime names

Fix

Fix memory leak in safe ucl iterators

Fix

Fix memory leak on reload in plugins

Fix

Fix modules reconfigure on reload

Fix

Fix monitored setup fro URLBLs with IP addresses

Fix

Fix name of var

Fix

Fix new rrd updates

Fix

Fix out of bounds access

Fix

Fix parsing messages with no body

Fix

Fix parsing of '=' character in headers

Fix

Fix parsing of messages with no content type

Fix

Fix plugins callbacks in webui

Fix

Fix possible memory corruption in redis pool

Fix

Fix probability calculations for fuzzy redis backend

Fix

Fix processing errors in lua_tcp

Fix

Fix processing of emails with name only

Fix

Fix processing of non-multipart messages

Fix

Fix processing of parts with no valid content type

Fix

Fix race condition in SIGUSR2 handler

Fix

Fix redis options parsing when no redis servers are defined

Fix

Fix reload and hyperscan ready event

Fix

Fix reload memory issue

Fix

Fix rra_ptr conversion

Fix

Fix rrd file conversion

Fix

Fix setting of content-type attributes

Fix

Fix signing headers creation in DKIM

Fix

Fix stddev calculations

Fix

Fix surbl plugin to work with composite maps

Fix

Fix timezones parsing

Fix

Fix tokens usage

Fix

Fix urls and emails hashes

Fix

Fix usage of unsafe ucl iterators

Fix

Fix work with broken utf8 tokens

Fix

Fix writing of user to roll history

Fix

Forgotten worker

Fix

Further memory leaks fixes

Fix

Ignore lua metatokens in bayes for now

Fix

Improve OMOGRAPH_URL rule

Fix

Lua IP from string should be invalid if parsing failed

Fix

Miltiple fixes to new lua_tcp, add debugging

Fix

More fixes for iterators cleanup

Fix

More fixes to logger initialization

Fix

More heuristic fixes for phishing detection

Fix

More leaks eliminated

Fix

More leaks...

Fix

More random fixes for reload...

Fix

Multimap: Fixes for email filters

Fix

Multiple fixes for fann module

Fix

Multiple memory corruption fixes

Fix

Normalize path in HTTP router

Fix

Plug memory leak

Fix

Plug memory leak in adding radix trees

Fix

Plug memory leak in configuration parser

Fix

Plug memory leak in expressions parsing during reload

Fix

Plug memory leak in learning fuzzy storage

Fix

Plug memory leak in lua_tcp

Fix

Plug reload leaks

Fix

Plug termination memory leaks

Fix

Really increase lock lifetime

Fix

Replies module: fix symbol weight

Fix

Restore content type params related functions

Fix

Set task's subject from mime subject

Fix

Sigh, one more reload leak

Fix

Simplify images shingles

Fix

Some more memory issues are fixed

Fix

Stop hardcoding of lua in C

Fix

Stop processing of bad parts as text parts

Fix

Strictly filter bad characters when emittin json

Fix

Strings returned from lua are ephemeral

Fix

Support unix sockets for lua redis

Fix

Try to fix issues with reloading config

Fix

Try to fix race condition in redis_pool

Fix

Use checksum to avoid intersection between different ANNs

Fix

Use rspamd hashes in embedded ucl

Fix

Use sane default rewrite subject (*** SPAM *** %s)

Fix

Various collection mode fixes

Fix

Various fixes to mime parser

Fix

Various reload leak fixing

Fix

Whitelist certain extensions from archive checks

Rework

Add preliminary implementation of the mime parser

Rework

Adopt code for the new options

Rework

Change logger setup interface

Rework

Composite configuration (#1270)

Rework

Finally remove gmime dependency from Rspamd

Rework

Further fixes to symbols frequencies

Rework

Implement content type parser for mime

Rework

Kill all InternetAddressList usages

Rework

Multiple fixes for symbols cache statistics

Rework

Refactor struct names

Rework

Rework images fuzzy hashes algorithm

Rework

Rework lua_tcp to allow TCP dialog

Rework

Start massive rework to get rid of gmime

Rework

Start new approach for multiparts parsing

Rework

Start rework of mime addresses

Rework

Start rework of symbols cache updates

Rework

Start switching to libicu

Rework

Use a special structure for stats tokens

Rework

Use hash tables for symbols options

Rework

Use libicu instead of iconv for conversions

Rework

Use new scheme to parse mime parts

Release 1.4.2

CritFix

Deal with absent headers in DKIM

CritFix

Do not trust remote shingles count

CritFix

Fix headers selection in DKIM verification

Feature

Add EXT_CSS rule

Feature

Add toggle for disabling SURBLs

Feature

Extend redis lock when learning spawned

Feature

Parse <link> HTML tags

Fix

Avoid reusing g_error (Fixes #1262)

Fix

Do not reset loaded ANN when learning is requested

Fix

Fix another issue with external deps in SA

Fix

Fix body trie matching

Fix

Fix checking of DKIM bodies that needs just `\n` to be added

Fix

Fix fuzzy hashes count

Fix

Fix keys names

Fix

Fix length calculations for url encoded urls

Fix

Fix matching of the same patterns from different tries

Fix

Fix name of var

Fix

Fix parsing of URLs with spaces and other bad chars

Fix

Fix probability calculations for fuzzy redis backend

Fix

Fix signing headers creation in DKIM

Fix

Plug memory leak

Fix

Really fix chained SA dependencies

Fix

Really increase lock lifetime

Fix

Use checksum to avoid intersection between different ANNs

Fix

Use rspamd hashes in embedded ucl

Fix

Yet another change for testing external deps

Release 1.4.1

Feature

ASN support in Clickhouse module

Feature

Add clickhouse plugin

Feature

Add generic tool to add universal maps for lua modules

Feature

Add logger.debugm to debug lua modules

Feature

Allow to register metrics symbols using register_symbol

Feature

Allow to specify prefix for fann_redis

Feature

Clickhouse: support different masks for IPv4/IPv6

Feature

Support forcing action in antivirus plugin

Fix

Add handling of regexp maps

Fix

Allow backslashes in http urls

Fix

Avoid mapping of empty files

Fix

Do not load tld file to speed up rspamadm

Fix

Do not resolve numeric IP addresses due to ipv6 insanity

Fix

Filter incorrect training data

Fix

Fix Fuzzyconvert tool when password or DB is given

Fix

Fix build with custom glib/gmime

Fix

Fix converting of learn count from sqlite to redis

Fix

Fix crashes with invalid received and task:set_from_ip

Fix

Fix external dependencies for SA module

Fix

Fix fann_redis when number of scores has been changed

Fix

Fix hyperscan usage for non compatible platforms

Fix

Fix loading of maps from UCL objects

Fix

Fix memory leak for task-less redis requests

Fix

Fix mid module with new maps syntax

Fix

Fix parsing of URLs with username

Fix

Fix re cache initialisation

Fix

Fix replacements to sanitize '%' character

Fix

Fix set and regexp like static maps

Fix

Fix some issues in redis settings

Fix

Fix static IP maps

Fix

Fix total learns counter for redis stats

Fix

Fix usage of config during reload

Fix

Fix various warnings and issues

Fix

Invalidate ANN if training data is incorrect

Fix

Miltiple fixes to fann_redis module

Fix

More fixes for URLs with backslashes

Fix

Properly get options for ip_score module

Fix

Relax requirements for Received as gmail cannot RFC

Fix

Remove or fix hyperscan incompatible regexps

Fix

Settings: correctly read redis config

Rework

Rework lua logger interface slightly

Rework

Use new maps add function

Release 1.4.0

CritFix

Add guards for inactive redis connections

CritFix

Another fix for proxying files using rspamd_proxy

CritFix

Cleanup inactive redis connections

CritFix

Do not sometimes try to exec posfilters before classification

CritFix

Fix application of IPv6 mask

CritFix

Fix chunked encoding when reading messages

CritFix

Fix file mode for rspamd_proxy

CritFix

Fix hyperscan compilation on regexp change

CritFix

Fix issue with finding of end of lines pointers

CritFix

Fix iteration over headers array (introduced in 1.4)

CritFix

Fix processing of learned tokens count for redis backend

CritFix

Fix race condition in checking of cached maps

CritFix

Fix workers scripts by sharing workers configs

CritFix

Introduce raw content to text parts

CritFix

Plug memory leak and potential memory corruption

Feature

Adaptive ratelimits

Feature

Add ASN -> rbldnsd script for asn.rspamd.com

Feature

Add DMARC_NA symbol

Feature

Add F-Prot support to antivirus module

Feature

Add HTTP backend to metadata exporter

Feature

Add Lua API module for monitored objects

Feature

Add R_DKIM_NA / R_SPF_NA / AUTH_NA symbols

Feature

Add R_DKIM_PERMFAIL symbol

Feature

Add R_SPF_PERMFAIL symbol

Feature

Add Sophos antivirus support

Feature

Add ZSTD compression to Lua API

Feature

Add `mid` Lua module

Feature

Add `one_param` flag for metric symbols

Feature

Add a generic lua classifier

Feature

Add a very basic interface to access workers data from on_load

Feature

Add ability to delete a hash by its data to fuzzy_check plugin

Feature

Add ability to enable/disable symbols via dynamic_conf

Feature

Add ability to lookup settings by key

Feature

Add common way to disable Lua modules

Feature

Add compression support to rspamd client

Feature

Add condition to do antiviral check

Feature

Add configuration for lua classifiers

Feature

Add configuration knobs for the errors circular buffer

Feature

Add decompression support in rspamd client

Feature

Add errors exporter to the controller

Feature

Add expected value for monitored DNS resources

Feature

Add exporter from error ringbuf to ucl

Feature

Add extended version for fann creation function

Feature

Add ffi friendly version of process_regexp function

Feature

Add frequency and time display to webui

Feature

Add fuzzy_delhash command to rspamc client

Feature

Add implementation of redis connections pool

Feature

Add latency and offline time monitoring

Feature

Add learning support for lua classifiers

Feature

Add max-size and timeout options to CGP helper

Feature

Add method to enable/disable symbols in config

Feature

Add methods to get metric's actions and symbols from Lua

Feature

Add mmap support to lua_text

Feature

Add monitored object for surbl plugin

Feature

Add more exceptions to surbl whitelist

Feature

Add more meta-tokens to bayes

Feature

Add neural net classifier to fann_scores module

Feature

Add neural net serialization/deserialization

Feature

Add new dynamic conf module

Feature

Add periodic events support for lua_config

Feature

Add plugin to check MX'es for the sender's domain

Feature

Add preliminary monitored module

Feature

Add preliminary support of dynamic conf updates in Redis

Feature

Add preliminary version of clamav plugin

Feature

Add redis cache to asn module

Feature

Add replies compression

Feature

Add spamhaus DROP dnsbl

Feature

Add support for dictionary in client compression

Feature

Add support for fuzzy learn and unlearn from lua

Feature

Add support for input encryption

Feature

Add support of min_learns to neural net classifier

Feature

Add termination callbacks for workers

Feature

Add user-agent for rspamc

Feature

Add utility to perform classifier tests

Feature

Add zstd compression library

Feature

Allow HTTPS requests in lua_http

Feature

Allow conditions for pre and postfilters

Feature

Allow custom functions for ratelimits

Feature

Allow for excluding messages from AV scanning based on size

Feature

Allow for getting worker stats from Lua

Feature

Allow getting task UID from Lua

Feature

Allow parsing of mailbox messages from the commandline

Feature

Allow plugins to publish their lua API via rspamd_plugins

Feature

Allow to compare other systems with Rspamd

Feature

Allow to execute Lua scripts by controller

Feature

Allow to have a function to set custom greylist message

Feature

Allow to iterate over multiple tags

Feature

Allow to pass extra data from plugins to log helper

Feature

Allow to plan new periodics at different time

Feature

Allow to reset hashes

Feature

Allow to run rspamadm lua just as a lua interpreter

Feature

Allow to store settings in redis

Feature

Allow to update dynamic conf in Redis

Feature

Allow to use dictionaries for compression

Feature

Allow to use md5, sha1, sha256, sha384 and sha512 hashes in Lua

Feature

Allow whitelisting by IP for greylisting plugin

Feature

Antivirus: Support whitelists & pattern-matching sig names

Feature

Backport pack/unpack routines from Lua 5.3

Feature

Check settings with equal priopities in alphabetical order

Feature

Compress neural net in redis

Feature

Consider more tags when doing WHITE_ON_WHITE rule

Feature

Descriptive options for DMARC failure symbols

Feature

Descriptive options for RBL symbols

Feature

Enable configuration for monitored objects

Feature

Execute on_load scripts with ev_base ready

Feature

Fann scores now uses metadata from a message

Feature

Implement FANN threaded learning

Feature

Implement classifying for lua classifiers

Feature

Implement finish scripts for worker processes

Feature

Implement monitoring for DNS resources

Feature

Implement real priorities for pre and post filters

Feature

Insert two symbols: FANN_HAM and FANN_SPAM instead of one

Feature

Module to push metadata/messages to redis pubsub

Feature

Monitor RBL records

Feature

Move fann_classifier to a separate plugin

Feature

Normalize all ANN inputs

Feature

Preliminary version of metric exporter module

Feature

Preserve decompression context between tasks

Feature

Ratelimit: Support dynamic bucket size/leak rate

Feature

Relax FORGED_RECIPIENTS: allow senders to BCC themselves

Feature

Remove symbols weights on composites processing

Feature

Return symbol scores when getting resulting symbols

Feature

Rework lua tcp module

Feature

Rule to detect some obvious X-PHP-Originating-Script forgeries

Feature

Rule to identify some X-PHP-Script forgeries

Feature

Rules for scoring Google Message-ID fixes

Feature

Send hashes values to reply

Feature

Set expire for dmarc reports

Feature

Stop using cymru zone as it is unstable

Feature

Stop using of GLists for headers, improve performance

Feature

Store `for` in task:get_received_headers

Feature

Store `for` part in received headers

Feature

Store enabled flag for webui session

Feature

Store error messages in ring buffer

Feature

Support compressed maps

Feature

Support excluding selected users from ratelimits

Feature

Support looking up NS records in lua_dns

Feature

Support modern style SURBL configuration

Feature

Support multiple hashes in delhash path

Feature

Support new messages in rspamc

Feature

Support requests without reads in lua_tcp

Feature

Support setting task message from Lua

Feature

Track visibility of HTML elements

Feature

Try to add CRLF when checking DKIM

Feature

Try to guess line endings when folding headers

Feature

Try to improve normalization function for bayes

Feature

Use FFI to optimize SA module

Feature

Use length based arguments for redis, allow lua_text as arg

Feature

Use more layers for fann and another normalization

Feature

User-defined ratelimits

Feature

Utility to convert fuzzy storage from sqlite to redis

Feature

Yield DMARC_DNSFAIL on lookup failure

Fix

Adopt fuzzy storage for flexible backends

Fix

Allow plain IP addresses in Rspamd maps

Fix

Another fix for brain-damaged hiredis

Fix

Another fix for rdns write errors

Fix

Another fix for rdns_make_request_full invocation

Fix

Another fix in DKIM canonicalization

Fix

Another memory leak plugged

Fix

Another try to deal with posix idiotizm

Fix

Another try to fix RDNS events processing logic

Fix

Avoid double frees in HEAD requests

Fix

Avoid extra symbols for RBLs

Fix

Banish table.maxn from Lua parts

Fix

Check for socket error before connection in lua_tcp

Fix

Correctly propagate redis timeouts to Lua

Fix

Do not add extra newline in MIME mode

Fix

Do not be cheated by system hiredis

Fix

Do not classify when a message has not enough tokens

Fix

Do not crash on redis errors

Fix

Do not distinguish NXDOMAIN and NOREC for monitored

Fix

Do not replan retransmits if merely one server is defined

Fix

Do not use headers to calculate messages digests

Fix

Don't force action in replies module for authenticated users/local networks

Fix

Explicitly ban default passwords in webui

Fix

Finally fix ambiguity between parsed and resolved spf elts

Fix

Fix 'decoded' value in task:get_header_full()

Fix

Fix DKIM calculations

Fix

Fix DKIM signing for messages with no newline at the end

Fix

Fix DNS request in monitored

Fix

Fix DNS write errors processing

Fix

Fix HTTP methods other than GET and POST

Fix

Fix PERMFAIL for v6/v4 ambiguities

Fix

Fix absurdic scores for HFILTER_URL_ONLY

Fix

Fix actions in rolling history

Fix

Fix actrie patterns

Fix

Fix applying of lua dynamic confg

Fix

Fix autolearning errors and redis cache

Fix

Fix bayes learn_condition

Fix

Fix build with the recent OpenSSL

Fix

Fix caching and compressed maps

Fix

Fix check plain text part

Fix

Fix crash on OpenBSD in `url_email_start`

Fix

Fix double free in SPF

Fix

Fix extraction of shingles from redis fuzzy storage

Fix

Fix false sharing for symbols in the cache

Fix

Fix float usage in util:get_time

Fix

Fix folding algorithm to deal with empty tokens

Fix

Fix format string

Fix

Fix format string usage in controller errors handling

Fix

Fix handling of '\0' in lua_tcp

Fix

Fix handling of HTTP HEAD methods

Fix

Fix hash creation

Fix

Fix hiredis stupidity

Fix

Fix implicit settings module settingsup

Fix

Fix interaction with lua GC to avoid craches

Fix

Fix ip_score module registration

Fix

Fix issue with empty messages and dkim

Fix

Fix issues with CGP helper

Fix

Fix issues with the recent SPF changes

Fix

Fix key name to load ANN correctly

Fix

Fix lua tcp module by saving `do_read` in callback data

Fix

Fix memory leak in client when using compression

Fix

Fix min_learns option

Fix

Fix on_finish scripts and async handlers

Fix

Fix options for SPF dnsfail symbol

Fix

Fix parsing includes and redirects in SPF

Fix

Fix parsing of lua comments with empty lines

Fix

Fix parsing of unquoted HTML attributes

Fix

Fix periodic events and redis

Fix

Fix processing of fuzzy learns from Lua

Fix

Fix processing of redirect in SPF includes

Fix

Fix processing of symbols when reject limit is reached

Fix

Fix refcounts when map is specified by IP

Fix

Fix rspamd{session} class in Lua API

Fix

Fix setting ratelimit key for 'ip' bucket

Fix

Fix some cases of TLD urls detector

Fix

Fix statconvert tool

Fix

Fix stats for backend-less classifiers

Fix

Fix training script for fann_redis

Fix

Fix variable in ann module

Fix

Fix various errors in lua dynamic conf plugin

Fix

Forget old ANN when max_usages is reached to avoid overtrain

Fix

Further canonicalization fixes

Fix

Further fixes for fann_redis prefixes

Fix

Handle failures for inactive pooled connections

Fix

Improve multimap info message

Fix

More fixes in ANN loading

Fix

More fixes to fann_redis

Fix

More issues in fann_redis

Fix

More spaces fix in DKIM signature

Fix

Multiple fixes to asn script, add IPv6 support

Fix

Multiple issues in fann_redis

Fix

No greylist rejected messages

Fix

One more attempt to fix lua_redis

Fix

One more check for readdir...

Fix

Params should be treated as a hash

Fix

Plug memory leak in regexp desctructor

Fix

Process headers only once

Fix

Properly handle nil values in ratelimit plugin

Fix

Really fix redis shingles check

Fix

Remove fann with incorrect layers count

Fix

Remove mentions of deleted include

Fix

Remove some incompatible functions

Fix

Settings: fix `authenticated` parameter (#886)

Fix

Skip MX check for authenticated users and local networks

Fix

Slightly fix ANN routines

Fix

Stop caching records with DNS failures

Fix

Treat all errors in redis_pool as fatal errors for a connection

Fix

Try avoid false-positives in HEADER_FORGED_MDN rule

Fix

Try to avoid race condition when using rrd

Fix

Try to reload redis scripts if they are missing

Fix

Unbreak once_received skipping for local networks

Fix

Unlock ANN on error

Fix

Use memmove for overlapping regions

Fix

Use real size instead of displayed for core limits

Fix

Use the correct macro to get the size of control

Fix

Various fixes for errors ringbuffer

Fix

Yield R_SPF_DNSFAIL if lookup of included record fails

Fix

mid: fix map initialization

Fix

mid: handle incorrect rgexps in the map

Rework

Add extract training data function to fann_redis

Rework

Add preliminary train tests

Rework

Add redis storage feature to fann_redis

Rework

Adopt fuzzy storage for abstract backend

Rework

Adopt plugins

Rework

First reiteration on fann scores

Rework

Implement loading/invalidating

Rework

Make lua_redis task agnostic

Rework

Make rspamd protocol messages useful

Rework

Massive removal of legacy code

Rework

More cleanup actions

Rework

Remove legacy code never used for classifiers

Rework

Remove outdated and unused lua_session module

Rework

Reorganize fuzzy backend structure

Rework

Reorganize the internal backend structure

Rework

Restore old fann_scores, move common parts

Rework

Rework and simplify rbl plugin

Rework

Rework parsing of DMARC records

Release 1.3.4

Feature

ASN module; support matching ASN/country in multimap

Feature

Add SPF method in spf return result

Feature

Add Yandex and Mail.ru forwarding rules

Feature

Add mempool maps in multimap

Feature

Add rule for identifying mail sent by eval()'d PHP code

Feature

Add support of stub DNSSEC resolver to rdns

Feature

Add task:get_digest method

Feature

Allow for more fine-grained scoring for ip_score

Feature

Allow to get digest of a mime part from lua

Feature

Allow to print message digest in logs

Feature

Fold DKIM-Signature header

Feature

Implement encrypted logs

Feature

Log URLs encrypted if we have log encryption pubkey

Feature

Pass authenticated bit to lua

Feature

Read redis backend statistics configuration from global section

Feature

Show the exact value matched for multima symbols

Feature

Store task checksum

Fix

Avoid setting limits when required elements are missing

Fix

DMARC: Fix alignment checking for subdomains

Fix

DMARC: deal with missing and spurious spaces

Fix

Defer insertion of results in ip_score to avoid skewing stats

Fix

Disable DMARC for local/authorized mail

Fix

Fix handling of proxied headers in controller

Fix

Fix hex printing of strings

Fix

Fix issue with spaces in maps

Fix

Fix parsing of forwarded IP

Fix

Fix reload in some plugins and workers

Fix

Fix reloading on SIGHUP

Fix

Fix some border cases for DKIM canonicalization

Fix

Fix url maps

Fix

Make dnssec configurable option disabled by default for now

Fix

rspamadm statconvert: force db to be a string

Fix

rspamadm statconvert: use db/password for learn cache

Rework

Rework flags in rspamd logger

Release 1.3.3

CritFix

Check hyperscan cache sanity before loading

CritFix

Fix setting of fuzzy keys (completely breaks fuzzy storage)

Feature

Add SARBL (sarbl.org) uribl

Feature

Add `--search-pattern` option to rspamd_stats

Feature

Add some sanity check for very long from/to log elements

Feature

Allow to create hashes from string in a single step

Feature

Fix order of pre and postfilters

Feature

Improve lua URLs API

Feature

Improve message about fuzzy rules

Feature

Pre-calculate blake2 digest for all parts

Feature

Print radix duplicate keys as IP addresses

Feature

Simple mechanism for disabling RBLs in local.d/rbl.conf

Feature

Use faster hash function for fuzzy storage

Feature

rspamd_stats: support log directory reading

Fix

Add sanity check for url filters

Fix

Do not show rmilter section as a fake metric in rspamc

Fix

Fix URL filters

Fix

Fix a stupid mistake in util.strequal_caseless

Fix

Fix blake2b hash of the string "rspamd"

Fix

Fix filename maps filter

Fix

Fix finding tld in util.get_tld

Fix

Fix multimap content filters

Fix

Fix returning boolean from Lua

Fix

Fix returning of REDIS_NIL

Fix

Try to deal with multiple workers terminated

Fix

Use forced DNS request when calling for lua_http

Rework

Rework multimap filters, add redis maps

Release 1.3.2

Feature

Add a special symbol for SPF DNS errors: R_SPF_DNSFAIL

Feature

Add correlations report in fuzzy stats

Feature

Add experimental CGP integration

Feature

Add method to get urls length in a text part

Feature

Add new methods to lua_html to access HTML tags

Feature

Allow all types of symbols to be added via __newindex method

Feature

Allow to create settings for authenticated users

Feature

Allow to get block content for HTML tags

Feature

Improve DNS failures when dealing with SPF

Feature

Properly implement R_WHITE_ON_WHITE rule

Feature

Remove old ugly rules

Feature

Rspamc can now add dkim signature in mime mode

Feature

Store content length for HTML tags

Feature

Support reacher set of HTML colors

Feature

Try to avoid FP for low contrast fonts detection

Fix

Add missing HTML colors

Fix

Add spaces to dkim signature to allow folding

Fix

Avoid returning NaN as score on scan

Fix

Decode entitles in href parts

Fix

Do not cache SPF records with DNS errors

Fix

Do not crash on cyclic depends

Fix

Do not insert HELO/HOSTNAME unknown when they are not passed

Fix

Do not set absent hostname to "unknown"

Fix

Do not stress redis with KEYS command (#791)

Fix

Fix DMARC_BAD_POLICY symbol

Fix

Fix HFILTER_URL module

Fix

Fix HFILTER_URL_ONELINE rule

Fix

Fix buffering in CGP integration

Fix

Fix colors propagation from parent nodes

Fix

Fix confusing OpenSSL API usage of i2d_RSAPublicKey

Fix

Fix dependencies id sanity check

Fix

Fix folding for semicolon separated tokens

Fix

Fix largest possible TLD behaviour

Fix

Fix last token folding

Fix

Fix length calculations in white on white rule

Fix

Fix multiple request headers structure

Fix

Fix multiple values headers freeing

Fix

Fix parsing of background color

Fix

Fix printing from field in log_urls

Fix

Fix processing of last element of DMARC policies

Fix

Further fixes for HTML colors

Fix

Further fixes for multiple values headers

Fix

Further fixes for white on white rule

Fix

Further fixes in HTML tags parsing

Fix

Ignore content type/subtype case

Fix

Increase score of R_WHITE_ON_WHITE

Fix

Parse CGP envelope data

Fix

Propagate colors in HTML

Fix

Restore multiple values headers in protocol

Fix

Restore multiple values in headers processing

Fix

Some more changes to tag's content length calculations

Fix

Some more fixes for low contrast fonts detector

Fix

SpamAssassin plugin: support check_freemail_header('EnvelopeFrom', [..])

Fix

Trigger HTML_SHORT_LINK_IMG on any external image

Fix

rspamd_stats: remove deprecated defined(@array)

Release 1.3.1

CritFix

Fix catena passwords validation

CritFix

Fix crash when the first received is faked

Feature

Add DMARC_BAD_POLICY symbol when DMARC policy was invalid

Feature

Allow for matching hostnames in multimap (#773)

Feature

Allow for setting action based on DMARC disposition

Feature

Allow limiting of the inbound message size

Feature

Allow maps with multiple symbols and scores

Feature

Allow regexps in the emails maps

Feature

Allow to register metric symbols from multimap

Feature

Allow to reset redis tokens instead of appendig values

Feature

Allow to store strings in radix maps

Feature

Check UTF validity when there are utf regexps in a map

Feature

Correctly work when there is no hard reject action

Feature

Implement dependencies for maps

Fix

Another effort to unbreak sqlite locking

Fix

Avoid crash when closing mmapped file

Fix

Do not break history on NaN in required score

Fix

Ensure that hyperscan cache written is written properly

Fix

Filter NaN from scores in history

Fix

Fix DNSBL maps

Fix

Fix another locking issue in sqlite

Fix

Fix another locking issue with mapped files

Fix

Fix deadlock in mmaped file stats

Fix

Fix dependencies in multimap plugin

Fix

Fix emails module configuration

Fix

Fix greylist plugin (#755)

Fix

Fix greylisting plugin variable usage

Fix

Fix installed permissions for rspamd_stats

Fix

Fix locking in mmapped statistics

Fix

Fix paths in tests

Fix

Fix prefilter mode for multimap

Fix

Forgot to commit leftover changes

Fix

Really fix local.d includes

Fix

Restore selective greylisting behaviour

Fix

Set max size on per connection basis

Fix

Use temporary storage for hyperscan cache

Rework

Remove systemd socket activation

Release 1.3.0

CritFix

Fix SA rawbody processing - exclude top part

CritFix

Fix decoding of UTF HTML entitles

CritFix

Fix encrypted fuzzy requests

CritFix

Fix leak of shared memory fds and files

CritFix

Fix levenshtein distance calculations

CritFix

Fix mime headers processing

CritFix

Fix parsing of URLs in texts

CritFix

Fix parsing of missing classes

CritFix

Fix redis structure by adding {NULL, NULL} member

CritFix

Fix some more URL detector issues

CritFix

Fix systemd sockets activation

CritFix

Fix unencrypted passwords processing in the controller

CritFix

Fix writing CDPs to the database

CritFix

Fix writing of encrypted HTTP requests

CritFix

Plug memory leak in dkim module

CritFix

Plug memory leak in headers getting code

CritFix

Pre-filters and post-filters were completely broken

CritFix

Properly support SA body regexps

CritFix

Really skip filters in case of pre-result set

CritFix

Restore the intended pre-filters behaviour

Rework

Adopt new maps code

Rework

Compile ragel sources when building rspamd

Rework

Finish rework for the rest of places that use HTTP

Rework

Fix DKIM headers canonicalization

Rework

Fix lua maps API

Rework

Import linenoise for line editing

Rework

Include config structure to all rcl handlers

Rework

Make chartable module useful

Rework

Move http internal structures to a private header

Rework

Partly fix controller

Rework

Remove dedicated images list

Rework

Rename http proxy to rspamd proxy

Rework

Rename mime parts structures

Rework

Rework HTTP code

Rework

Rework exceptions and newlines processing

Rework

Rework pre and postfilters system

Rework

Separate method to close backend connections

Rework

Start the complete maps rework

Rework

Use dynamically generated ragel C sources

Feature

Add 'blacklist' and 'strict' modes for whitelists

Feature

Add 'symbols_enabled' and 'groups_enabled' to settings

Feature

Add ESMTPSA received type

Feature

Add a simple script to evaluate rspamd rules in the logs

Feature

Add a simple tool to generate DKIM keys

Feature

Add a trivial heuristic for codepages

Feature

Add and use mumhash for non-crypto hashing

Feature

Add better method to check lua userdata types

Feature

Add better zip files search algorithm

Feature

Add catena PBKDF function

Feature

Add configuration knobs for in and out parser scripts

Feature

Add content filtering support to multimap

Feature

Add different timeouts for proxy connections

Feature

Add dot commands for lua REPL:

Feature

Add execution of lua global functions script

Feature

Add function for pretty printing of inet addresses

Feature

Add function to convert fstring_t to c string

Feature

Add function to create temporary shared memory mapping

Feature

Add function to generate random hex string

Feature

Add generic fucnction to parse IP maps

Feature

Add initial version of HTTP lua repl

Feature

Add learn condition to the default configuration

Feature

Add learn conditions for classifiers

Feature

Add limit for dkim signatures to be checked

Feature

Add locking routines for lua_util

Feature

Add lua API for getting info from archives

Feature

Add lua utility to decode URL encoding

Feature

Add method to copy message from http connection

Feature

Add mirrors feature

Feature

Add more algorithms for shingles generation

Feature

Add more domains to redirectors list

Feature

Add more encodingsto cryptobox hash API

Feature

Add more file utilities to lua_util

Feature

Add more functions to extract data from text parts

Feature

Add more methods to get headers from a task

Feature

Add more methods to init http message body

Feature

Add more options for redis config parsing function

Feature

Add new representation of email address

Feature

Add new symbols to filter bad extensions in messages

Feature

Add new utility methods to mimepart object

Feature

Add openphish support to rspamd phishing module

Feature

Add parsers for SMTP address in ragel

Feature

Add parsing of mirror hosts for fuzzy storage

Feature

Add parsing scripts for master connection as well

Feature

Add preliminary greylist plugin

Feature

Add preliminary phishtank support

Feature

Add preliminary rarv5 support

Feature

Add preliminary version of ssl toolbox

Feature

Add protection against open files limit and accepting sockets

Feature

Add rar v4 support

Feature

Add reading scripts for master connection

Feature

Add replies plugin

Feature

Add results parsing code

Feature

Add routines to compare and check pubkeys

Feature

Add simpler versions of refcounts

Feature

Add some time manipulation functions for lua APi

Feature

Add support for non-standard BATV signatures

Feature

Add support of address with at-domain list

Feature

Add support to search archives by magic

Feature

Add task:get_rawbody method

Feature

Add test to check shared memory support sanity

Feature

Add the initial version of LUA repl to rspamadm

Feature

Add throughput graph for RRD backend to WebUI

Feature

Add universal function to make a proper redis request

Feature

Add universal function to parse redis servers for plugins

Feature

Add util.unlink function

Feature

Add utility function to return random number from 0 to 1

Feature

Add utility method to convert ftok to C string

Feature

Add utility to map shared memory segments

Feature

Add versions to fuzzy storage

Feature

Add workaround for legacy clients in rspamd proxy

Feature

Add workaround for systems without sane shmem support

Feature

Add xoroshiro+ fast rng for non-crypto purposes

Feature

Adopt plugins for new maps API

Feature

Allow SPF to be checked for empty tasks

Feature

Allow binary patterns in lua_trie

Feature

Allow catena encrypted passwords in controller

Feature

Allow client ip match in the settings

Feature

Allow easy adding and overriding of fuzzy rules

Feature

Allow empty tasks to be processed

Feature

Allow hostnames in IP maps

Feature

Allow https maps

Feature

Allow multiple PBKDF types in `rspamadm pw`

Feature

Allow named fuzzy rules

Feature

Allow non zero terminated patterns in multipattern

Feature

Allow partial hash updates

Feature

Allow pipelining for redis.make_request

Feature

Allow sending empty requests using client

Feature

Allow setting fuzzy flag by symbol not by value

Feature

Allow setting scores and actions from lua

Feature

Allow shared memory simple http client

Feature

Allow static lua files in any parts of rspamd sources

Feature

Allow to change flag from fuzzy learn condition

Feature

Allow to check rspamd_text using maps

Feature

Allow to disable composite rules from settings

Feature

Allow to disable some modules from common redis setup

Feature

Allow to extract ucl_object from lua using common API

Feature

Allow to get settings and settings id hash from lua_task

Feature

Allow to have specific settings for mirrored traffic

Feature

Allow to open message from a shared memory segment

Feature

Allow to parse pubkeys from the rcl config

Feature

Allow to pass extradata from rspamd to rmilter

Feature

Allow to query storage about number of fuzzy hashes stored

Feature

Allow to read logs without symbols scores

Feature

Allow to read password from console for rspamc

Feature

Allow to set ciphers and CA paths in config

Feature

Allow to skip some initialization phases to speed up rspamadm

Feature

Allow underscore separated names in settings

Feature

Allow versioning for sqlite databases

Feature

Always allow to terminate rspamd

Feature

Better deal with backend errors

Feature

Better lua_redis logging

Feature

Configure CA path and ciphers

Feature

Create a dedicated parser to strip newlines

Feature

Deduplicate the same urls in multimap module

Feature

Distinguish luajit from lua

Feature

Do not print garbadge in --compact output

Feature

Dynamically detect if a CPU is incompatible with hyperscan

Feature

Enable forced resolving for some lua plugins

Feature

Enable rrd by default

Feature

Enable workaround for exim

Feature

Fix task functions to work without rspamd_config

Feature

Further improvements to chartable module

Feature

Further micro-optimizations for hashing and shingles

Feature

Further relax parser

Feature

Humanize numbers in stats widgets

Feature

Implement HTTPS client

Feature

Implement SSL support in http client

Feature

Implement body rules for the trie plugin

Feature

Implement braced regexp quantifiers

Feature

Implement compare scripts for mirrors results

Feature

Implement compare scripts setup

Feature

Implement composites policies

Feature

Implement conditional learning for classifiers

Feature

Implement constructing of map from UCL

Feature

Implement dkim signing in dkim check plugin

Feature

Implement fuzzy storage updates

Feature

Implement fuzzy updates push protocol

Feature

Implement https maps

Feature

Implement inter-process maps caching

Feature

Implement mapping of remote flags to local flags

Feature

Implement mirroring in rspamd proxy

Feature

Implement multi-flags fuzzy replies

Feature

Implement multiple-sources fuzzy storage

Feature

Implement order of pre/post filters

Feature

Implement partial deleting for multi-flags

Feature

Implement pipelining for redis async interface

Feature

Implement ragel parser for received headers

Feature

Implement reading of messages to shared memory

Feature

Implement refcount for messages

Feature

Implement retransmits for master connection

Feature

Implement zero-copy mode for HTTP reading

Feature

Improve SPF domain detection logic

Feature

Improve config:register_symbol function

Feature

Improve error report for type mismatch in lua

Feature

Improve fstrings API

Feature

Improve getting SMTP data from lua_task

Feature

Improve levenshtein distance function

Feature

Improve logging in proxy and add refcounts

Feature

Improve logging lua types

Feature

Improve master/slave logging

Feature

Improve phishing plugin

Feature

Improve phishtank and openphish support

Feature

Improve ragel build target

Feature

Improve statistics script

Feature

Initialize ssl library to use SSL connections

Feature

Interpolate points sent to webui

Feature

Limit logging of elements that could have too many items

Feature

Lock ANN file when loading

Feature

New abstract hashing API in cryptobox

Feature

Normalize quoted addresses

Feature

Now cryptobox lua API accepts rspamd text as input

Feature

Optimize alignment to speed up hashing

Feature

Parse received date and ESMTPA proto

Feature

Parse received timestamp

Feature

Pass settings id to log helper

Feature

Pass settings id to lua script from log helper

Feature

Perform files expansion on proxying

Feature

Preliminary implementation of fuzzy master/slave updates

Feature

Print userdata using tostring if possible

Feature

Propagate HTTP result string when using proxy

Feature

Properly implement unweighted round-robin algorithm

Feature

Reduce number of timers queries

Feature

Rework and improve fuzzy storage

Feature

Rework dns resolving API for lua, add 'forced' option

Feature

Rework fann module to understand settings

Feature

Rework listening system to allow multiple socket types per worker

Feature

Rework ratelimit module to set expiration

Feature

Save bayes probability in memory pool var

Feature

Save settings id hash for convenience

Feature

Search for SSL_set_tlsext_host_name support

Feature

Send DKIM signature to protocol reply

Feature

Show DKIM signature in rspamc client

Feature

Show symbols description in scan output

Feature

Sign message merely after DKIM check

Feature

Simplify machines by assuming that headers are unfolded

Feature

Sort symbols when displaying them in log

Feature

Split main connection from mirrored connections

Feature

Start moving to the new email address structure

Feature

Store HTTP headers in a hash table

Feature

Store more information about compressed files

Feature

Store raw headers value to use them in DKIM

Feature

Store text parts content with newlines stripped

Feature

Support DKIM signing

Feature

Support EXIF jpeg images

Feature

Support archive files list extraction

Feature

Support archives when matching patterns in multimap

Feature

Support premium/academic feed for openphish

Feature

Support rspamd_updates via https

Feature

Supprort FQDNs in phishing module maps

Feature

Try to read on fuzzy timeout to avoid fake timeouts

Feature

Try to select the optimal possible function for input

Feature

Unescape and unquote smtp addresses

Feature

Update fuzzy timestamp when adding value

Feature

Update mumhash

Feature

Use -flto if possible when optimizations are enabled

Feature

Use extended map types in lua map, unify code

Feature

Use file lock in logger to avoid deadlocks

Feature

Use generic global string split function

Feature

Use metrohash as well

Feature

Use mumhash by default for incremental hashing

Feature

Use mumhash for words hashing

Feature

Use new ip parsing API

Feature

Use new maps API for local addrs

Feature

Use new ragel parser in message parsing code

Feature

Use new received parser instead of old one

Feature

Use new redis API in DMARC plugin

Feature

Use new redis API in greylist plugin

Feature

Use new redis API in ip_score plugin

Feature

Use new redis API in ratelimit plugin

Feature

Use new redis API in replies plugin

Feature

Use new version of register_symbol in rspamd plugins

Feature

Use offset when passing shm to deal with encrypted requests

Feature

Use one pass to remove newlines and store their positions

Feature

Use rspamd specific type checks for userdata

Feature

Use shared memory storage for http maps

Feature

Use universal redis definitions in rspamd plugins

Feature

Various improvements in greylist module

Feature

Wait for sqlite if locked when switching to WAL mode

Fix

Add filenames sanity filtering for mime types

Fix

Add guards for empty parts

Fix

Add missing types

Fix

Add more priority for config file symbols registered from UCL

Fix

Add sanity checks when compiling regexp maps

Fix

Add spaces instead of newlines to the normalized content

Fix

Add workaround for ancient openssl

Fix

Add workaround for gmime CTE stupidity

Fix

Add workaround for hex digits

Fix

Adjust MISSING_MIMEOLE score

Fix

Adjust body/body_buf when stealing encrypted message

Fix

Adopt lua task API for the new email addresses structure

Fix

Allow for disabling DMARC reporting when Redis is configured

Fix

Always register openphish and phishtank virtual symbols

Fix

Always use shmem on linux

Fix

Another change of newlines policy

Fix

Another d3evolution update

Fix

Another fix for exim workaround

Fix

Another fix for legacy clients

Fix

Another fix for maps scheduling

Fix

Another fix for marking upstreams inactive

Fix

Another fix for postfilters

Fix

Another fix for redis timeouts

Fix

Avoid `table.getn` method as it has been removed in lua 5.3

Fix

Avoid double hashing for images

Fix

Avoid linking with actrie if hyperscan is enabled

Fix

Check copy result when sending message to mirrors

Fix

Cleanup message when assiging body

Fix

Cleanup stack from global vars

Fix

Correctly parse query type

Fix

Disable all symbols if enable_groups is found in settings

Fix

Disable fts as it is completely broken in bloody linux

Fix

Disable multiple autolearn checks

Fix

Disallow updates by default

Fix

Do not abort when cannot load a map

Fix

Do not check recursion for non-DNS SPF record types

Fix

Do not delete uninitialized events

Fix

Do not die if shmem_mkstemp fails

Fix

Do not die when no metrics defined

Fix

Do not even try pcre in case of regexp maps

Fix

Do not greylist messages if redis has failed somehow

Fix

Do not greylist on rejection

Fix

Do not leave temporary maps cached

Fix

Do not output meaningless errors

Fix

Do not send NaN in json

Fix

Don't mix hyperscan and pcre processing within a same task

Fix

Finally rework and simplify redis backend for statistics

Fix

Fix Exim shutdown patch

Fix

Fix JIT compilation for PCRE2 expressions

Fix

Fix JIT usage for PCRE2

Fix

Fix REPL output

Fix

Fix SMTP address parsing machine

Fix

Fix UTF8 mode in PCRE2

Fix

Fix a stupid misprint in word 'phishing'

Fix

Fix accepting the first update when local idx is -1

Fix

Fix adding maps from ucl

Fix

Fix adding upstream to an active queue

Fix

Fix and rescore R_PARTS_DIFFER logic

Fix

Fix body rules in SA plugin

Fix

Fix body start position

Fix

Fix border case in urls detector

Fix

Fix border cases for incremental hashing

Fix

Fix caseless uthash application

Fix

Fix chartable issue with starting digits

Fix

Fix client_ip in users settings

Fix

Fix compilation issue

Fix

Fix conditional learning

Fix

Fix crash on empty maps

Fix

Fix creating of URLs from LUA

Fix

Fix creating of temporary shmem segment

Fix

Fix creation of mmapped statfiles

Fix

Fix descriptors leak on shmem detaching

Fix

Fix detaching of shared memory segments

Fix

Fix detection of URLs in text parts

Fix

Fix directories processing for rspamc

Fix

Fix displaying of rewrite subject in WebUI

Fix

Fix dkim private keys operations

Fix

Fix dkim signing

Fix

Fix dynamic scoring of subject symbols

Fix

Fix email address build

Fix

Fix encrypted proxy requests

Fix

Fix errors counting in upstreams

Fix

Fix errors handling in the proxy

Fix

Fix event bases for IO events

Fix

Fix events handling when scheduling map wacth

Fix

Fix fann rewrite

Fix

Fix files fallback for shmem transfer

Fix

Fix fuzzy adding in webui

Fix

Fix fuzzy storage encrypted mirroring

Fix

Fix fuzzy storage sync replies

Fix

Fix handling of the same words

Fix

Fix inserting values to the sources list

Fix

Fix ipv6 mask application

Fix

Fix issue with missing recipients

Fix

Fix issues with multiple returns from lua

Fix

Fix learning for non-existent backend

Fix

Fix legacy clients support in proxy

Fix

Fix length calculations for shared memory segments

Fix

Fix listening on UDP sockets

Fix

Fix loading of file maps

Fix

Fix long regexp flags (e.g. {sa_body})

Fix

Fix lua compare function init

Fix

Fix maps descriptions

Fix

Fix maps locking

Fix

Fix max_train setup in ANN module

Fix

Fix memory corruption

Fix

Fix memory leak in unsigned maps reading

Fix

Fix misprints for lto usage

Fix

Fix more issues with scripts processing

Fix

Fix next-to-last extension length check

Fix

Fix openssl initialization

Fix

Fix order of arguments

Fix

Fix order of initialization

Fix

Fix parser

Fix

Fix parsing of binary tries

Fix

Fix parsing of braced IPv6 addresses

Fix

Fix parsing of nested braces in SMTP comments

Fix

Fix parsing of rarv5 archives

Fix

Fix periodic scheduling when a map is not modified

Fix

Fix possible FP in TRACKER_ID rule

Fix

Fix post-filters processing

Fix

Fix potential NULL dereference

Fix

Fix processing of <br> and <hr> tags

Fix

Fix processing of addresses in protocol

Fix

Fix processing of messages without received headers

Fix

Fix proxying issue for unconnected sessions

Fix

Fix proxying of the encrypted messages

Fix

Fix race condition with shared memory by refcounts

Fix

Fix ratelimit initialization

Fix

Fix redis set request in replies plugin

Fix

Fix redis timeout events handling

Fix

Fix redis timeouts processing logic

Fix

Fix refcounts in lua_redis

Fix

Fix results checking if no master connection is active

Fix

Fix return value for couple of lua functions

Fix

Fix round-robin selection when upstreams have no weight

Fix

Fix rows calculation in graph

Fix

Fix rspamd_redis_make_request syntax in replies plugin

Fix

Fix scheduling of locked map events

Fix

Fix scores detection

Fix

Fix searching for newline positions

Fix

Fix secure_ip setting in controller

Fix

Fix sending data to graph command

Fix

Fix setting of score for parts differ

Fix

Fix setting of the lua top

Fix

Fix setting path for lua

Fix

Fix setting path for phishtank

Fix

Fix settings application

Fix

Fix shm_open call as described in POSIX

Fix

Fix size of length in fuzzy mirror wire protocol

Fix

Fix smtp grammar issues

Fix

Fix some issues with redis API

Fix

Fix some issues with retries in the proxy

Fix

Fix stack growing

Fix

Fix start of body detection in DKIM

Fix

Fix state on timeout

Fix

Fix stats script

Fix

Fix substring search when there are '\0' in strings

Fix

Fix symbol name for spf soft fail

Fix

Fix symbol type's check

Fix

Fix symbols registration and execution

Fix

Fix the case of multiple values keys

Fix

Fix the default symbol names according to metric

Fix

Fix timeout setup on learning

Fix

Fix timeouts in redis cache processing

Fix

Fix timeouts processing in lua_redis

Fix

Fix upstreams interaction for rspamd proxy

Fix

Fix usage of rdns reply structure

Fix

Fix varargs loop

Fix

Fix whitelists and blacklists in SA rules

Fix

Fix write servers setup for redis

Fix

Fix writing of HTTP messages

Fix

Force rspamd to upgrade fuzzy db on opening

Fix

Free the correct pointer

Fix

Further fixes for lto and static linking

Fix

Further fixes for surbl extensions map

Fix

Further fixes in maps code

Fix

Further improvements to error messages in fuzzy check

Fix

Further tweaks to redis garbadge collection

Fix

Groups are now case insensitive

Fix

Handle log pipe read errors

Fix

Handle nested dependencies in SpamAssassin plugin

Fix

Implement new automata to skip empty lines for dkim signing

Fix

Improve error messages on fuzzy add

Fix

Improve lua redis handling

Fix

Improve phishing module logging

Fix

Improve printing of fuzzy errors

Fix

Improve rrd diagnostic errors

Fix

Improve strcase hash used in uthash

Fix

Include fuzzy key to distinguish storages with different keys

Fix

Include slave cluster name into http request

Fix

Include some more information about archives

Fix

Indicate upstream error on timeout

Fix

Initialize hash tables array to avoid crashes

Fix

Initialize parser scripts properly

Fix

Initialize vars to avoid warnings

Fix

Inverse logic for saving ANN

Fix

Link lpeg to rspamd lua library

Fix

Make extension checks case-insensitive

Fix

Mark expired hashes as not found and not as zero flag

Fix

Match archive name as well

Fix

More and more fixes to redis states

Fix

More fixes about shared memory in proxy

Fix

More fixes for redis refcounts

Fix

More fixes to end of headers detection

Fix

More fixes to events logic

Fix

More fixes to multi-flag fuzzy storage

Fix

More fixes to parts distance calculations

Fix

More guards for redis free

Fix

One more fix in redis destructor

Fix

One more try to fix redis

Fix

PIE is required for static build

Fix

Partial fix for mmap'd statistics tests

Fix

Plug memory leak in proxy

Fix

Properly detect end of headers position

Fix

Properly init and free session structures

Fix

Reduce PRECEDENCE_BULK rule weight

Fix

Reduce the default thresholds for learning

Fix

Remove Type=forking from systemd unit file (#709)

Fix

Remove bad FANN file to save computational resources

Fix

Remove event before closing of fd to avoid race conditions

Fix

Remove parsing of 'from' variable in redis backend

Fix

Remove some bad domains from whitelists

Fix

Repair optional dependencies

Fix

Reset master connection when retransmitting scan request

Fix

Restore ONCE_RECEIVED symbol

Fix

Restore compatibility with old lua API behaviour

Fix

Restore redis runtime state

Fix

Reverse options when received

Fix

Send updates to mirrors only if we have some changes

Fix

Set host attribute properly when making HTTP request from lua

Fix

Set terminated state before calling of async free

Fix

Simplify MISSING_MIMEOLE rule

Fix

Simplify state machine by ignoring multiple spaces

Fix

Skip setting RPATH for static builds

Fix

Slightly reduce weights of rules with high FP rate

Fix

Some fixes to libmagic initialization

Fix

Some more fixes to ratelimit plugin

Fix

Strip '\r\n' properly

Fix

Switch hashes to mumhash

Fix

Treat NaN values properly in graph command

Fix

Try to avoid FP when checking for phished URLs

Fix

Try to avoid recursive events deletions

Fix

Try to fix false positive URL detections in text parts

Fix

Try to fix issue in redis stats backend when task is closed

Fix

Try to fix proxying of stupid spamc protocol to HTTP mirrors

Fix

Try to fix redis crashes

Fix

Try to fix upstreams with one element

Fix

Try to handle multiline history in a more sane way

Fix

Unbreak build on gcc < 4.9

Fix

Update RPM spec/sources (#700)

Fix

Update d3evolution version

Fix

Update mumhash implementation

Fix

Use custom error function for pre and post filters

Fix

Use new postfilters and prefilters API in the plugins

Fix

Use non-blocking mode for systemd sockets

Fix

Use shared memory merely for local backends in the proxy

Fix

Use watchers for spf plugin

Fix

Varioud fixes to the maps code

Release 1.2.8

Release 1.2.7

Release 1.2.6

Release 1.2.5

Release 1.2.4

Release 1.2.3

Release 1.2.2

Release 1.2.1

Release 1.2.0

Release 1.1.4

Release 1.1.3

Release 1.1.2

Release 1.1.1

Release 1.1.0

Release 1.0.11

Release 1.0.10

Release 1.0.9

Release 1.0.8

Release 1.0.7

Release 1.0.6

Release 1.0.5

Release 1.0.4

Release 1.0.3

Release 1.0.2

Release 1.0.1

Release 1.0.0

Release 0.9.10

Release 0.9.9

Release 0.9.8

Release 0.9.7

Release 0.9.6

Release 0.9.5

Release 0.9.4

Release 0.9.3

Release 0.9.2

Release 0.9.1

Release 0.9.0

Release 0.8.3

Release 0.8.2

Release 0.8.1

Release 0.8.0

Release 0.7.6

Release 0.7.5

Release 0.7.4

Release 0.7.3

Release 0.7.2

Release 0.7.1

Release 0.7.0

Release 0.6.8

Release 0.6.7

Release 0.6.6

Release 0.6.5

Release 0.6.4

Release 0.6.3

Release 0.6.2

Release 0.6.1

Release 0.6.0

Release 0.5.6

Release 0.5.5

Release 0.5.4

Release 0.5.3

Release 0.5.2

Release 0.5.1

Release 0.5.0

Release 0.3.2

Release 0.3.1