You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

ChangeLog 50KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192939495969798991001011021031041051061071081091101111121131141151161171181191201211221231241251261271281291301311321331341351361371381391401411421431441451461471481491501511521531541551561571581591601611621631641651661671681691701711721731741751761771781791801811821831841851861871881891901911921931941951961971981992002012022032042052062072082092102112122132142152162172182192202212222232242252262272282292302312322332342352362372382392402412422432442452462472482492502512522532542552562572582592602612622632642652662672682692702712722732742752762772782792802812822832842852862872882892902912922932942952962972982993003013023033043053063073083093103113123133143153163173183193203213223233243253263273283293303313323333343353363373383393403413423433443453463473483493503513523533543553563573583593603613623633643653663673683693703713723733743753763773783793803813823833843853863873883893903913923933943953963973983994004014024034044054064074084094104114124134144154164174184194204214224234244254264274284294304314324334344354364374384394404414424434444454464474484494504514524534544554564574584594604614624634644654664674684694704714724734744754764774784794804814824834844854864874884894904914924934944954964974984995005015025035045055065075085095105115125135145155165175185195205215225235245255265275285295305315325335345355365375385395405415425435445455465475485495505515525535545555565575585595605615625635645655665675685695705715725735745755765775785795805815825835845855865875885895905915925935945955965975985996006016026036046056066076086096106116126136146156166176186196206216226236246256266276286296306316326336346356366376386396406416426436446456466476486496506516526536546556566576586596606616626636646656666676686696706716726736746756766776786796806816826836846856866876886896906916926936946956966976986997007017027037047057067077087097107117127137147157167177187197207217227237247257267277287297307317327337347357367377387397407417427437447457467477487497507517527537547557567577587597607617627637647657667677687697707717727737747757767777787797807817827837847857867877887897907917927937947957967977987998008018028038048058068078088098108118128138148158168178188198208218228238248258268278288298308318328338348358368378388398408418428438448458468478488498508518528538548558568578588598608618628638648658668678688698708718728738748758768778788798808818828838848858868878888898908918928938948958968978988999009019029039049059069079089099109119129139149159169179189199209219229239249259269279289299309319329339349359369379389399409419429439449459469479489499509519529539549559569579589599609619629639649659669679689699709719729739749759769779789799809819829839849859869879889899909919929939949959969979989991000100110021003100410051006100710081009101010111012101310141015101610171018101910201021102210231024102510261027102810291030103110321033103410351036103710381039104010411042104310441045104610471048104910501051105210531054105510561057105810591060106110621063106410651066106710681069107010711072107310741075107610771078107910801081108210831084108510861087108810891090109110921093109410951096109710981099110011011102110311041105110611071108110911101111111211131114111511161117111811191120112111221123112411251126112711281129113011311132113311341135113611371138113911401141114211431144114511461147114811491150115111521153115411551156115711581159116011611162116311641165116611671168116911701171117211731174117511761177117811791180118111821183118411851186118711881189119011911192119311941195
  1. 1.0.11:
  2. * Fix spf redirects
  3. * Fix domains when parsing mx/ptr/a records in includes/redirects
  4. * Fix unfolded base64 encoding
  5. * Fix GError use-after-free
  6. * Do not rewrite the original url when using redirector
  7. * Fix parsing of fragment in urls
  8. * Fix processing of HTML tags
  9. * Improve empty image rule
  10. * Avoid long double type
  11. * Fix tokens weights in OSB algorithm
  12. * Improve debugging for bayes
  13. 1.0.10:
  14. * Fix settings application (#416)
  15. * Fix another issue with fixed strings
  16. * Fix hash function invocation
  17. * Use the proper string for make_dns_request in lua_http
  18. * Fix scan time output
  19. * Update webui:
  20. - fix labels for greylisting
  21. - fix dimension of scan time
  22. 1.0.9:
  23. * Emergency fix in keyed blake2 to fix fuzzy hashes and encrypted password
  24. * Support passwords longer than 64 symbols
  25. 1.0.8:
  26. * Add function to traverse AST atoms
  27. * Allow dependencies on rspamd symbols for SA metas
  28. * Fix memory corruption when timeout is removed in fuzzy check
  29. * Fix encrypted fuzzy add processing
  30. * Avoid use-after-free in controller session destructor
  31. * Use session pool instead of task pool in fuzzy check
  32. * Fix assembly in i386 mode (#413, #412)
  33. 1.0.7:
  34. * Plugged memory leaks in internet address object & html parser
  35. * Fixed static build
  36. * Fixed multiple sigchld processing
  37. * Fixed deletion of signal events after event processing loop
  38. * Fixed build on ARM (#404 - reported by @Gottox)
  39. * Fixed setting the default mask for SPF.
  40. * Fixed sanitisation of HTTP query values
  41. * Fixed parsing of the last header in encrypted HTTP messages
  42. * Additions and fixes for test suite & benchmarks
  43. * Added openssl aes-256-gcm support to libcryptobox & HTTP server
  44. * Implemented support for starting multiple HTTP servers
  45. * Implemented batch accept in HTTP server
  46. * Added module to get data from HTTP headers (#285 - reported by @msimerson)
  47. * Added `rspamadm control` command
  48. * Added ability to sort counters output.
  49. * Added ability to specify custom headers for rspamc client
  50. * Fix architecture detection
  51. * Converted history storage to the UCL format
  52. * Allow flexible number of rows in history
  53. * Fix action badges in WebUI
  54. * Add universal cryptobox hash API
  55. * Migrated to the optimized blake2b implementation adopted from Andrew Moon
  56. * Allow explicit loading of specific modules
  57. * Always load settings module
  58. * Allow to add symbols from settings
  59. * Fix double free in the controller fuzzy learn command
  60. * Avoid endless loop when cannot open sqlite db
  61. * Updated libucl
  62. 1.0.6:
  63. * Fix build on i386
  64. * Update CentOS7 service file patch (by @fatalbanana)
  65. * Fix path to rspamadm in Debian init script (by @fatalbanana)
  66. * Fix broken '_SC_GETPW_R_SIZE_MAX' on FreeBSD
  67. * Fix portability issues
  68. * Use cryptobox chacha for libottery
  69. * Better support of 32 bit builds
  70. * Fix header name tokens setup
  71. * Fix levenstein distance method for words
  72. * Add workaround for old libevent (#400)
  73. * Fix microseconds in termination timer
  74. * Fix some more issues with fixed strings
  75. * Explicitly test CPU instructions even after CPUID call
  76. * Do not check out of boundary memory
  77. * Do not output broken emails
  78. * Fix unknown symbols registration
  79. * Handle SIGILL using longjmp
  80. * Block signals when exiting event loop
  81. * Fix incorrect allocation size
  82. * Slightly optimize alignment
  83. * Restore rspamd -t for compatibility
  84. * Add more sanity checks for emails
  85. 1.0.5:
  86. * Add rspamd control interface:
  87. - support `stat` command to get runtime stats of rspamd workers
  88. - support `reload` command to reload runtime elements (e.g. sqlite3 databases)
  89. * Rework curve25519 library for modular design:
  90. - add Sandy2x implementation by Tung Chou
  91. - fix CPU detection for variables loading assembly
  92. - add testing for curve25519 ECDH
  93. * New fixed strings library
  94. * Add `R_SUSPICIOUS_IMAGES` rule
  95. * Enable mmap in sqlite3
  96. * Use new strings in the HTTP code
  97. * Improve google perftools invocation
  98. * Improve performance profiling in http test
  99. * Reorganize includes to reduce namespace pollution
  100. * Allow specific sections printing in configdump command
  101. * Rework workers signals handlers to be chained if needed
  102. * Update socketpair utility function
  103. * Add control_path option for rspamd control protocol
  104. * Fix ownership when listening on UNIX sockets
  105. * Rework signals processing in main
  106. * Remove extra tools from rspamd (they live in rspamadm now)
  107. * Remove global rspamd_main
  108. * Add global timeout for the overall task processing (8 seconds by default)
  109. * Sanitize NULL values for fuzzy backend
  110. * Store NM between encrypt/decrypt
  111. * Add textpart:get_words_count method
  112. * Fix generic DNS request in lua
  113. * Tune hfilter weights
  114. * Add support of IPv6 in hfilter
  115. * Fix parsing of HTTP headers with IP addresses
  116. * Sync with the recent libucl
  117. * Various minor bugfixes
  118. 1.0.4:
  119. * Add configdump routine to rspamadm
  120. * Implement retransmits for fuzzy_check plugin
  121. * Fix events processing for learning anf checking fuzzy hashes
  122. * Avoid dependency on unneeded and uncompatible glib include
  123. * Add `historyreset` command to the controller
  124. * Fix loading of tokenizer config from dump (#389)
  125. * Add sorting hints for the history
  126. * Allow custom lua scripts for users/languages extraction (#388)
  127. * Do not add FORGED_RECIPIENTS when 'To' is missing (#387)
  128. * Do not add R_UNDISC_RCPT when 'To' is missing (#387)
  129. * Add encryption to fuzzy check plugin
  130. * Add encryption for fuzzy storage
  131. * Add new epoch for encrypted fuzzy request
  132. * Add encryption for `rspamd.com` storage
  133. * Remove gmime processing for LDA mode as it is deadly broken
  134. * Add routine to find end of headers position in mime messages
  135. * Fix LDA headers folding
  136. * Init libraries in rspamc client as well to avoid locale issues
  137. * Avoid collision with locally installed includes
  138. * Allocate and free memory with the same allocator in rspamadm (#385)
  139. * Preserve expired fuzzy hashes counter
  140. * Improvements in webui:
  141. - Add favicon.ico
  142. - Rework history table
  143. - Fix sorting for the history
  144. - Migrate to bootstrap 3 and jquery 2
  145. - Fix css bugs
  146. - Add glyphicons
  147. - Add reset history
  148. - Improve history buttons
  149. - Redraw graph to avoid display issues
  150. - Webui is now MIT licensed to match licensing policy of rspamd
  151. 1.0.3:
  152. * Fix piechart clean slice (#380)
  153. * Fix controller crashes when GString is reallocated (#381)
  154. * Correctly set locale before start
  155. * Set C locale for numeric values
  156. * Add rspamadm routine:
  157. - add `pw` command to manage passwords
  158. - add `help` command for displaying help
  159. - add `configtest` command to check configuration files
  160. - add `keypair` command for generating encryption keys
  161. - add `fuzzy_merge` routine to merge fuzzy sqlite databases
  162. - add a simple manual page for rspamadm
  163. * Allow metric registration for composite expressions
  164. * Add strict mode for configtest
  165. * Add logger counters
  166. * Save and show learned messages count (#383)
  167. * Add `no_stat` flag
  168. * Add `task:set_flag` and `task:get_flags` (#382)
  169. * Enable foreign keys in sqlite3
  170. * Remove orphaned shingles from fuzzy storage
  171. * Optimize synchronization steps for fuzzy storage
  172. * Allow delayed conditions registration
  173. * Add lua API for conditions registering
  174. 1.0.2:
  175. * Fix critical bug in webui that prevents password from being sent
  176. * Rework webui view:
  177. - Switch to d3.js for graphs
  178. - Improve piechart look
  179. - Rework colors for piechart
  180. - Fix layout for symbols
  181. - Fix refresh button
  182. * Add descriptions for whitelist maps
  183. * Fix build on arm (#379)
  184. * Fix issue with the last element in the radix trie
  185. * Add more tests for radix trie algorithm
  186. * Allow to extract URLs from query strings of other URLs (#361)
  187. * Initialize rrd fields before writing to file
  188. * Fix double free if no password has been specified
  189. 1.0.1:
  190. * Add writing to rrd from the controller
  191. * Fixed lots of bugs in rrd code
  192. * Adopt new DNS API in hfilter plugin (by @AlexeySa)
  193. * Allow only one controller process to manage rrd file
  194. * Set event base for fuzzy calls
  195. * Improve fuzzy IO errors logging
  196. * Add rra extraction function to rrd library
  197. * Add graph handler to the controller
  198. * Cache correct passwords to avoid too high CPU usage when working with webui
  199. * Controller sockets are owned by router do not export them to task
  200. * Optimize logging by skipping hash table search if it's empty
  201. * Fix loading issue whith broken statfiles
  202. * Print assertions from glib to rspamd logger
  203. * Load legacy `lua/rspamd.local.lua`
  204. * Update webui with some fixes to learning and scanning
  205. 1.0.0:
  206. * Rework symbols processing:
  207. - Improve sorting logic for symbols
  208. - Organize processing into multiple stages
  209. - Added asynchronous watchers for symbols
  210. - Added ability to organize dependencies between symbols
  211. * Fixed URL redirector:
  212. - Use optimized POE loop
  213. - Organize dependencies
  214. - Fix startup
  215. * New sqlite3 backend:
  216. - Allow to have per-languages and per-user statistics
  217. - Allow sqlite3 to be used as statistics backend
  218. * Store tokenizer configuration within statfiles
  219. * Improve bayes statistics:
  220. - Use headers and images metainformation in bayes
  221. - Suggest using of pre-processed tokens for statistics
  222. - Fix tokens normalization for OSB algorithm
  223. * Rewrite url parsing:
  224. - Fix numerous issues with url extraction and normalization
  225. - Fix mailto urls
  226. * Fix settings plugin to allow custom actions scores
  227. * Improve rbl plugin
  228. * Allow capturing patterns in rspamd lua regexp library
  229. * Add GTUBE support
  230. * Fix spamc legacy support
  231. * Add DKIM support to RBL module
  232. * Fix issues with multiple DKIM signatures
  233. * Fix issue if rspamd cannot create statfiles (#331)
  234. * Rework parts and task structure:
  235. - Now text_parts, parts and received are arrays
  236. - Pre-allocate arrays with some reasonable defaults
  237. - Use arrays instead of lists in plugins and checks
  238. - Remove unused fields from task structure
  239. - Rework mime_foreach callback function
  240. - Remove deprecated scan_milliseconds field
  241. * Add ip_score plugin support (not enabled by default):
  242. - Can check for asn/country and network using DNS lookups
  243. - Can store and load reputation from redis server
  244. * Improve PARTS_DIFFER rule to count merely different words
  245. * New HTML parser:
  246. - Parses HTML parts using a set of state machines
  247. - Extracts useful data and exports it to lua functions:
  248. + Styles
  249. + Images
  250. + URLs
  251. + Colors
  252. + Structure elements
  253. - Added HTML rules for some checks
  254. * New version of LUA DNS API
  255. * Table versions of many functions in LUA API
  256. * Improve rspamc client:
  257. - Print execution time
  258. - Allow executing of external commands and passing output to them
  259. - Allow mime output mode when rspamc alters message according to rspamd
  260. checks and send it to an external command or stdout
  261. * Allow scanning of local files using HTTP requests
  262. * Rework configuration system:
  263. - Rules are now moved from the $CONFDIR to $RULESDIR to avoid ambiguity
  264. - All modules configurations are now split in $CONFDIR/modules.d/* to
  265. simplify upgrades
  266. - Move hfilter to plugins
  267. - Allow plugins and rules to define default scores to simplify metrics
  268. setup
  269. - Include overrides for all modules to honor local/automatic parameters
  270. - Tune scores for many modules
  271. * Rework and enable DMARC plugin
  272. * Add whitelist plugin for SPF/DKIM/DMARC based whitelisting
  273. * Add some common domains to whitelists shipped with rspamd
  274. * Rework logging:
  275. - Now each log entry supports module name and a `tag`. Tag is used to
  276. identify unique objects (such as tasks) when checking log files
  277. - It is possible to turn on debugging for the specific modules
  278. - Systemd logging is fixed
  279. * Improve spamassassin plugin.
  280. - Now headers are matched more like SA
  281. - Improve support of Message-ID
  282. - Add support of ToCc header type
  283. - Fix :addr and :name in headers regexps
  284. * Resurrect rrd support code
  285. * Save controller stats between restarts
  286. * Fixed tonns of bugs
  287. * Added tonns of minor improvements and features
  288. * Added more unit tests
  289. * Create functional tests framework
  290. * Added documentation for missing modules
  291. * Added rpm/deb repositories and scripts
  292. * Updated WebUI and libucl externals
  293. 0.9.10:
  294. * Do not dereference null pointer on learning.
  295. * Fix some extreme cases in BAYES.
  296. * Add a workaround to avoid bad HTML messages breaking.
  297. * Build with -O2 flags by default.
  298. * Add constraints to limit DNS requests count per task.
  299. * Add workaround for SURBL DNS flood.
  300. * Set error if rspamd cannot learn anything.
  301. 0.9.9:
  302. * Don't use RWL_SPAMHAUS_WL (unknown result) for whitelisting (by @fatalbanana)
  303. * Import updated public suffix list (by @fatalbanana)
  304. * Remove debug message
  305. * Fix settings (by @fatalbanana)
  306. * Remove duplicated symbol registration
  307. * Use WAL for fuzzy storage
  308. * RBL fixes (by @fatalbanana):
  309. - silence errors;
  310. - yield unknown results from RBLs;
  311. - fix scoring for DNSWL;
  312. - fix use of RBL name as symbol;
  313. - ignore RBL names that would not be yielded;
  314. * Support captures in regular expressions
  315. * Add captures support to lua_regexp
  316. * Support dist on FreeBSD and Darwin
  317. * Add RCVD_IN_DNSWL_NONE as whitelisting exclusion (by @fatalbanana)
  318. * Multiple fixes to URL detection:
  319. - support port definition;
  320. - fix query and path recognition;
  321. - fix parsing of multiple slashes in URL;
  322. - fix parsing query just after port;
  323. - fix path field in `url:to_table` method;
  324. - improve support of IP based URLs.
  325. * Set ignore_whitelists = true for RECEIVED_SPAMHAUS_XBL (by @fatalbanana)
  326. * Add GTUBE support
  327. * Ignore User header in SA mode
  328. 0.9.8:
  329. * Fix critical bug in bayes classifier (#305)
  330. * Fix critical bug in RBL module (by @fatalbanana)
  331. * Fix and rework settings plugin.
  332. * Fix get_all_opts for a case of non-iterable options.
  333. * Use tld for redirector's matching.
  334. 0.9.7:
  335. * Add whitelist_exception setting to RBL module (by @fatalbanana)
  336. * Don't use RWL_MAILSPIKE_POSSIBLE or DNSWL_BLOCKED for whitelisting (by
  337. @fatalbanana)
  338. * Fix extreme cases in bayes classifier.
  339. * Fix parsing of urls with '?' at the end of hostname.
  340. * Update interface.
  341. * Fix number of issues with webui interaction.
  342. * Fix saving maps.
  343. * Allow user@ and @domain matches in multimap.
  344. * Fix issues with bounces From processing.
  345. * Fix abs/fabs misuse.
  346. * Fix builds on suse and arch linux distributions.
  347. 0.9.6:
  348. * Fix memory leak if mime cannot be parsed.
  349. * Fix dkim cache expiration.
  350. * Fix issues with redirector HTTP response.
  351. * Fix abnormal connection closing with certains messages with a high score
  352. (issue #296)
  353. * Fix redirector installation.
  354. * Use specific POE loop for some systems.
  355. * Fix number of issues in URL redirector.
  356. * Fix selecting URLs for sending to redirector.
  357. 0.9.5:
  358. * Avoid double free when extending HTTP message.
  359. * Fix double free if multiple classifiers are defined.
  360. * Fix misprint in spamassassin plugin.
  361. * Fix cpuid invocation on i386.
  362. * Fix ownership issues for zero-copy decode.
  363. * Allow __len metamethod on rspamd{text}.
  364. * Add base64 decoding lua utility.
  365. * Fix build on FreeBSD
  366. * Skip spaces at the beginning of mime messages.
  367. * DBL_ABUSE_REDIR should not have significant weight.
  368. * Allow to split by lua_regexp rspamd{text} objects.
  369. * Allow to specify custom stop pattern for lua_tcp.
  370. 0.9.4:
  371. * Fix critical bugs in tokenization algorithm
  372. * Write unit tests for tokenization
  373. * Add documentation for lua_tcp
  374. * Switch off legacy tokenization by default.
  375. * Fix critical bugs in words normalization
  376. * Add lua bindings to tokenizer.
  377. * Implement storing of HTTP headers inside task
  378. * Add lua API to accerss HTTP headers data
  379. * Implemented base64 encoding suitable for MIME
  380. * Use caseless hash and equal functions for HTTP request headers.
  381. * Improve debian architectures support (by @dottedmag)
  382. 0.9.3:
  383. * Revert incorrect regexp change that broke the default rules
  384. * Fix lua_tcp module
  385. 0.9.2:
  386. * Fix error on spawning unique workers.
  387. * Add preliminary version of generic LUA TCP requests API.
  388. * Use lua 5.1 if luajit is not available (Arm64, PowerPC, s390x etc)
  389. * Fix fuzzy mime strings with only type.
  390. * Improve thunderbird sanity checks.
  391. * Fix critical bug on matching regular expressions.
  392. * Make hiredis optional dependency.
  393. * Fix multiple bugs in daemon reloading
  394. 0.9.1:
  395. * Restore utf8 validation for regular expressions to avoid crashes
  396. * Fix symbols displaying in the interface
  397. * Add symbol groups to the interface
  398. * Fix maps ID parsing in the controller
  399. * Add multimap and regexp modules documentation
  400. * Backport fixes from libucl
  401. * Fix debian package (by @dottedmag)
  402. * Rework XXH32 invocations
  403. 0.9.0:
  404. * Add support of the fast and secure protocol level encryption:
  405. - curve25519 is used for key exchange;
  406. - chacha20/poly1305 cryptobox construction for bulk encryption;
  407. - zero latency overhead;
  408. - encrypting and balancing HTTP proxy worker
  409. * Rework expressions and create new expressions library:
  410. - aggressive optimizations based on the abstract syntax tree;
  411. - abstract expressions support (regular expressions, functions, lua modules
  412. composites and so on)
  413. - New comparision and '+' operators support
  414. - New greedy algorithm to minimize execution time of expressions and
  415. all symbols
  416. - Dynamic expressions benchmark and reoptimizations
  417. * Many improvements to the LUA API:
  418. - reworked logger module allowing to do pretty print of the most of lua
  419. types (including tables and userdata classes)
  420. - reworked lua redis and lua HTTP to support more features
  421. - added opaque type for passing large text chunks without copying
  422. - new regexp module with many auxiliary functions (e.g. `re:split`)
  423. * LuaJIT is now the default requirement for rspamd allowing to speed up lua
  424. execution by a large margin (however, plain lua is still supported)
  425. * New plugins:
  426. - spamassassin rules plugin that allows to load and re-use the most of
  427. SA rules natively
  428. - DMARC plugin that evaluates SPF and DKIM policies to the domain policies
  429. - many old plugins has been reworked to implement new features and improve
  430. stability
  431. * New aho-corasic trie implementation from @mischasan that allows to load and
  432. use hundreds of thousands of patterns with no influence on load
  433. * Support of PCRE JIT and PCRE JIT fast path modes that significantly improves
  434. the performance of regular expressions if supported by PCRE
  435. * New URLs parser and extractor:
  436. - removed legacy code that was useless for url finding
  437. - reworked algorithms of URL parsing for more precise and accurate results
  438. - added top-level-domains tree from http://publicsuffix.org
  439. - improved emails parsing
  440. - removed many phishing false positives due to TLD tree check
  441. * New statistics infrastructure:
  442. - created a separate layer of statistic library
  443. - improved OSB-Bayes by re-weighting tokens according to the original
  444. academic paper and `crm114` implementation, which reduced false positives
  445. rate significantly
  446. - created learn cache to avoid double learning of statistics and providing
  447. an efficient way to re-learn class for a message
  448. - created abstract layers for different statistics backends
  449. - implemented new tokenization algorithms with fast or secure (siphash)
  450. hashes to generate statistics features
  451. * Reworked utf8 tokenization that previously corrupted all UTF8 words (minor
  452. incompatibility with old fuzzy hashes with utf-8 symbols)
  453. * SPF module has been completely rewritten to support complex cases of
  454. `include` and `redirect` within SPF records
  455. * DKIM module now supports multiple signatures
  456. * Controller passwords can now be stored encrypted by `PBKDF2-HMAC` in the
  457. configuration file
  458. * Many hand-written HTTP clients has been replaced with the common rspamd
  459. http module
  460. * New test framework:
  461. - import lua `telescope` test framework
  462. - add unit tests for many rspamd modules and routines
  463. - create a unit test for each possible bug found
  464. - use luajit ffi for testing C code
  465. - added preliminary support of functional testing by creating tasks from lua
  466. * Randomize hash seed to avoid certain hash tables vulnerabilities
  467. * Documentation improvements:
  468. - added documentation for the vast majority of rspamd modules
  469. - added documentation for rspamd protocol
  470. - added documentation for the most of rspamd LUA extensions
  471. * Fixed tonns of bugs and memory leaks
  472. * Added tonns of minor features
  473. 0.8.3:
  474. * Various critical fixes in distribution (by @dottedmag and @fatalbanana)
  475. * Fixed bugs in url detector to parse certain patterns
  476. * Add default host and helo for a client
  477. * Some sanity checks for tokenizer and classifier
  478. * Reiterate on systemd support
  479. * Fix missing symbol registration
  480. * Add support of spamc compatible output
  481. * Filter double-dots in rbl.lua validate_dns (by @fatalbanana)
  482. * Update ucl submodule due to critical bugfix
  483. 0.8.2:
  484. * Create fuzzy db if it does not exist
  485. * Fix: Centos init script: configtest() (by @AlexeySa)
  486. * Enable one_shot for RECEIVED_SPAMHAUS_XBL - Fixes #102 (by @fatalbanana)
  487. * Update Exim patch (by @fatalbanana)
  488. * Fix processing of unix sockets.
  489. * Allow applying settings to authenticated users (by @fatalbanana)
  490. * Make settings priorities work as documented (by @fatalbanana)
  491. * Fix race condition in symbols planner
  492. * Add DNSWL_BLOCKED symbol (by @fatalbanana)
  493. * Make Exim pass usernames to rspamd (by @fatalbanana)
  494. * Update RBL module (by @fatalbanana):
  495. - fix indentation;
  496. - collapse loops;
  497. - avoid calling for un-needed information;
  498. - allow disabling RBLs for authenticated users
  499. * once_received.lua: Fix indentation & add exclusion for authenticated users (by @fatalbanana)
  500. * hfilter.lua: Add exclusion for authenticated users (by @AlexeySa)
  501. * Updates to hfilter rules (by @AlexeySa)
  502. * Set empty <> user or addr for msgs without FROM (by @eneq123)
  503. * Fix: attempt to index field '?' (a nil value) (by @eneq123)
  504. * Fix: if not exist Date-header (by @AlexeySa)
  505. * Add task:get_content() method.
  506. * rbl.lua: Ignore private IP space (by @fatalbanana)
  507. * Allow to check radix maps from lua by rspamd{ip}
  508. * Make local exclusions configurable per-RBL (by @fatalbanana)
  509. * Add rspamd_config:radix_from_config() (by @fatalbanana)
  510. * Support emails dnsbl in rbl (by @fatalbanana)
  511. * Complete rework of url extraction logic
  512. * Allow customizations for unix sockets. (fixes #182)
  513. * Set lua path according to rspamd settings.
  514. * Import lua-functional for plugins stuff.
  515. * Completely rewrite multimap plugin in functional style.
  516. * Fix FORGED_MUA_THUNDERBIRD_MSGID (fixes #186)
  517. * Check IPv6 addresses at dnswl.org and Spamhaus whitelist (by @fatalbanana)
  518. * Add lowercase utility for utf8 strings.
  519. * Various fixes to build system
  520. * Updated debian configuration infrastructure (by @dottedmag)
  521. 0.8.1:
  522. * Add sqlite and perl as dependencies for RPM/Debian packages (by @fatalbanana)
  523. * Remove whitelist.lua from RPM file list (by @fatalbanana)
  524. * Make Exim pass hostnames to rspamd (by @fatalbanana)
  525. * Fix building on Fedora (by @fatalbanana)
  526. * Add toggle for disabling installation of systemd units on Linux (by @fatalbanana)
  527. * Fix double format rounding that caused output corruption (reported by @fatalbanana)
  528. * Revert broken change for destructors ordering that led to memory corruption
  529. * Do not reset symbols case of settings if parsed from lua (reported by @andrejzverev)
  530. * Fix build on SunOS (by @wiedi)
  531. * Fix multiple crashes on broken DKIM DNS records
  532. * Fix critical issue with composites weights removing
  533. * Fix memory corruption in composites processing code
  534. * Ignore non-SPF TXT records when parsing SPF includes
  535. 0.8.0:
  536. * New fuzzy check logic:
  537. - use shingles algorithm for fuzzy matching
  538. - use blake2 instead of md5 for larger output space
  539. - combine fuzzy and strict matching
  540. - allow to organize private storages by means of keys
  541. - preserve compatibility with previous versions
  542. * New fuzzy storage:
  543. - use sqlite instead of own memory based hash tables
  544. - rework commands interface
  545. - add conversion from the old format
  546. - add fuzzy match by shignles
  547. - support old rspamd versions
  548. * Add lemmatizing for words used in fuzzy hashes that allows to improve match
  549. quality by using of the first forms of all words
  550. * Rework language detection
  551. * Fix several critical bugs, memory leaks and deadlocks:
  552. - memory leak in HTML nodes parsing
  553. - deadlock in logger code
  554. - deadlock in signals processing
  555. - crashes in fuzzy_storage
  556. - crashes in tokenizers if the input was empty
  557. * Import new libucl with several bugfixes and improvements
  558. * Support listening on ipv6 addresses only
  559. * Fix macro expansion in SPF module
  560. * Several bugfixes in DKIM module
  561. * Add load headers support for mime parts to the lua API
  562. * Add documentation for:
  563. - workers in general
  564. - fuzzy_storage worker
  565. - fuzzy_check plugin
  566. - mimepart and textpart lua API modules
  567. 0.7.6:
  568. * Apply boundary fix for dkim simple canonization
  569. * Fix ping command
  570. * Return nil if header was not found in lua_task
  571. * Fix hang in upstreams revive logic
  572. * Decode entitles when normalizing HTML parts
  573. * Fix logic of finding URLs in HTML parts
  574. * Do not include \0 into length of text when performing conversion to utf8
  575. * Fix raw vs parsed reperesentations
  576. Raw parts are now:
  577. - decoded b64/qp, but *NOT* converted to utf-8
  578. Processed parts are now:
  579. - converted to UTF-8
  580. - normalized if needed (e.g. HTML tags are stripped)
  581. * Rework DKIM canonization to line based
  582. * Fix fuzzy hashes addding
  583. * Use more specific hash function for fuzzy
  584. * Fix leaking of iconv descriptors
  585. * Fix PTR resolving in lua resolver
  586. * Rework spf module.
  587. - Copy data to memory pool as cached record might be destroyed causing
  588. freed memory being passed to the protocol output (use after free)
  589. - Allow SPF_NEUTRAL policy to be handled separately
  590. - Add R_SPF_NEUTRAL to the default config
  591. * Rework `register_symbols` function
  592. * Allow to disable components of hfilter
  593. 0.7.5:
  594. * Fix owner when creating folder /run/rspamd (by @sfirmery)
  595. * Fix IP validity checks
  596. * Decode URLs obtained from HTML tags
  597. * Fix crash with unweighted upstreams
  598. * Stop processing headers in parts
  599. * Set sockaddr.sa_family properly when connectig to upstreams
  600. * Fix reload issues in surbl and fuzzy_check (reported by @citrin)
  601. * Fix timeouts in redirector
  602. * Improve lua errors reporting
  603. * Fix lua closures processing in libucl
  604. * Rework calling of lua functions from regexp module
  605. * Choose raw regexp for raw headers
  606. * Rework conversion to utf since glib one is broken
  607. * Ignore SGML style tags in html
  608. * Fix old bug with non-capturing https urls
  609. * Fix memory corruption on fuzzy reload (reported by @citrin)
  610. * Fix percents display in rspamc
  611. * Fix buffer update for DKIM
  612. * Do not validate utf for raw headers
  613. 0.7.4:
  614. * Fix build under *BSD
  615. * Detect HAN unicode script
  616. * Implement language detection heuristic for text parts
  617. * Fix time output in history
  618. * Improve piechart coloring
  619. * Fix \r\n conversion in DKIM module (reported by @citrin)
  620. * Try to detect systems with no IPv6 support
  621. * Fix multiple/single values in use settings (reported by @citrin)
  622. * Rework IP addresses in upstreams:
  623. - Select ipv4/unix addresses if they exist and use ipv6 for ipv6 only
  624. upstreams (since the support of ipv6 is poor in many OSes and
  625. environments)
  626. - Free IP list on upstream destruction
  627. - Add test cases for addresses selection
  628. - Allow adding of free form IP addresses to upstreams
  629. * Fix endiannes in lua_radix search (reported by @citrin)
  630. * Soft shutdown should also set wanna_die flag (reported by @citrin)
  631. * Stop use-after-free in event loop termination
  632. * Fix processing of very short messages in DKIM (reported by @citrin)
  633. * Detect systems without shared mutexes
  634. * Fix issues with PTR and MX elements in SPF parser (reported by @citrin)
  635. 0.7.3:
  636. * New upstreams code:
  637. - simplify upstreams API;
  638. - unify strings parsing in upstreams definition;
  639. - add configuration options for the upstreams;
  640. - for failed upstreams re-resolve their addresses;
  641. - use all resolved addresses for an upstream (round-robin);
  642. - implement stable hashing and use it by default for upstreams;
  643. - add unit test for upstreams module.
  644. * Rework signals processing in all rspamd workers:
  645. - signals are now processed in the event loop;
  646. - implement the most common signal handlers for all workers;
  647. - add callbacks for workers specific signal handlers
  648. * Fix critical issue with fuzzy storage:
  649. Fuzzy stroage could not save any hashes on termination due to bugged
  650. signals handling
  651. * Fix roll history IP storage
  652. * Rework ipv4/ipv6 handling in parsing addresses:
  653. - turn off support of IPV6_V6ONLY socket option;
  654. - create ipv6 socket prior to ipv4 one to handle systems with v6/v4
  655. sockets enabled (Linux)
  656. * Remove CBL as it's wholly included in Spamhaus XBL (by @fatalbanana)
  657. * Remove nszones.com fake RBL (by @citrin)
  658. * Fix upstreams interaction for fuzzy_check
  659. * Verify spf PTR records (reported by @citrin)
  660. * Fix spf MX records parsing
  661. * Add compatibility for old libevent (by @yellowman)
  662. * Sync bugfixes from libucl
  663. 0.7.2:
  664. * Convert all maps to the compressed radix trie
  665. * Allow IPv6 addresses in IP maps
  666. * Remove dynamic items support from symbols cache
  667. * Allow hex encoded output of strings
  668. * Fix bug with control connections count
  669. * Process fuzzy weight correctly (reported by @fatalbanana)
  670. * Remove extra reference retain of http connection on error
  671. * Remove deprecated options from the default config
  672. * Add `one_shot` attr to metric's symbols
  673. * Doc: add documentation for metrics
  674. * Add Upstart job to debian packaging (by @CameronNemo)
  675. * Config: improve SURBL symbols descriptions (by @citrin)
  676. * Config: reflect SURBL changes (by @citrin):
  677. - Outblaze removed, malware moved to separate list:
  678. http://www.surbl.org/news/internal/MW-malware-sublist-added-to-multi
  679. * Fix C modules initialization on restart
  680. * Treat single IP as a single IP in radix lists (reported by @citrin)
  681. * Do not touch file and core limits if not asked explicitly (reported by @citrin)
  682. * Improve logging for fuzzy errors
  683. * Block SIGPIPE for HTTP writing
  684. * Doc: update manual pages
  685. * Fix HTTP connection termination
  686. * Reduce default number of parallel requests to 8
  687. * Sync with libucl include features
  688. 0.7.1:
  689. * Fix typo in stat output.
  690. * Fix issues with includes crossing with the system includes
  691. * Restore testing framework
  692. * Add radix trie test suite
  693. * Implement new path-compressed radix trie.
  694. - The performance benefit over the old algorithm is about 1.5 times.
  695. - Memory usage is significantly lower as well.
  696. - Now radix trie can accept any IPv4/IPv6 values
  697. * Various improvements to the memory pools code
  698. * Fix writing reply to a client when no filters are defined
  699. * Write base32 encoded fuzzy
  700. * Fix 'soft reject' action
  701. * Fix rspamd reload and modules reconfiguration
  702. * Fix subject rewriting for the default subject
  703. * Fix states for processing task and pre-filters
  704. * Fix issues with connection closing
  705. * Fix crashes in rdns
  706. * Fix ratelimit pre-filter
  707. * Update exim patch.
  708. - Update to the recent exim version
  709. - Strip extra leading src/ from the patch
  710. - Remove sendfile since it was broken
  711. - Fix rspamd spam report for exim
  712. * Improve documentation
  713. 0.7.0:
  714. * Use HTTP protocol for all operatiosn
  715. * Webui worker is now removed and controller works as webui
  716. * Allow to serve static files via controller by option `static_dir`
  717. * Rspamd interface is now a part of rspamd
  718. * Rspamc client has been rewritten to use HTTP and non-blocking mode
  719. allowing to start multiple operations simultaneously (see `-n` option)
  720. * Lua API was completely reworked to satisfy modern standards of LUA:
  721. * Module `lua-message` was removed
  722. * Reduced number of superglobals registered by rspamd
  723. * Many functions has been redesigned
  724. * Symbols registration is now more convenient
  725. * Users settings has been rewritten as lua plugin
  726. * Reworked headers system as gmime's based one misses many headers and is
  727. very slow to get headers values
  728. * Reorganized code and removed embedded jannsson by using UCL for all json
  729. parsing
  730. * Migrated to `librdns` for DNS resolving that improves concurrency for
  731. DNS requests significantly
  732. * Fixed tonns of bugs in MIME processing
  733. * Improved metrcis and default symbol's weights
  734. * Added new RBL's
  735. * Fixed a number of issues in the modules
  736. * Removed several memory leaks found
  737. * Fix unicode processing
  738. * Fix fuzzy checking for unicode parts
  739. * Significantly improve documentation and especially LUA API docs
  740. * See migration notes at https://rspamd.com/doc/migration.html
  741. 0.6.8:
  742. * Controller now listen for localhost and not for 127.0.0.1 by default
  743. * Allow FCrDNS-style RBL lookups (by @fatalbanana)
  744. * Reduce threshold for parts_differ function.
  745. * Fix hostname lookup for rdns rbl (by @AlexeySa)
  746. * Fix HFILTER_URL_ONELINE to reduce false positive rate.
  747. * Fix whitelist module.
  748. * Allow override system predefined settings without touching system ones
  749. by .try_include macro (by @andrejzverev)
  750. * Check for [ip.address]-style HELO and suppress lookups. (by
  751. @fatalbanana)
  752. * Optimize hfilter (by @AlexeySa)
  753. * Fix issue with random numbers generator in dns.
  754. * Use more clever time values to setup entropy.
  755. * Synced with the recent libucl.
  756. 0.6.7:
  757. * Use ChaCha20 for DNS generator (more secure DNS id)
  758. * Unknown symbols now has zero weight and not 1.0
  759. * Fix fuzzy hashes expire time
  760. * Fix critical issue in statfiles on FreeBSD 9 (and some other platforms)
  761. * Add .include_map macro to ucl parser
  762. * Update libucl
  763. * Fix headers end detection for DKIM module
  764. * Fix a bug in received headers parser
  765. * Validate IP addresses before pushing them to lua
  766. * Start new documentation project
  767. * Fixed tonns of other minor bugs
  768. * Start to prepare for 0.7 with HTTP protocol and new settings
  769. 0.6.6:
  770. * Removed issue with BUFSIZ limitation in the controller output
  771. * Simplify logging symbols escaping
  772. * Adjusted weights for several rules
  773. * Improve spamhaus rbl support
  774. * Removed PBL for received headers checks
  775. * Added hfilter module that performs various HELO and IP checks.
  776. * Rspamd can now be reloaded by HUP signal
  777. * Fuzzy storage should expire hashes properly
  778. * Build system has been reworked for better supportof pkg-config
  779. * Various minor bugfixes
  780. 0.6.5:
  781. * Fixed critical bug in DNS resolver, introduced in 0.6.4
  782. * Improved multimap and rbl plugins to skip
  783. * Add dns_sockets option for tuning sockets per server in DNS resolver
  784. * Improved packages for rspamd
  785. 0.6.4:
  786. * Added io channels for DNS request to balance load and reduce id
  787. collisions chance
  788. * Fixed a bug in SPF filter that may cause core dump in specific
  789. circumstances
  790. * FIxed default config for rbl module
  791. * It is possible to get a list of rspamc commands with their descriptions
  792. * Added SORBS bl to the default config
  793. * 2tld file for surbl module has been significantly extended
  794. * Perl modules has been removed from the code.
  795. * Fixed an issue in libucl when parsing macros
  796. 0.6.3:
  797. * Fixed issues with DNS:
  798. - labels decompression algorithm was fixed;
  799. - added resolve_mx to lua API;
  800. - fixed modules that use DNS.
  801. * Lua modules once_received and emails reworked for new resolver API and UCL.
  802. * Debian package was polished.
  803. * Fixed a bug in fuzzy_check module that prevents correct processing messages
  804. without valid parts.
  805. 0.6.2:
  806. * Fuzzy check module has been reworked:
  807. - now fuzzy_check operates with a group of rules, that define which
  808. servers sre to be checked;
  809. - it is possible to specify read_only groups to avoid learning errors;
  810. - turn fuzzy_check to one_shot mode permanently;
  811. - fuzzy_check module configuration is now incompatible with the previous
  812. versions.
  813. * Imported bugfixes from libucl.
  814. * Fixed whitelist plugin.
  815. * Fixed statfiles resizing.
  816. * Improved logging initialization order.
  817. * Fixed race condition in the controller worker.
  818. 0.6.1:
  819. * Critical bugfixes:
  820. - fixed build system;
  821. - fixed in_class setting in bayes learning;
  822. 0.6.0:
  823. * Use UCL instead xml for configuration (https://github.com/vstakhov/libucl)
  824. * Fix statistics module normalization
  825. * Rework the many modules for the new configuration:
  826. - surbl has incompatible configuration;
  827. - fuzzy_check has incompatible configuration;
  828. - multimap has now new configuration;
  829. - received_rbl is removed and replaced by rbl module.
  830. * Removed deprecated options:
  831. - statfile_pool_size;
  832. - action and required/reject score for a metric.
  833. * Simplify build system and unify configuration for all platforms.
  834. * Improved URL detector (reduced false positive rate).
  835. * Lua 5.2 is now the default and fully supported version.
  836. * Tons of bugfixes and minor improvements.
  837. 0.5.6:
  838. * Fix bug with counters incrementing in rolling history
  839. * Detect expl and exp2l as some systems do not have it
  840. * Support input streams without Content-Length
  841. * Implement counters output via rspamc and controller interface
  842. * Fix bug with udp sockets in fuzzy storage
  843. 0.5.5:
  844. * New bayes normalizator based on inverse chi-square function
  845. * Various fixes to fuzzy storage
  846. * Allow update fuzzy storage only from specific IP addresses
  847. * Better support of IPv6 and address selection algorithms
  848. * Add CentOS spec file
  849. 0.5.4:
  850. * Fixed issues with diff algorithm
  851. * Added support of RRD statistics
  852. * Add webui worker for interface interaction
  853. * Fix a lot of issues with dynamic conf
  854. * Fix critical memory leak in settings code
  855. * Improve stability of the system
  856. 0.5.3:
  857. * Added dynamic options
  858. * Added advanced metaclassfication
  859. * Added RESTfull API for controller
  860. * Improved hashing algorithms
  861. * Various fixes for rspamc client:
  862. - allow interacting with unix sockets
  863. - librspamdclient major cleanup
  864. - bayes is now default classifier
  865. 0.5.2:
  866. * Added lua bindings for:
  867. - basic mime parts, that allows checkign attachements for example;
  868. - DNS resolver;
  869. * Existing lua bindings now works without task object allowing to use them
  870. in custom code.
  871. * Threads system was reworked to avoid global lua interpreter lock.
  872. * DKIM module now converts all line endings to CRLF how opendkim does.
  873. * URL detector is now more accurate for text parts.
  874. * Several critical bugs and memory leaks were fixed.
  875. 0.5.1:
  876. * Added lua worker type to handle network connections in lua.
  877. * Added lua bindings for async_session, IO dispatcher, memory_pool, and
  878. worker.
  879. * Composites can now uses other composites in expressions.
  880. * Fixes for debian package and for FreeBSD >= 9.1
  881. * Add support of gmime-2.6 if gmime-2.4 is not found.
  882. * Improve url detection and phishing detection.
  883. * Add lua mime_part library to get an access to all message part
  884. attributes (like filename, length, type).
  885. 0.5.0:
  886. * Added SMTP lightweight balancing proxy with XCLIENT support.
  887. * Added lua bindings for upstreams objects and API.
  888. * New pre-filters are implemented to support initial checking for messages.
  889. * Added ratelimit plugin that uses redis protocol to store data.
  890. * Added ipv6 support to spf and some other modules.
  891. * Unbreak spf plugin.
  892. * Allow options with the same name be threated as list.
  893. * DKIM plugin an parsing code was added.
  894. * Separate build system to put logic in several shared libraries.
  895. * Many bugfixes.
  896. 0.3.2:
  897. * Add error handling for regexps
  898. * Fix quit command in controller interface
  899. * Write symbols weights to rspamc output
  900. * Improve logic of selecting rspamc version
  901. * Do not try to parse broken DNS replies
  902. * Add 'raw' flag to FROM_EXCESS_BASE64 rule (requested by citrin)
  903. * Output message id in rspamc reply
  904. * Fix inserting composite symbol
  905. * Fix output of log line
  906. * Document composites
  907. * Add logging for fuzzy checks
  908. * Add logging for learning
  909. * Improve logic of learning messages - do not learn more than specific threshold
  910. * Fix inserting results for symbols that were incorrectly (for example more than 1 time) defined in config file
  911. * Do not output control characters if output is not terminal
  912. * Fix some logic errors in learning
  913. * Consider lua plugins errors as fatal configuration errors
  914. * Fix wirting message id during fuzzy_add command
  915. * Display weight of symbols correctly
  916. * Fixes to winnow learning
  917. * One more try to improve accuracy of winnow algorithm
  918. * Add bayesian classifier (initial version)
  919. * Remove normalizer as it is winnow specific thing, so all statistic algorithms now returns value from 0 to 1
  920. * Some fixes to fuzzy hashes expiration:
  921. * Fix assertion while look up value in NULL hash (found by cirtin)
  922. * Fix normalization for systems that have not tanhl function
  923. * Ignore rfc822 group addresses
  924. * Move images library to core rspamd
  925. * Add lua api to access images properties
  926. * Add post filters to lua API - filters that would be called after all message's processing
  927. * Add ability to check for specified symbol in task results from lua
  928. * Add ability to check for metric's results from lua
  929. * Add ability to learn specified statfile form lua
  930. * Add ability to extract filename and size of images from lua
  931. * Fix assertion while extracting internet address
  932. * Fix races in fuzzy storage
  933. * Make spf parser case insensitive
  934. * Add ability to check hashes of selected mime types
  935. * Add ability to set minimum size in bytes for mime types
  936. * Add ability to set minimum dimensions for images
  937. * Assume all text/* content types as text/plain
  938. * Fix getting data wrapper for gmime24
  939. * Many fixes to statfile syncronization system
  940. * Fixed statfile pool initialization and synchronization with disk
  941. * Prepare 0.3.2
  942. * Fix Mail::Rspamd::Config for new rspamd features
  943. * Use Mail::Rspamd::Config in rspamc client
  944. * Write user's name to rspamd log
  945. * Prepare rspamd build infrastructure for creating rpm and deb packages
  946. * Fix depends
  947. * Add start script for linux systems
  948. * Fix shared usage of statfiles
  949. * Add invalidation of statfiles in case of learning, so now statfiles
  950. * This should fix shared usage of statfile pool by several processes
  951. * Fix misprint (reported by az)
  952. * Fix stupid error when all checks can be done in a single pass
  953. * New trie based url scanner (based on libcamel)
  954. * Small fixes to rspamd perl client
  955. * Write fuzzy hashes info to log
  956. * Add trie interface to lua api
  957. * Explain sample config and cleanup it
  958. 0.3.1:
  959. * Add modules documentation
  960. * Continue implementing smtp proxy
  961. * Implement new learning system, now rspamd should be much more intelligent while learning messages
  962. * Convert statistic sums to use long double for counters
  963. * Use hyperbolic tangent for internal normalizer
  964. * In classify normalize result after comparing, not before
  965. * New symbols sorter
  966. * Fix strict aliasing while compiling with optimization
  967. * Fix tanhl detection for platforms that have not implementation of it
  968. * Remove several compile warnings
  969. * Add experimental support of dynamic rules to regexp module
  970. * Document views configuration
  971. * Several fixes to documentation
  972. * Add more logic for dynamic rules
  973. * Add documentation for dynamic rules
  974. * Add ability to make negations in networks in dynamic rules
  975. * Clean up cache items correctly
  976. * Implement basic SMTP dialog:
  977. * Implement interaction with smtp upstream (with support of XCLIENT)
  978. * Check messages received via smtp proxy
  979. * Add support for sendfile in io dispatcher
  980. * Fix issues with compatibility of worker_task and smtp proxy
  981. * Proxy DATA command
  982. * Fix SMTP
  983. * Change metric logic
  984. * Completely remove lex/yacc readers for config
  985. * Make common sense of metric/action and symbols
  986. * Sync changes with all plugins
  987. * Incorrectly removed in previous commit
  988. * Fix misprint (by Andrej Zverev)
  989. * announce the "password" keyword in usage list
  990. * Implement initial version of greylisting triplets storage
  991. * Fix issues with smtp worker
  992. * Fix QUIT command in SMTP worker
  993. * Some fixes about new metrics system (may be incomplete)
  994. * Get weights of symbol from default metric for symbols cache
  995. * Fix setting task->from/task->rctp in smtp client
  996. * Copy from and rcpt correctly
  997. * Some performance improvements to IO dispatcher (do not drain the whole buffer after a single line readed)
  998. * Fix smtp data input
  999. * Fix misprint
  1000. * Add limit of maximum allowed smtp session errors
  1001. * New logic of SURBL module:
  1002. * Use system mkstemp(3) on systems where it is available as glib implementation
  1003. * Try to fix memmove issues in io dispatcher
  1004. * Remove debug from SURBL module
  1005. * Rewrite buffered input for line policy (again)
  1006. * Fix issue with links that are ip addresses in numeric form in surbl
  1007. * On Darwin use BSD style sendfile definition
  1008. * Reorganize platform specific knobs in CMakeLists
  1009. * Use gettimeofday on systems that have not clock_getres
  1010. * Use ftime for dns trans id generation on systems without clock_getres
  1011. * Darwin sendfile(2) support
  1012. * TIMEDB->TIMEB
  1013. * More to previous commit
  1014. * Pass env from main() arguments instead of platform specific global environ
  1015. * Fix compatibility issues
  1016. * Fix -lintl detection
  1017. * Init some variables to avoid problems
  1018. * Remove garbadge (gnome terminal sucks)
  1019. * Add more information about why we drop smtp connection
  1020. * Fix mkstemp call
  1021. * Send to upstream QUIT command at the end of session
  1022. * Check return value of each rspamd_dispatcher_write as in case of write errors sessions can be destroyed early
  1023. * Fix states in smtp dialog
  1024. * Use rspamd_snprintf instead of libc one
  1025. * Fix URLS command
  1026. * Fix reconfigure process of surbl module
  1027. * Fix destroying smtp session (unmap memory and do not delete pool early)
  1028. * Delete pool after using its variables
  1029. * Delay timer must be registered in async session to correctly handle connection termination
  1030. * Register dns requests in session too
  1031. * Make session before registering events
  1032. * Remove events in handlers
  1033. * Add ability to set filters for smtp worker for each smtp stage
  1034. * Add very initial version of DNS resolver (many things to be done)
  1035. * Announce weights and sync
  1036. * Fix few typo
  1037. * Understand short names of facility in logging config
  1038. * Add ability to make whitelist for spf checks
  1039. * Misprint != -> ==
  1040. * Handle lua tag in way that it is not required to write additional text:
  1041. * Strip all starting whitespace symbols from xml texts
  1042. * Fix stupid bug in calculating buffer length while reading file maps
  1043. * Add resolv.conf parsing into dns.c
  1044. * Fix microseconds<->milliseconds conversions
  1045. * Take callback argument in Mail::Rspamd::Client for processing files and directories
  1046. * Print results if rspamc is called for a directory
  1047. * Fix stupid error with surbl module reconfig (another one, blame me)
  1048. * Do not show duplicate urls in url header
  1049. * Fix detection of numeric urls (reported by citrin)
  1050. * Write real time of message's scan to log (not only virtual)
  1051. * Fix chartable module in utf mode
  1052. * Fix parsing of some broken urls
  1053. * Add ability to test regexp with 'T' flag
  1054. * Write more code for DNS resolver:
  1055. * Make DNS resolver working
  1056. * Many improvements to rspamd test suite: now it CAN be used for testing rspamd functionality
  1057. * Write DNS resolver tests
  1058. * Fix issues with memory_pool mutexes and with creating of statfiles
  1059. * Forgotten in previous commit
  1060. * Add support for parsing SPF and SRV records
  1061. * Fix PTR parsing
  1062. * Add tests
  1063. * Make SURBL module to use rspamd dns module
  1064. * Several fixes to DNS logic
  1065. * Remove evdns and use only rspamd resolver
  1066. * Very hard to detect problem with race among error in socket and destroying task while we are writing to socket and go through a hash table
  1067. * Fix resolving in smtp module
  1068. * Init events before configuring resolver in smtp worker
  1069. * Set resolver inside task
  1070. * Fix reload signal (reported by citrin)
  1071. * Some improvements to redirector
  1072. * Call has_forked method to inform POE about fork
  1073. * Fix lua DNS code
  1074. * Decompress labels in DNS packets more strictly
  1075. * Fix some problems with TXT records
  1076. * Try to fix removing of DNS events
  1077. * Do not insert unparsed RR's into reply
  1078. * Calling callbacks may cause destroying session from which we are calling callback so we MUST call callback as the latest action
  1079. * Fix check_smtp_data function
  1080. * Add ability to make views by recipient
  1081. * Add ability to set metric's action from config file
  1082. * Fix bug with writing garbadge if message has no urls or no messages
  1083. * Fix bug with incorrect behaviour of compare_parts_distance function
  1084. * Add ability to assign several actions to one metric
  1085. * Report action in rspamc protocol
  1086. * Mail::Rspamd::Client and rspamc can now understand Action header too
  1087. * Write action to log as well
  1088. * Make valgrind happy about comparing symbols
  1089. * Add more debug to comparing parts distance function
  1090. * Write action even if message has no symbols
  1091. * Make improvements to HTML entites decoder: now it replaces entities with common characters and
  1092. * Add -d option to force debug output
  1093. * Assume 7bit as default transfer encoding
  1094. * Do not overwrite lua plugins and configs if they already exists in target directory
  1095. * Improve logging
  1096. * Write queue id to log
  1097. * Remove test messages from cmake
  1098. * Reopen log file by USR1 signal
  1099. * Add reopenlog method to FreeBSD rc script
  1100. * Adopt foreach for cmake 2.6
  1101. * Fix to rc script
  1102. * Do not try to resolve names with several dots in a row
  1103. * Fix surbl request formatting for ip addresses
  1104. * Handle cases of broken requests
  1105. * Fix problems with parsing compressed names
  1106. * Fix TXT records parsing
  1107. * Fix expanding spf macros that may fail in rare cases
  1108. * Fix another error with early task destroying
  1109. * Handle empty from header
  1110. * Improve reopenlog command in rc script
  1111. * Strip trailing whitespace characters in Mail::Rspamd::Client
  1112. * Use ungreedy match to strip trailing whitespaces
  1113. * Stupid error in calculation compressed label length
  1114. * Some optimizations to client library
  1115. * Do not compare empty parts
  1116. * Empty and non-empty parts are allways different
  1117. * Save in regexp cache the whole regexp with header name (if exists) and with flags
  1118. * Add rspamd_log variable to lua plugins to access logging functions
  1119. * Each part in rspamd task now can have parent part
  1120. * Check for parts distance only for multipart/alternative subparts
  1121. * Do not check attachements even if they are text (but attached as file)
  1122. * Do not die if write (2) returned ENOSPACE while doing logging, turn on throttling mode instead (1 write try in a second)
  1123. * Add ability to turn on debug for specific symbols
  1124. * Add ability to configure dns timeouts and dns retransmits in config file
  1125. * More debug
  1126. * Fix extracting arguments in lua logger interface
  1127. * Turn off debug_ip during reload if it was disabled by new config
  1128. * Improve lua logging
  1129. * Pre-init symbols cache when rereading config
  1130. * Fix lua representing of invalid ip (nil, not 255.255.255.255)
  1131. * Fix R_TO_SEEMS_AUTO rule (by citrin)
  1132. * Add multimap lua plugin
  1133. * Fix some multimap issues
  1134. * Try to save images hashes to fuzzy storage to stop some annoying spammers
  1135. * Allocate some more bytes for read buffer to avoid incorrect behavoiur
  1136. * Add ability to check dns black lists by multimap module
  1137. * Add multimap documentation
  1138. * Fix labels parsing
  1139. * Another try to save regexps in cache correctly
  1140. * Improve test logs for regexps
  1141. * Fix parsing txt records to avoid reading of uninitialized data
  1142. * Fix error with writing symbols cache file
  1143. * Fix error while working in utf mode when raw regexps was not created properly
  1144. * Do not add extra byte while converting text to utf
  1145. * Add error handling for regexps