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 27KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635
  1. 0.8.0:
  2. * New fuzzy check logic:
  3. - use shingles algorithm for fuzzy matching
  4. - use blake2 instead of md5 for larger output space
  5. - combine fuzzy and strict matching
  6. - allow to organize private storages by means of keys
  7. - preserve compatibility with previous versions
  8. * New fuzzy storage:
  9. - use sqlite instead of own memory based hash tables
  10. - rework commands interface
  11. - add conversion from the old format
  12. - add fuzzy match by shignles
  13. - support old rspamd versions
  14. * Add lemmatizing for words used in fuzzy hashes that allows to improve match
  15. quality by using of the first forms of all words
  16. * Rework language detection
  17. * Fix several critical bugs, memory leaks and deadlocks:
  18. - memory leak in HTML nodes parsing
  19. - deadlock in logger code
  20. - deadlock in signals processing
  21. - crashes in fuzzy_storage
  22. - crashes in tokenizers if the input was empty
  23. * Import new libucl with several bugfixes and improvements
  24. * Support listening on ipv6 addresses only
  25. * Fix macro expansion in SPF module
  26. * Several bugfixes in DKIM module
  27. * Add load headers support for mime parts to the lua API
  28. * Add documentation for:
  29. - workers in general
  30. - fuzzy_storage worker
  31. - fuzzy_check plugin
  32. - mimepart and textpart lua API modules
  33. 0.7.6:
  34. * Apply boundary fix for dkim simple canonization
  35. * Fix ping command
  36. * Return nil if header was not found in lua_task
  37. * Fix hang in upstreams revive logic
  38. * Decode entitles when normalizing HTML parts
  39. * Fix logic of finding URLs in HTML parts
  40. * Do not include \0 into length of text when performing conversion to utf8
  41. * Fix raw vs parsed reperesentations
  42. Raw parts are now:
  43. - decoded b64/qp, but *NOT* converted to utf-8
  44. Processed parts are now:
  45. - converted to UTF-8
  46. - normalized if needed (e.g. HTML tags are stripped)
  47. * Rework DKIM canonization to line based
  48. * Fix fuzzy hashes addding
  49. * Use more specific hash function for fuzzy
  50. * Fix leaking of iconv descriptors
  51. * Fix PTR resolving in lua resolver
  52. * Rework spf module.
  53. - Copy data to memory pool as cached record might be destroyed causing
  54. freed memory being passed to the protocol output (use after free)
  55. - Allow SPF_NEUTRAL policy to be handled separately
  56. - Add R_SPF_NEUTRAL to the default config
  57. * Rework `register_symbols` function
  58. * Allow to disable components of hfilter
  59. 0.7.5:
  60. * Fix owner when creating folder /run/rspamd (by @sfirmery)
  61. * Fix IP validity checks
  62. * Decode URLs obtained from HTML tags
  63. * Fix crash with unweighted upstreams
  64. * Stop processing headers in parts
  65. * Set sockaddr.sa_family properly when connectig to upstreams
  66. * Fix reload issues in surbl and fuzzy_check (reported by @citrin)
  67. * Fix timeouts in redirector
  68. * Improve lua errors reporting
  69. * Fix lua closures processing in libucl
  70. * Rework calling of lua functions from regexp module
  71. * Choose raw regexp for raw headers
  72. * Rework conversion to utf since glib one is broken
  73. * Ignore SGML style tags in html
  74. * Fix old bug with non-capturing https urls
  75. * Fix memory corruption on fuzzy reload (reported by @citrin)
  76. * Fix percents display in rspamc
  77. * Fix buffer update for DKIM
  78. * Do not validate utf for raw headers
  79. 0.7.4:
  80. * Fix build under *BSD
  81. * Detect HAN unicode script
  82. * Implement language detection heuristic for text parts
  83. * Fix time output in history
  84. * Improve piechart coloring
  85. * Fix \r\n conversion in DKIM module (reported by @citrin)
  86. * Try to detect systems with no IPv6 support
  87. * Fix multiple/single values in use settings (reported by @citrin)
  88. * Rework IP addresses in upstreams:
  89. - Select ipv4/unix addresses if they exist and use ipv6 for ipv6 only
  90. upstreams (since the support of ipv6 is poor in many OSes and
  91. environments)
  92. - Free IP list on upstream destruction
  93. - Add test cases for addresses selection
  94. - Allow adding of free form IP addresses to upstreams
  95. * Fix endiannes in lua_radix search (reported by @citrin)
  96. * Soft shutdown should also set wanna_die flag (reported by @citrin)
  97. * Stop use-after-free in event loop termination
  98. * Fix processing of very short messages in DKIM (reported by @citrin)
  99. * Detect systems without shared mutexes
  100. * Fix issues with PTR and MX elements in SPF parser (reported by @citrin)
  101. 0.7.3:
  102. * New upstreams code:
  103. - simplify upstreams API;
  104. - unify strings parsing in upstreams definition;
  105. - add configuration options for the upstreams;
  106. - for failed upstreams re-resolve their addresses;
  107. - use all resolved addresses for an upstream (round-robin);
  108. - implement stable hashing and use it by default for upstreams;
  109. - add unit test for upstreams module.
  110. * Rework signals processing in all rspamd workers:
  111. - signals are now processed in the event loop;
  112. - implement the most common signal handlers for all workers;
  113. - add callbacks for workers specific signal handlers
  114. * Fix critical issue with fuzzy storage:
  115. Fuzzy stroage could not save any hashes on termination due to bugged
  116. signals handling
  117. * Fix roll history IP storage
  118. * Rework ipv4/ipv6 handling in parsing addresses:
  119. - turn off support of IPV6_V6ONLY socket option;
  120. - create ipv6 socket prior to ipv4 one to handle systems with v6/v4
  121. sockets enabled (Linux)
  122. * Remove CBL as it's wholly included in Spamhaus XBL (by @fatalbanana)
  123. * Remove nszones.com fake RBL (by @citrin)
  124. * Fix upstreams interaction for fuzzy_check
  125. * Verify spf PTR records (reported by @citrin)
  126. * Fix spf MX records parsing
  127. * Add compatibility for old libevent (by @yellowman)
  128. * Sync bugfixes from libucl
  129. 0.7.2:
  130. * Convert all maps to the compressed radix trie
  131. * Allow IPv6 addresses in IP maps
  132. * Remove dynamic items support from symbols cache
  133. * Allow hex encoded output of strings
  134. * Fix bug with control connections count
  135. * Process fuzzy weight correctly (reported by @fatalbanana)
  136. * Remove extra reference retain of http connection on error
  137. * Remove deprecated options from the default config
  138. * Add `one_shot` attr to metric's symbols
  139. * Doc: add documentation for metrics
  140. * Add Upstart job to debian packaging (by @CameronNemo)
  141. * Config: improve SURBL symbols descriptions (by @citrin)
  142. * Config: reflect SURBL changes (by @citrin):
  143. - Outblaze removed, malware moved to separate list:
  144. http://www.surbl.org/news/internal/MW-malware-sublist-added-to-multi
  145. * Fix C modules initialization on restart
  146. * Treat single IP as a single IP in radix lists (reported by @citrin)
  147. * Do not touch file and core limits if not asked explicitly (reported by @citrin)
  148. * Improve logging for fuzzy errors
  149. * Block SIGPIPE for HTTP writing
  150. * Doc: update manual pages
  151. * Fix HTTP connection termination
  152. * Reduce default number of parallel requests to 8
  153. * Sync with libucl include features
  154. 0.7.1:
  155. * Fix typo in stat output.
  156. * Fix issues with includes crossing with the system includes
  157. * Restore testing framework
  158. * Add radix trie test suite
  159. * Implement new path-compressed radix trie.
  160. - The performance benefit over the old algorithm is about 1.5 times.
  161. - Memory usage is significantly lower as well.
  162. - Now radix trie can accept any IPv4/IPv6 values
  163. * Various improvements to the memory pools code
  164. * Fix writing reply to a client when no filters are defined
  165. * Write base32 encoded fuzzy
  166. * Fix 'soft reject' action
  167. * Fix rspamd reload and modules reconfiguration
  168. * Fix subject rewriting for the default subject
  169. * Fix states for processing task and pre-filters
  170. * Fix issues with connection closing
  171. * Fix crashes in rdns
  172. * Fix ratelimit pre-filter
  173. * Update exim patch.
  174. - Update to the recent exim version
  175. - Strip extra leading src/ from the patch
  176. - Remove sendfile since it was broken
  177. - Fix rspamd spam report for exim
  178. * Improve documentation
  179. 0.7.0:
  180. * Use HTTP protocol for all operatiosn
  181. * Webui worker is now removed and controller works as webui
  182. * Allow to serve static files via controller by option `static_dir`
  183. * Rspamd interface is now a part of rspamd
  184. * Rspamc client has been rewritten to use HTTP and non-blocking mode
  185. allowing to start multiple operations simultaneously (see `-n` option)
  186. * Lua API was completely reworked to satisfy modern standards of LUA:
  187. * Module `lua-message` was removed
  188. * Reduced number of superglobals registered by rspamd
  189. * Many functions has been redesigned
  190. * Symbols registration is now more convenient
  191. * Users settings has been rewritten as lua plugin
  192. * Reworked headers system as gmime's based one misses many headers and is
  193. very slow to get headers values
  194. * Reorganized code and removed embedded jannsson by using UCL for all json
  195. parsing
  196. * Migrated to `librdns` for DNS resolving that improves concurrency for
  197. DNS requests significantly
  198. * Fixed tonns of bugs in MIME processing
  199. * Improved metrcis and default symbol's weights
  200. * Added new RBL's
  201. * Fixed a number of issues in the modules
  202. * Removed several memory leaks found
  203. * Fix unicode processing
  204. * Fix fuzzy checking for unicode parts
  205. * Significantly improve documentation and especially LUA API docs
  206. * See migration notes at https://rspamd.com/doc/migration.html
  207. 0.6.8:
  208. * Controller now listen for localhost and not for 127.0.0.1 by default
  209. * Allow FCrDNS-style RBL lookups (by @fatalbanana)
  210. * Reduce threshold for parts_differ function.
  211. * Fix hostname lookup for rdns rbl (by @AlexeySa)
  212. * Fix HFILTER_URL_ONELINE to reduce false positive rate.
  213. * Fix whitelist module.
  214. * Allow override system predefined settings without touching system ones
  215. by .try_include macro (by @andrejzverev)
  216. * Check for [ip.address]-style HELO and suppress lookups. (by
  217. @fatalbanana)
  218. * Optimize hfilter (by @AlexeySa)
  219. * Fix issue with random numbers generator in dns.
  220. * Use more clever time values to setup entropy.
  221. * Synced with the recent libucl.
  222. 0.6.7:
  223. * Use ChaCha20 for DNS generator (more secure DNS id)
  224. * Unknown symbols now has zero weight and not 1.0
  225. * Fix fuzzy hashes expire time
  226. * Fix critical issue in statfiles on FreeBSD 9 (and some other platforms)
  227. * Add .include_map macro to ucl parser
  228. * Update libucl
  229. * Fix headers end detection for DKIM module
  230. * Fix a bug in received headers parser
  231. * Validate IP addresses before pushing them to lua
  232. * Start new documentation project
  233. * Fixed tonns of other minor bugs
  234. * Start to prepare for 0.7 with HTTP protocol and new settings
  235. 0.6.6:
  236. * Removed issue with BUFSIZ limitation in the controller output
  237. * Simplify logging symbols escaping
  238. * Adjusted weights for several rules
  239. * Improve spamhaus rbl support
  240. * Removed PBL for received headers checks
  241. * Added hfilter module that performs various HELO and IP checks.
  242. * Rspamd can now be reloaded by HUP signal
  243. * Fuzzy storage should expire hashes properly
  244. * Build system has been reworked for better supportof pkg-config
  245. * Various minor bugfixes
  246. 0.6.5:
  247. * Fixed critical bug in DNS resolver, introduced in 0.6.4
  248. * Improved multimap and rbl plugins to skip
  249. * Add dns_sockets option for tuning sockets per server in DNS resolver
  250. * Improved packages for rspamd
  251. 0.6.4:
  252. * Added io channels for DNS request to balance load and reduce id
  253. collisions chance
  254. * Fixed a bug in SPF filter that may cause core dump in specific
  255. circumstances
  256. * FIxed default config for rbl module
  257. * It is possible to get a list of rspamc commands with their descriptions
  258. * Added SORBS bl to the default config
  259. * 2tld file for surbl module has been significantly extended
  260. * Perl modules has been removed from the code.
  261. * Fixed an issue in libucl when parsing macros
  262. 0.6.3:
  263. * Fixed issues with DNS:
  264. - labels decompression algorithm was fixed;
  265. - added resolve_mx to lua API;
  266. - fixed modules that use DNS.
  267. * Lua modules once_received and emails reworked for new resolver API and UCL.
  268. * Debian package was polished.
  269. * Fixed a bug in fuzzy_check module that prevents correct processing messages
  270. without valid parts.
  271. 0.6.2:
  272. * Fuzzy check module has been reworked:
  273. - now fuzzy_check operates with a group of rules, that define which
  274. servers sre to be checked;
  275. - it is possible to specify read_only groups to avoid learning errors;
  276. - turn fuzzy_check to one_shot mode permanently;
  277. - fuzzy_check module configuration is now incompatible with the previous
  278. versions.
  279. * Imported bugfixes from libucl.
  280. * Fixed whitelist plugin.
  281. * Fixed statfiles resizing.
  282. * Improved logging initialization order.
  283. * Fixed race condition in the controller worker.
  284. 0.6.1:
  285. * Critical bugfixes:
  286. - fixed build system;
  287. - fixed in_class setting in bayes learning;
  288. 0.6.0:
  289. * Use UCL instead xml for configuration (https://github.com/vstakhov/libucl)
  290. * Fix statistics module normalization
  291. * Rework the many modules for the new configuration:
  292. - surbl has incompatible configuration;
  293. - fuzzy_check has incompatible configuration;
  294. - multimap has now new configuration;
  295. - received_rbl is removed and replaced by rbl module.
  296. * Removed deprecated options:
  297. - statfile_pool_size;
  298. - action and required/reject score for a metric.
  299. * Simplify build system and unify configuration for all platforms.
  300. * Improved URL detector (reduced false positive rate).
  301. * Lua 5.2 is now the default and fully supported version.
  302. * Tons of bugfixes and minor improvements.
  303. 0.5.6:
  304. * Fix bug with counters incrementing in rolling history
  305. * Detect expl and exp2l as some systems do not have it
  306. * Support input streams without Content-Length
  307. * Implement counters output via rspamc and controller interface
  308. * Fix bug with udp sockets in fuzzy storage
  309. 0.5.5:
  310. * New bayes normalizator based on inverse chi-square function
  311. * Various fixes to fuzzy storage
  312. * Allow update fuzzy storage only from specific IP addresses
  313. * Better support of IPv6 and address selection algorithms
  314. * Add CentOS spec file
  315. 0.5.4:
  316. * Fixed issues with diff algorithm
  317. * Added support of RRD statistics
  318. * Add webui worker for interface interaction
  319. * Fix a lot of issues with dynamic conf
  320. * Fix critical memory leak in settings code
  321. * Improve stability of the system
  322. 0.5.3:
  323. * Added dynamic options
  324. * Added advanced metaclassfication
  325. * Added RESTfull API for controller
  326. * Improved hashing algorithms
  327. * Various fixes for rspamc client:
  328. - allow interacting with unix sockets
  329. - librspamdclient major cleanup
  330. - bayes is now default classifier
  331. 0.5.2:
  332. * Added lua bindings for:
  333. - basic mime parts, that allows checkign attachements for example;
  334. - DNS resolver;
  335. * Existing lua bindings now works without task object allowing to use them
  336. in custom code.
  337. * Threads system was reworked to avoid global lua interpreter lock.
  338. * DKIM module now converts all line endings to CRLF how opendkim does.
  339. * URL detector is now more accurate for text parts.
  340. * Several critical bugs and memory leaks were fixed.
  341. 0.5.1:
  342. * Added lua worker type to handle network connections in lua.
  343. * Added lua bindings for async_session, IO dispatcher, memory_pool, and
  344. worker.
  345. * Composites can now uses other composites in expressions.
  346. * Fixes for debian package and for FreeBSD >= 9.1
  347. * Add support of gmime-2.6 if gmime-2.4 is not found.
  348. * Improve url detection and phishing detection.
  349. * Add lua mime_part library to get an access to all message part
  350. attributes (like filename, length, type).
  351. 0.5.0:
  352. * Added SMTP lightweight balancing proxy with XCLIENT support.
  353. * Added lua bindings for upstreams objects and API.
  354. * New pre-filters are implemented to support initial checking for messages.
  355. * Added ratelimit plugin that uses redis protocol to store data.
  356. * Added ipv6 support to spf and some other modules.
  357. * Unbreak spf plugin.
  358. * Allow options with the same name be threated as list.
  359. * DKIM plugin an parsing code was added.
  360. * Separate build system to put logic in several shared libraries.
  361. * Many bugfixes.
  362. 0.3.2:
  363. * Add error handling for regexps
  364. * Fix quit command in controller interface
  365. * Write symbols weights to rspamc output
  366. * Improve logic of selecting rspamc version
  367. * Do not try to parse broken DNS replies
  368. * Add 'raw' flag to FROM_EXCESS_BASE64 rule (requested by citrin)
  369. * Output message id in rspamc reply
  370. * Fix inserting composite symbol
  371. * Fix output of log line
  372. * Document composites
  373. * Add logging for fuzzy checks
  374. * Add logging for learning
  375. * Improve logic of learning messages - do not learn more than specific threshold
  376. * Fix inserting results for symbols that were incorrectly (for example more than 1 time) defined in config file
  377. * Do not output control characters if output is not terminal
  378. * Fix some logic errors in learning
  379. * Consider lua plugins errors as fatal configuration errors
  380. * Fix wirting message id during fuzzy_add command
  381. * Display weight of symbols correctly
  382. * Fixes to winnow learning
  383. * One more try to improve accuracy of winnow algorithm
  384. * Add bayesian classifier (initial version)
  385. * Remove normalizer as it is winnow specific thing, so all statistic algorithms now returns value from 0 to 1
  386. * Some fixes to fuzzy hashes expiration:
  387. * Fix assertion while look up value in NULL hash (found by cirtin)
  388. * Fix normalization for systems that have not tanhl function
  389. * Ignore rfc822 group addresses
  390. * Move images library to core rspamd
  391. * Add lua api to access images properties
  392. * Add post filters to lua API - filters that would be called after all message's processing
  393. * Add ability to check for specified symbol in task results from lua
  394. * Add ability to check for metric's results from lua
  395. * Add ability to learn specified statfile form lua
  396. * Add ability to extract filename and size of images from lua
  397. * Fix assertion while extracting internet address
  398. * Fix races in fuzzy storage
  399. * Make spf parser case insensitive
  400. * Add ability to check hashes of selected mime types
  401. * Add ability to set minimum size in bytes for mime types
  402. * Add ability to set minimum dimensions for images
  403. * Assume all text/* content types as text/plain
  404. * Fix getting data wrapper for gmime24
  405. * Many fixes to statfile syncronization system
  406. * Fixed statfile pool initialization and synchronization with disk
  407. * Prepare 0.3.2
  408. * Fix Mail::Rspamd::Config for new rspamd features
  409. * Use Mail::Rspamd::Config in rspamc client
  410. * Write user's name to rspamd log
  411. * Prepare rspamd build infrastructure for creating rpm and deb packages
  412. * Fix depends
  413. * Add start script for linux systems
  414. * Fix shared usage of statfiles
  415. * Add invalidation of statfiles in case of learning, so now statfiles
  416. * This should fix shared usage of statfile pool by several processes
  417. * Fix misprint (reported by az)
  418. * Fix stupid error when all checks can be done in a single pass
  419. * New trie based url scanner (based on libcamel)
  420. * Small fixes to rspamd perl client
  421. * Write fuzzy hashes info to log
  422. * Add trie interface to lua api
  423. * Explain sample config and cleanup it
  424. 0.3.1:
  425. * Add modules documentation
  426. * Continue implementing smtp proxy
  427. * Implement new learning system, now rspamd should be much more intelligent while learning messages
  428. * Convert statistic sums to use long double for counters
  429. * Use hyperbolic tangent for internal normalizer
  430. * In classify normalize result after comparing, not before
  431. * New symbols sorter
  432. * Fix strict aliasing while compiling with optimization
  433. * Fix tanhl detection for platforms that have not implementation of it
  434. * Remove several compile warnings
  435. * Add experimental support of dynamic rules to regexp module
  436. * Document views configuration
  437. * Several fixes to documentation
  438. * Add more logic for dynamic rules
  439. * Add documentation for dynamic rules
  440. * Add ability to make negations in networks in dynamic rules
  441. * Clean up cache items correctly
  442. * Implement basic SMTP dialog:
  443. * Implement interaction with smtp upstream (with support of XCLIENT)
  444. * Check messages received via smtp proxy
  445. * Add support for sendfile in io dispatcher
  446. * Fix issues with compatibility of worker_task and smtp proxy
  447. * Proxy DATA command
  448. * Fix SMTP
  449. * Change metric logic
  450. * Completely remove lex/yacc readers for config
  451. * Make common sense of metric/action and symbols
  452. * Sync changes with all plugins
  453. * Incorrectly removed in previous commit
  454. * Fix misprint (by Andrej Zverev)
  455. * announce the "password" keyword in usage list
  456. * Implement initial version of greylisting triplets storage
  457. * Fix issues with smtp worker
  458. * Fix QUIT command in SMTP worker
  459. * Some fixes about new metrics system (may be incomplete)
  460. * Get weights of symbol from default metric for symbols cache
  461. * Fix setting task->from/task->rctp in smtp client
  462. * Copy from and rcpt correctly
  463. * Some performance improvements to IO dispatcher (do not drain the whole buffer after a single line readed)
  464. * Fix smtp data input
  465. * Fix misprint
  466. * Add limit of maximum allowed smtp session errors
  467. * New logic of SURBL module:
  468. * Use system mkstemp(3) on systems where it is available as glib implementation
  469. * Try to fix memmove issues in io dispatcher
  470. * Remove debug from SURBL module
  471. * Rewrite buffered input for line policy (again)
  472. * Fix issue with links that are ip addresses in numeric form in surbl
  473. * On Darwin use BSD style sendfile definition
  474. * Reorganize platform specific knobs in CMakeLists
  475. * Use gettimeofday on systems that have not clock_getres
  476. * Use ftime for dns trans id generation on systems without clock_getres
  477. * Darwin sendfile(2) support
  478. * TIMEDB->TIMEB
  479. * More to previous commit
  480. * Pass env from main() arguments instead of platform specific global environ
  481. * Fix compatibility issues
  482. * Fix -lintl detection
  483. * Init some variables to avoid problems
  484. * Remove garbadge (gnome terminal sucks)
  485. * Add more information about why we drop smtp connection
  486. * Fix mkstemp call
  487. * Send to upstream QUIT command at the end of session
  488. * Check return value of each rspamd_dispatcher_write as in case of write errors sessions can be destroyed early
  489. * Fix states in smtp dialog
  490. * Use rspamd_snprintf instead of libc one
  491. * Fix URLS command
  492. * Fix reconfigure process of surbl module
  493. * Fix destroying smtp session (unmap memory and do not delete pool early)
  494. * Delete pool after using its variables
  495. * Delay timer must be registered in async session to correctly handle connection termination
  496. * Register dns requests in session too
  497. * Make session before registering events
  498. * Remove events in handlers
  499. * Add ability to set filters for smtp worker for each smtp stage
  500. * Add very initial version of DNS resolver (many things to be done)
  501. * Announce weights and sync
  502. * Fix few typo
  503. * Understand short names of facility in logging config
  504. * Add ability to make whitelist for spf checks
  505. * Misprint != -> ==
  506. * Handle lua tag in way that it is not required to write additional text:
  507. * Strip all starting whitespace symbols from xml texts
  508. * Fix stupid bug in calculating buffer length while reading file maps
  509. * Add resolv.conf parsing into dns.c
  510. * Fix microseconds<->milliseconds conversions
  511. * Take callback argument in Mail::Rspamd::Client for processing files and directories
  512. * Print results if rspamc is called for a directory
  513. * Fix stupid error with surbl module reconfig (another one, blame me)
  514. * Do not show duplicate urls in url header
  515. * Fix detection of numeric urls (reported by citrin)
  516. * Write real time of message's scan to log (not only virtual)
  517. * Fix chartable module in utf mode
  518. * Fix parsing of some broken urls
  519. * Add ability to test regexp with 'T' flag
  520. * Write more code for DNS resolver:
  521. * Make DNS resolver working
  522. * Many improvements to rspamd test suite: now it CAN be used for testing rspamd functionality
  523. * Write DNS resolver tests
  524. * Fix issues with memory_pool mutexes and with creating of statfiles
  525. * Forgotten in previous commit
  526. * Add support for parsing SPF and SRV records
  527. * Fix PTR parsing
  528. * Add tests
  529. * Make SURBL module to use rspamd dns module
  530. * Several fixes to DNS logic
  531. * Remove evdns and use only rspamd resolver
  532. * 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
  533. * Fix resolving in smtp module
  534. * Init events before configuring resolver in smtp worker
  535. * Set resolver inside task
  536. * Fix reload signal (reported by citrin)
  537. * Some improvements to redirector
  538. * Call has_forked method to inform POE about fork
  539. * Fix lua DNS code
  540. * Decompress labels in DNS packets more strictly
  541. * Fix some problems with TXT records
  542. * Try to fix removing of DNS events
  543. * Do not insert unparsed RR's into reply
  544. * Calling callbacks may cause destroying session from which we are calling callback so we MUST call callback as the latest action
  545. * Fix check_smtp_data function
  546. * Add ability to make views by recipient
  547. * Add ability to set metric's action from config file
  548. * Fix bug with writing garbadge if message has no urls or no messages
  549. * Fix bug with incorrect behaviour of compare_parts_distance function
  550. * Add ability to assign several actions to one metric
  551. * Report action in rspamc protocol
  552. * Mail::Rspamd::Client and rspamc can now understand Action header too
  553. * Write action to log as well
  554. * Make valgrind happy about comparing symbols
  555. * Add more debug to comparing parts distance function
  556. * Write action even if message has no symbols
  557. * Make improvements to HTML entites decoder: now it replaces entities with common characters and
  558. * Add -d option to force debug output
  559. * Assume 7bit as default transfer encoding
  560. * Do not overwrite lua plugins and configs if they already exists in target directory
  561. * Improve logging
  562. * Write queue id to log
  563. * Remove test messages from cmake
  564. * Reopen log file by USR1 signal
  565. * Add reopenlog method to FreeBSD rc script
  566. * Adopt foreach for cmake 2.6
  567. * Fix to rc script
  568. * Do not try to resolve names with several dots in a row
  569. * Fix surbl request formatting for ip addresses
  570. * Handle cases of broken requests
  571. * Fix problems with parsing compressed names
  572. * Fix TXT records parsing
  573. * Fix expanding spf macros that may fail in rare cases
  574. * Fix another error with early task destroying
  575. * Handle empty from header
  576. * Improve reopenlog command in rc script
  577. * Strip trailing whitespace characters in Mail::Rspamd::Client
  578. * Use ungreedy match to strip trailing whitespaces
  579. * Stupid error in calculation compressed label length
  580. * Some optimizations to client library
  581. * Do not compare empty parts
  582. * Empty and non-empty parts are allways different
  583. * Save in regexp cache the whole regexp with header name (if exists) and with flags
  584. * Add rspamd_log variable to lua plugins to access logging functions
  585. * Each part in rspamd task now can have parent part
  586. * Check for parts distance only for multipart/alternative subparts
  587. * Do not check attachements even if they are text (but attached as file)
  588. * Do not die if write (2) returned ENOSPACE while doing logging, turn on throttling mode instead (1 write try in a second)
  589. * Add ability to turn on debug for specific symbols
  590. * Add ability to configure dns timeouts and dns retransmits in config file
  591. * More debug
  592. * Fix extracting arguments in lua logger interface
  593. * Turn off debug_ip during reload if it was disabled by new config
  594. * Improve lua logging
  595. * Pre-init symbols cache when rereading config
  596. * Fix lua representing of invalid ip (nil, not 255.255.255.255)
  597. * Fix R_TO_SEEMS_AUTO rule (by citrin)
  598. * Add multimap lua plugin
  599. * Fix some multimap issues
  600. * Try to save images hashes to fuzzy storage to stop some annoying spammers
  601. * Allocate some more bytes for read buffer to avoid incorrect behavoiur
  602. * Add ability to check dns black lists by multimap module
  603. * Add multimap documentation
  604. * Fix labels parsing
  605. * Another try to save regexps in cache correctly
  606. * Improve test logs for regexps
  607. * Fix parsing txt records to avoid reading of uninitialized data
  608. * Fix error with writing symbols cache file
  609. * Fix error while working in utf mode when raw regexps was not created properly
  610. * Do not add extra byte while converting text to utf
  611. * Add error handling for regexps