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

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437
  1. 0.6.9:
  2. * Fix serious bug in DNS random code.
  3. * Rename symbol HFILTER_HOSTNAME_NOPTR (@AlexeySa)
  4. * Fix Hfilter for null text part (@AlexeySa)
  5. * Fix rule MISSING_MIMEOLE for IPB forum (@AlexeySa)
  6. * Tweak default RBL module config for brevity (@fatalbanana)
  7. * Fix nameservers setup.
  8. * Fix overrides for a metric. (#33)
  9. * Fix memory leak in fuzzy_add command.
  10. * Debianization (by @dottedmag).
  11. * Rework resolver library.
  12. * Rework LRU hash logic.
  13. * Fix users in debian package (by @dottedmag).
  14. * Rework bloom hash library to use XXHash.
  15. * Remove judy and use glib hash tables from fuzzy_storage.
  16. 0.6.8:
  17. * Controller now listen for localhost and not for 127.0.0.1 by default
  18. * Allow FCrDNS-style RBL lookups (by @fatalbanana)
  19. * Reduce threshold for parts_differ function.
  20. * Fix hostname lookup for rdns rbl (by @AlexeySa)
  21. * Fix HFILTER_URL_ONELINE to reduce false positive rate.
  22. * Fix whitelist module.
  23. * Allow override system predefined settings without touching system ones
  24. by .try_include macro (by @andrejzverev)
  25. * Check for [ip.address]-style HELO and suppress lookups. (by
  26. @fatalbanana)
  27. * Optimize hfilter (by @AlexeySa)
  28. * Fix issue with random numbers generator in dns.
  29. * Use more clever time values to setup entropy.
  30. * Synced with the recent libucl.
  31. 0.6.7:
  32. * Use ChaCha20 for DNS generator (more secure DNS id)
  33. * Unknown symbols now has zero weight and not 1.0
  34. * Fix fuzzy hashes expire time
  35. * Fix critical issue in statfiles on FreeBSD 9 (and some other platforms)
  36. * Add .include_map macro to ucl parser
  37. * Update libucl
  38. * Fix headers end detection for DKIM module
  39. * Fix a bug in received headers parser
  40. * Validate IP addresses before pushing them to lua
  41. * Start new documentation project
  42. * Fixed tonns of other minor bugs
  43. * Start to prepare for 0.7 with HTTP protocol and new settings
  44. 0.6.6:
  45. * Removed issue with BUFSIZ limitation in the controller output
  46. * Simplify logging symbols escaping
  47. * Adjusted weights for several rules
  48. * Improve spamhaus rbl support
  49. * Removed PBL for received headers checks
  50. * Added hfilter module that performs various HELO and IP checks.
  51. * Rspamd can now be reloaded by HUP signal
  52. * Fuzzy storage should expire hashes properly
  53. * Build system has been reworked for better supportof pkg-config
  54. * Various minor bugfixes
  55. 0.6.5:
  56. * Fixed critical bug in DNS resolver, introduced in 0.6.4
  57. * Improved multimap and rbl plugins to skip
  58. * Add dns_sockets option for tuning sockets per server in DNS resolver
  59. * Improved packages for rspamd
  60. 0.6.4:
  61. * Added io channels for DNS request to balance load and reduce id
  62. collisions chance
  63. * Fixed a bug in SPF filter that may cause core dump in specific
  64. circumstances
  65. * FIxed default config for rbl module
  66. * It is possible to get a list of rspamc commands with their descriptions
  67. * Added SORBS bl to the default config
  68. * 2tld file for surbl module has been significantly extended
  69. * Perl modules has been removed from the code.
  70. * Fixed an issue in libucl when parsing macros
  71. 0.6.3:
  72. * Fixed issues with DNS:
  73. - labels decompression algorithm was fixed;
  74. - added resolve_mx to lua API;
  75. - fixed modules that use DNS.
  76. * Lua modules once_received and emails reworked for new resolver API and UCL.
  77. * Debian package was polished.
  78. * Fixed a bug in fuzzy_check module that prevents correct processing messages
  79. without valid parts.
  80. 0.6.2:
  81. * Fuzzy check module has been reworked:
  82. - now fuzzy_check operates with a group of rules, that define which
  83. servers sre to be checked;
  84. - it is possible to specify read_only groups to avoid learning errors;
  85. - turn fuzzy_check to one_shot mode permanently;
  86. - fuzzy_check module configuration is now incompatible with the previous
  87. versions.
  88. * Imported bugfixes from libucl.
  89. * Fixed whitelist plugin.
  90. * Fixed statfiles resizing.
  91. * Improved logging initialization order.
  92. * Fixed race condition in the controller worker.
  93. 0.6.1:
  94. * Critical bugfixes:
  95. - fixed build system;
  96. - fixed in_class setting in bayes learning;
  97. 0.6.0:
  98. * Use UCL instead xml for configuration (https://github.com/vstakhov/libucl)
  99. * Fix statistics module normalization
  100. * Rework the many modules for the new configuration:
  101. - surbl has incompatible configuration;
  102. - fuzzy_check has incompatible configuration;
  103. - multimap has now new configuration;
  104. - received_rbl is removed and replaced by rbl module.
  105. * Removed deprecated options:
  106. - statfile_pool_size;
  107. - action and required/reject score for a metric.
  108. * Simplify build system and unify configuration for all platforms.
  109. * Improved URL detector (reduced false positive rate).
  110. * Lua 5.2 is now the default and fully supported version.
  111. * Tons of bugfixes and minor improvements.
  112. 0.5.6:
  113. * Fix bug with counters incrementing in rolling history
  114. * Detect expl and exp2l as some systems do not have it
  115. * Support input streams without Content-Length
  116. * Implement counters output via rspamc and controller interface
  117. * Fix bug with udp sockets in fuzzy storage
  118. 0.5.5:
  119. * New bayes normalizator based on inverse chi-square function
  120. * Various fixes to fuzzy storage
  121. * Allow update fuzzy storage only from specific IP addresses
  122. * Better support of IPv6 and address selection algorithms
  123. * Add CentOS spec file
  124. 0.5.4:
  125. * Fixed issues with diff algorithm
  126. * Added support of RRD statistics
  127. * Add webui worker for interface interaction
  128. * Fix a lot of issues with dynamic conf
  129. * Fix critical memory leak in settings code
  130. * Improve stability of the system
  131. 0.5.3:
  132. * Added dynamic options
  133. * Added advanced metaclassfication
  134. * Added RESTfull API for controller
  135. * Improved hashing algorithms
  136. * Various fixes for rspamc client:
  137. - allow interacting with unix sockets
  138. - librspamdclient major cleanup
  139. - bayes is now default classifier
  140. 0.5.2:
  141. * Added lua bindings for:
  142. - basic mime parts, that allows checkign attachements for example;
  143. - DNS resolver;
  144. * Existing lua bindings now works without task object allowing to use them
  145. in custom code.
  146. * Threads system was reworked to avoid global lua interpreter lock.
  147. * DKIM module now converts all line endings to CRLF how opendkim does.
  148. * URL detector is now more accurate for text parts.
  149. * Several critical bugs and memory leaks were fixed.
  150. 0.5.1:
  151. * Added lua worker type to handle network connections in lua.
  152. * Added lua bindings for async_session, IO dispatcher, memory_pool, and
  153. worker.
  154. * Composites can now uses other composites in expressions.
  155. * Fixes for debian package and for FreeBSD >= 9.1
  156. * Add support of gmime-2.6 if gmime-2.4 is not found.
  157. * Improve url detection and phishing detection.
  158. * Add lua mime_part library to get an access to all message part
  159. attributes (like filename, length, type).
  160. 0.5.0:
  161. * Added SMTP lightweight balancing proxy with XCLIENT support.
  162. * Added lua bindings for upstreams objects and API.
  163. * New pre-filters are implemented to support initial checking for messages.
  164. * Added ratelimit plugin that uses redis protocol to store data.
  165. * Added ipv6 support to spf and some other modules.
  166. * Unbreak spf plugin.
  167. * Allow options with the same name be threated as list.
  168. * DKIM plugin an parsing code was added.
  169. * Separate build system to put logic in several shared libraries.
  170. * Many bugfixes.
  171. 0.3.2:
  172. * Add error handling for regexps
  173. * Fix quit command in controller interface
  174. * Write symbols weights to rspamc output
  175. * Improve logic of selecting rspamc version
  176. * Do not try to parse broken DNS replies
  177. * Add 'raw' flag to FROM_EXCESS_BASE64 rule (requested by citrin)
  178. * Output message id in rspamc reply
  179. * Fix inserting composite symbol
  180. * Fix output of log line
  181. * Document composites
  182. * Add logging for fuzzy checks
  183. * Add logging for learning
  184. * Improve logic of learning messages - do not learn more than specific threshold
  185. * Fix inserting results for symbols that were incorrectly (for example more than 1 time) defined in config file
  186. * Do not output control characters if output is not terminal
  187. * Fix some logic errors in learning
  188. * Consider lua plugins errors as fatal configuration errors
  189. * Fix wirting message id during fuzzy_add command
  190. * Display weight of symbols correctly
  191. * Fixes to winnow learning
  192. * One more try to improve accuracy of winnow algorithm
  193. * Add bayesian classifier (initial version)
  194. * Remove normalizer as it is winnow specific thing, so all statistic algorithms now returns value from 0 to 1
  195. * Some fixes to fuzzy hashes expiration:
  196. * Fix assertion while look up value in NULL hash (found by cirtin)
  197. * Fix normalization for systems that have not tanhl function
  198. * Ignore rfc822 group addresses
  199. * Move images library to core rspamd
  200. * Add lua api to access images properties
  201. * Add post filters to lua API - filters that would be called after all message's processing
  202. * Add ability to check for specified symbol in task results from lua
  203. * Add ability to check for metric's results from lua
  204. * Add ability to learn specified statfile form lua
  205. * Add ability to extract filename and size of images from lua
  206. * Fix assertion while extracting internet address
  207. * Fix races in fuzzy storage
  208. * Make spf parser case insensitive
  209. * Add ability to check hashes of selected mime types
  210. * Add ability to set minimum size in bytes for mime types
  211. * Add ability to set minimum dimensions for images
  212. * Assume all text/* content types as text/plain
  213. * Fix getting data wrapper for gmime24
  214. * Many fixes to statfile syncronization system
  215. * Fixed statfile pool initialization and synchronization with disk
  216. * Prepare 0.3.2
  217. * Fix Mail::Rspamd::Config for new rspamd features
  218. * Use Mail::Rspamd::Config in rspamc client
  219. * Write user's name to rspamd log
  220. * Prepare rspamd build infrastructure for creating rpm and deb packages
  221. * Fix depends
  222. * Add start script for linux systems
  223. * Fix shared usage of statfiles
  224. * Add invalidation of statfiles in case of learning, so now statfiles
  225. * This should fix shared usage of statfile pool by several processes
  226. * Fix misprint (reported by az)
  227. * Fix stupid error when all checks can be done in a single pass
  228. * New trie based url scanner (based on libcamel)
  229. * Small fixes to rspamd perl client
  230. * Write fuzzy hashes info to log
  231. * Add trie interface to lua api
  232. * Explain sample config and cleanup it
  233. 0.3.1:
  234. * Add modules documentation
  235. * Continue implementing smtp proxy
  236. * Implement new learning system, now rspamd should be much more intelligent while learning messages
  237. * Convert statistic sums to use long double for counters
  238. * Use hyperbolic tangent for internal normalizer
  239. * In classify normalize result after comparing, not before
  240. * New symbols sorter
  241. * Fix strict aliasing while compiling with optimization
  242. * Fix tanhl detection for platforms that have not implementation of it
  243. * Remove several compile warnings
  244. * Add experimental support of dynamic rules to regexp module
  245. * Document views configuration
  246. * Several fixes to documentation
  247. * Add more logic for dynamic rules
  248. * Add documentation for dynamic rules
  249. * Add ability to make negations in networks in dynamic rules
  250. * Clean up cache items correctly
  251. * Implement basic SMTP dialog:
  252. * Implement interaction with smtp upstream (with support of XCLIENT)
  253. * Check messages received via smtp proxy
  254. * Add support for sendfile in io dispatcher
  255. * Fix issues with compatibility of worker_task and smtp proxy
  256. * Proxy DATA command
  257. * Fix SMTP
  258. * Change metric logic
  259. * Completely remove lex/yacc readers for config
  260. * Make common sense of metric/action and symbols
  261. * Sync changes with all plugins
  262. * Incorrectly removed in previous commit
  263. * Fix misprint (by Andrej Zverev)
  264. * announce the "password" keyword in usage list
  265. * Implement initial version of greylisting triplets storage
  266. * Fix issues with smtp worker
  267. * Fix QUIT command in SMTP worker
  268. * Some fixes about new metrics system (may be incomplete)
  269. * Get weights of symbol from default metric for symbols cache
  270. * Fix setting task->from/task->rctp in smtp client
  271. * Copy from and rcpt correctly
  272. * Some performance improvements to IO dispatcher (do not drain the whole buffer after a single line readed)
  273. * Fix smtp data input
  274. * Fix misprint
  275. * Add limit of maximum allowed smtp session errors
  276. * New logic of SURBL module:
  277. * Use system mkstemp(3) on systems where it is available as glib implementation
  278. * Try to fix memmove issues in io dispatcher
  279. * Remove debug from SURBL module
  280. * Rewrite buffered input for line policy (again)
  281. * Fix issue with links that are ip addresses in numeric form in surbl
  282. * On Darwin use BSD style sendfile definition
  283. * Reorganize platform specific knobs in CMakeLists
  284. * Use gettimeofday on systems that have not clock_getres
  285. * Use ftime for dns trans id generation on systems without clock_getres
  286. * Darwin sendfile(2) support
  287. * TIMEDB->TIMEB
  288. * More to previous commit
  289. * Pass env from main() arguments instead of platform specific global environ
  290. * Fix compatibility issues
  291. * Fix -lintl detection
  292. * Init some variables to avoid problems
  293. * Remove garbadge (gnome terminal sucks)
  294. * Add more information about why we drop smtp connection
  295. * Fix mkstemp call
  296. * Send to upstream QUIT command at the end of session
  297. * Check return value of each rspamd_dispatcher_write as in case of write errors sessions can be destroyed early
  298. * Fix states in smtp dialog
  299. * Use rspamd_snprintf instead of libc one
  300. * Fix URLS command
  301. * Fix reconfigure process of surbl module
  302. * Fix destroying smtp session (unmap memory and do not delete pool early)
  303. * Delete pool after using its variables
  304. * Delay timer must be registered in async session to correctly handle connection termination
  305. * Register dns requests in session too
  306. * Make session before registering events
  307. * Remove events in handlers
  308. * Add ability to set filters for smtp worker for each smtp stage
  309. * Add very initial version of DNS resolver (many things to be done)
  310. * Announce weights and sync
  311. * Fix few typo
  312. * Understand short names of facility in logging config
  313. * Add ability to make whitelist for spf checks
  314. * Misprint != -> ==
  315. * Handle lua tag in way that it is not required to write additional text:
  316. * Strip all starting whitespace symbols from xml texts
  317. * Fix stupid bug in calculating buffer length while reading file maps
  318. * Add resolv.conf parsing into dns.c
  319. * Fix microseconds<->milliseconds conversions
  320. * Take callback argument in Mail::Rspamd::Client for processing files and directories
  321. * Print results if rspamc is called for a directory
  322. * Fix stupid error with surbl module reconfig (another one, blame me)
  323. * Do not show duplicate urls in url header
  324. * Fix detection of numeric urls (reported by citrin)
  325. * Write real time of message's scan to log (not only virtual)
  326. * Fix chartable module in utf mode
  327. * Fix parsing of some broken urls
  328. * Add ability to test regexp with 'T' flag
  329. * Write more code for DNS resolver:
  330. * Make DNS resolver working
  331. * Many improvements to rspamd test suite: now it CAN be used for testing rspamd functionality
  332. * Write DNS resolver tests
  333. * Fix issues with memory_pool mutexes and with creating of statfiles
  334. * Forgotten in previous commit
  335. * Add support for parsing SPF and SRV records
  336. * Fix PTR parsing
  337. * Add tests
  338. * Make SURBL module to use rspamd dns module
  339. * Several fixes to DNS logic
  340. * Remove evdns and use only rspamd resolver
  341. * 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
  342. * Fix resolving in smtp module
  343. * Init events before configuring resolver in smtp worker
  344. * Set resolver inside task
  345. * Fix reload signal (reported by citrin)
  346. * Some improvements to redirector
  347. * Call has_forked method to inform POE about fork
  348. * Fix lua DNS code
  349. * Decompress labels in DNS packets more strictly
  350. * Fix some problems with TXT records
  351. * Try to fix removing of DNS events
  352. * Do not insert unparsed RR's into reply
  353. * Calling callbacks may cause destroying session from which we are calling callback so we MUST call callback as the latest action
  354. * Fix check_smtp_data function
  355. * Add ability to make views by recipient
  356. * Add ability to set metric's action from config file
  357. * Fix bug with writing garbadge if message has no urls or no messages
  358. * Fix bug with incorrect behaviour of compare_parts_distance function
  359. * Add ability to assign several actions to one metric
  360. * Report action in rspamc protocol
  361. * Mail::Rspamd::Client and rspamc can now understand Action header too
  362. * Write action to log as well
  363. * Make valgrind happy about comparing symbols
  364. * Add more debug to comparing parts distance function
  365. * Write action even if message has no symbols
  366. * Make improvements to HTML entites decoder: now it replaces entities with common characters and
  367. * Add -d option to force debug output
  368. * Assume 7bit as default transfer encoding
  369. * Do not overwrite lua plugins and configs if they already exists in target directory
  370. * Improve logging
  371. * Write queue id to log
  372. * Remove test messages from cmake
  373. * Reopen log file by USR1 signal
  374. * Add reopenlog method to FreeBSD rc script
  375. * Adopt foreach for cmake 2.6
  376. * Fix to rc script
  377. * Do not try to resolve names with several dots in a row
  378. * Fix surbl request formatting for ip addresses
  379. * Handle cases of broken requests
  380. * Fix problems with parsing compressed names
  381. * Fix TXT records parsing
  382. * Fix expanding spf macros that may fail in rare cases
  383. * Fix another error with early task destroying
  384. * Handle empty from header
  385. * Improve reopenlog command in rc script
  386. * Strip trailing whitespace characters in Mail::Rspamd::Client
  387. * Use ungreedy match to strip trailing whitespaces
  388. * Stupid error in calculation compressed label length
  389. * Some optimizations to client library
  390. * Do not compare empty parts
  391. * Empty and non-empty parts are allways different
  392. * Save in regexp cache the whole regexp with header name (if exists) and with flags
  393. * Add rspamd_log variable to lua plugins to access logging functions
  394. * Each part in rspamd task now can have parent part
  395. * Check for parts distance only for multipart/alternative subparts
  396. * Do not check attachements even if they are text (but attached as file)
  397. * Do not die if write (2) returned ENOSPACE while doing logging, turn on throttling mode instead (1 write try in a second)
  398. * Add ability to turn on debug for specific symbols
  399. * Add ability to configure dns timeouts and dns retransmits in config file
  400. * More debug
  401. * Fix extracting arguments in lua logger interface
  402. * Turn off debug_ip during reload if it was disabled by new config
  403. * Improve lua logging
  404. * Pre-init symbols cache when rereading config
  405. * Fix lua representing of invalid ip (nil, not 255.255.255.255)
  406. * Fix R_TO_SEEMS_AUTO rule (by citrin)
  407. * Add multimap lua plugin
  408. * Fix some multimap issues
  409. * Try to save images hashes to fuzzy storage to stop some annoying spammers
  410. * Allocate some more bytes for read buffer to avoid incorrect behavoiur
  411. * Add ability to check dns black lists by multimap module
  412. * Add multimap documentation
  413. * Fix labels parsing
  414. * Another try to save regexps in cache correctly
  415. * Improve test logs for regexps
  416. * Fix parsing txt records to avoid reading of uninitialized data
  417. * Fix error with writing symbols cache file
  418. * Fix error while working in utf mode when raw regexps was not created properly
  419. * Do not add extra byte while converting text to utf
  420. * Add error handling for regexps