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

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285
  1. 0.5.2:
  2. * Added lua bindings for:
  3. - basic mime parts, that allows checkign attachements for example;
  4. - DNS resolver;
  5. * Existing lua bindings now works without task object allowing to use them
  6. in custom code.
  7. * Threads system was reworked to avoid global lua interpreter lock.
  8. * DKIM module now converts all line endings to CRLF how opendkim does.
  9. * URL detector is now more accurate for text parts.
  10. * Several critical bugs and memory leaks were fixed.
  11. 0.5.1:
  12. * Added lua worker type to handle network connections in lua.
  13. * Added lua bindings for async_session, IO dispatcher, memory_pool, and
  14. worker.
  15. * Composites can now uses other composites in expressions.
  16. * Fixes for debian package and for FreeBSD >= 9.1
  17. * Add support of gmime-2.6 if gmime-2.4 is not found.
  18. * Improve url detection and phishing detection.
  19. * Add lua mime_part library to get an access to all message part
  20. attributes (like filename, length, type).
  21. 0.5.0:
  22. * Added SMTP lightweight balancing proxy with XCLIENT support.
  23. * Added lua bindings for upstreams objects and API.
  24. * New pre-filters are implemented to support initial checking for messages.
  25. * Added ratelimit plugin that uses redis protocol to store data.
  26. * Added ipv6 support to spf and some other modules.
  27. * Unbreak spf plugin.
  28. * Allow options with the same name be threated as list.
  29. * DKIM plugin an parsing code was added.
  30. * Separate build system to put logic in several shared libraries.
  31. * Many bugfixes.
  32. 0.3.2:
  33. * Add error handling for regexps
  34. * Fix quit command in controller interface
  35. * Write symbols weights to rspamc output
  36. * Improve logic of selecting rspamc version
  37. * Do not try to parse broken DNS replies
  38. * Add 'raw' flag to FROM_EXCESS_BASE64 rule (requested by citrin)
  39. * Output message id in rspamc reply
  40. * Fix inserting composite symbol
  41. * Fix output of log line
  42. * Document composites
  43. * Add logging for fuzzy checks
  44. * Add logging for learning
  45. * Improve logic of learning messages - do not learn more than specific threshold
  46. * Fix inserting results for symbols that were incorrectly (for example more than 1 time) defined in config file
  47. * Do not output control characters if output is not terminal
  48. * Fix some logic errors in learning
  49. * Consider lua plugins errors as fatal configuration errors
  50. * Fix wirting message id during fuzzy_add command
  51. * Display weight of symbols correctly
  52. * Fixes to winnow learning
  53. * One more try to improve accuracy of winnow algorithm
  54. * Add bayesian classifier (initial version)
  55. * Remove normalizer as it is winnow specific thing, so all statistic algorithms now returns value from 0 to 1
  56. * Some fixes to fuzzy hashes expiration:
  57. * Fix assertion while look up value in NULL hash (found by cirtin)
  58. * Fix normalization for systems that have not tanhl function
  59. * Ignore rfc822 group addresses
  60. * Move images library to core rspamd
  61. * Add lua api to access images properties
  62. * Add post filters to lua API - filters that would be called after all message's processing
  63. * Add ability to check for specified symbol in task results from lua
  64. * Add ability to check for metric's results from lua
  65. * Add ability to learn specified statfile form lua
  66. * Add ability to extract filename and size of images from lua
  67. * Fix assertion while extracting internet address
  68. * Fix races in fuzzy storage
  69. * Make spf parser case insensitive
  70. * Add ability to check hashes of selected mime types
  71. * Add ability to set minimum size in bytes for mime types
  72. * Add ability to set minimum dimensions for images
  73. * Assume all text/* content types as text/plain
  74. * Fix getting data wrapper for gmime24
  75. * Many fixes to statfile syncronization system
  76. * Fixed statfile pool initialization and synchronization with disk
  77. * Prepare 0.3.2
  78. * Fix Mail::Rspamd::Config for new rspamd features
  79. * Use Mail::Rspamd::Config in rspamc client
  80. * Write user's name to rspamd log
  81. * Prepare rspamd build infrastructure for creating rpm and deb packages
  82. * Fix depends
  83. * Add start script for linux systems
  84. * Fix shared usage of statfiles
  85. * Add invalidation of statfiles in case of learning, so now statfiles
  86. * This should fix shared usage of statfile pool by several processes
  87. * Fix misprint (reported by az)
  88. * Fix stupid error when all checks can be done in a single pass
  89. * New trie based url scanner (based on libcamel)
  90. * Small fixes to rspamd perl client
  91. * Write fuzzy hashes info to log
  92. * Add trie interface to lua api
  93. * Explain sample config and cleanup it
  94. 0.3.1:
  95. * Add modules documentation
  96. * Continue implementing smtp proxy
  97. * Implement new learning system, now rspamd should be much more intelligent while learning messages
  98. * Convert statistic sums to use long double for counters
  99. * Use hyperbolic tangent for internal normalizer
  100. * In classify normalize result after comparing, not before
  101. * New symbols sorter
  102. * Fix strict aliasing while compiling with optimization
  103. * Fix tanhl detection for platforms that have not implementation of it
  104. * Remove several compile warnings
  105. * Add experimental support of dynamic rules to regexp module
  106. * Document views configuration
  107. * Several fixes to documentation
  108. * Add more logic for dynamic rules
  109. * Add documentation for dynamic rules
  110. * Add ability to make negations in networks in dynamic rules
  111. * Clean up cache items correctly
  112. * Implement basic SMTP dialog:
  113. * Implement interaction with smtp upstream (with support of XCLIENT)
  114. * Check messages received via smtp proxy
  115. * Add support for sendfile in io dispatcher
  116. * Fix issues with compatibility of worker_task and smtp proxy
  117. * Proxy DATA command
  118. * Fix SMTP
  119. * Change metric logic
  120. * Completely remove lex/yacc readers for config
  121. * Make common sense of metric/action and symbols
  122. * Sync changes with all plugins
  123. * Incorrectly removed in previous commit
  124. * Fix misprint (by Andrej Zverev)
  125. * announce the "password" keyword in usage list
  126. * Implement initial version of greylisting triplets storage
  127. * Fix issues with smtp worker
  128. * Fix QUIT command in SMTP worker
  129. * Some fixes about new metrics system (may be incomplete)
  130. * Get weights of symbol from default metric for symbols cache
  131. * Fix setting task->from/task->rctp in smtp client
  132. * Copy from and rcpt correctly
  133. * Some performance improvements to IO dispatcher (do not drain the whole buffer after a single line readed)
  134. * Fix smtp data input
  135. * Fix misprint
  136. * Add limit of maximum allowed smtp session errors
  137. * New logic of SURBL module:
  138. * Use system mkstemp(3) on systems where it is available as glib implementation
  139. * Try to fix memmove issues in io dispatcher
  140. * Remove debug from SURBL module
  141. * Rewrite buffered input for line policy (again)
  142. * Fix issue with links that are ip addresses in numeric form in surbl
  143. * On Darwin use BSD style sendfile definition
  144. * Reorganize platform specific knobs in CMakeLists
  145. * Use gettimeofday on systems that have not clock_getres
  146. * Use ftime for dns trans id generation on systems without clock_getres
  147. * Darwin sendfile(2) support
  148. * TIMEDB->TIMEB
  149. * More to previous commit
  150. * Pass env from main() arguments instead of platform specific global environ
  151. * Fix compatibility issues
  152. * Fix -lintl detection
  153. * Init some variables to avoid problems
  154. * Remove garbadge (gnome terminal sucks)
  155. * Add more information about why we drop smtp connection
  156. * Fix mkstemp call
  157. * Send to upstream QUIT command at the end of session
  158. * Check return value of each rspamd_dispatcher_write as in case of write errors sessions can be destroyed early
  159. * Fix states in smtp dialog
  160. * Use rspamd_snprintf instead of libc one
  161. * Fix URLS command
  162. * Fix reconfigure process of surbl module
  163. * Fix destroying smtp session (unmap memory and do not delete pool early)
  164. * Delete pool after using its variables
  165. * Delay timer must be registered in async session to correctly handle connection termination
  166. * Register dns requests in session too
  167. * Make session before registering events
  168. * Remove events in handlers
  169. * Add ability to set filters for smtp worker for each smtp stage
  170. * Add very initial version of DNS resolver (many things to be done)
  171. * Announce weights and sync
  172. * Fix few typo
  173. * Understand short names of facility in logging config
  174. * Add ability to make whitelist for spf checks
  175. * Misprint != -> ==
  176. * Handle lua tag in way that it is not required to write additional text:
  177. * Strip all starting whitespace symbols from xml texts
  178. * Fix stupid bug in calculating buffer length while reading file maps
  179. * Add resolv.conf parsing into dns.c
  180. * Fix microseconds<->milliseconds conversions
  181. * Take callback argument in Mail::Rspamd::Client for processing files and directories
  182. * Print results if rspamc is called for a directory
  183. * Fix stupid error with surbl module reconfig (another one, blame me)
  184. * Do not show duplicate urls in url header
  185. * Fix detection of numeric urls (reported by citrin)
  186. * Write real time of message's scan to log (not only virtual)
  187. * Fix chartable module in utf mode
  188. * Fix parsing of some broken urls
  189. * Add ability to test regexp with 'T' flag
  190. * Write more code for DNS resolver:
  191. * Make DNS resolver working
  192. * Many improvements to rspamd test suite: now it CAN be used for testing rspamd functionality
  193. * Write DNS resolver tests
  194. * Fix issues with memory_pool mutexes and with creating of statfiles
  195. * Forgotten in previous commit
  196. * Add support for parsing SPF and SRV records
  197. * Fix PTR parsing
  198. * Add tests
  199. * Make SURBL module to use rspamd dns module
  200. * Several fixes to DNS logic
  201. * Remove evdns and use only rspamd resolver
  202. * 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
  203. * Fix resolving in smtp module
  204. * Init events before configuring resolver in smtp worker
  205. * Set resolver inside task
  206. * Fix reload signal (reported by citrin)
  207. * Some improvements to redirector
  208. * Call has_forked method to inform POE about fork
  209. * Fix lua DNS code
  210. * Decompress labels in DNS packets more strictly
  211. * Fix some problems with TXT records
  212. * Try to fix removing of DNS events
  213. * Do not insert unparsed RR's into reply
  214. * Calling callbacks may cause destroying session from which we are calling callback so we MUST call callback as the latest action
  215. * Fix check_smtp_data function
  216. * Add ability to make views by recipient
  217. * Add ability to set metric's action from config file
  218. * Fix bug with writing garbadge if message has no urls or no messages
  219. * Fix bug with incorrect behaviour of compare_parts_distance function
  220. * Add ability to assign several actions to one metric
  221. * Report action in rspamc protocol
  222. * Mail::Rspamd::Client and rspamc can now understand Action header too
  223. * Write action to log as well
  224. * Make valgrind happy about comparing symbols
  225. * Add more debug to comparing parts distance function
  226. * Write action even if message has no symbols
  227. * Make improvements to HTML entites decoder: now it replaces entities with common characters and
  228. * Add -d option to force debug output
  229. * Assume 7bit as default transfer encoding
  230. * Do not overwrite lua plugins and configs if they already exists in target directory
  231. * Improve logging
  232. * Write queue id to log
  233. * Remove test messages from cmake
  234. * Reopen log file by USR1 signal
  235. * Add reopenlog method to FreeBSD rc script
  236. * Adopt foreach for cmake 2.6
  237. * Fix to rc script
  238. * Do not try to resolve names with several dots in a row
  239. * Fix surbl request formatting for ip addresses
  240. * Handle cases of broken requests
  241. * Fix problems with parsing compressed names
  242. * Fix TXT records parsing
  243. * Fix expanding spf macros that may fail in rare cases
  244. * Fix another error with early task destroying
  245. * Handle empty from header
  246. * Improve reopenlog command in rc script
  247. * Strip trailing whitespace characters in Mail::Rspamd::Client
  248. * Use ungreedy match to strip trailing whitespaces
  249. * Stupid error in calculation compressed label length
  250. * Some optimizations to client library
  251. * Do not compare empty parts
  252. * Empty and non-empty parts are allways different
  253. * Save in regexp cache the whole regexp with header name (if exists) and with flags
  254. * Add rspamd_log variable to lua plugins to access logging functions
  255. * Each part in rspamd task now can have parent part
  256. * Check for parts distance only for multipart/alternative subparts
  257. * Do not check attachements even if they are text (but attached as file)
  258. * Do not die if write (2) returned ENOSPACE while doing logging, turn on throttling mode instead (1 write try in a second)
  259. * Add ability to turn on debug for specific symbols
  260. * Add ability to configure dns timeouts and dns retransmits in config file
  261. * More debug
  262. * Fix extracting arguments in lua logger interface
  263. * Turn off debug_ip during reload if it was disabled by new config
  264. * Improve lua logging
  265. * Pre-init symbols cache when rereading config
  266. * Fix lua representing of invalid ip (nil, not 255.255.255.255)
  267. * Fix R_TO_SEEMS_AUTO rule (by citrin)
  268. * Add multimap lua plugin
  269. * Fix some multimap issues
  270. * Try to save images hashes to fuzzy storage to stop some annoying spammers
  271. * Allocate some more bytes for read buffer to avoid incorrect behavoiur
  272. * Add ability to check dns black lists by multimap module
  273. * Add multimap documentation
  274. * Fix labels parsing
  275. * Another try to save regexps in cache correctly
  276. * Improve test logs for regexps
  277. * Fix parsing txt records to avoid reading of uninitialized data
  278. * Fix error with writing symbols cache file
  279. * Fix error while working in utf mode when raw regexps was not created properly
  280. * Do not add extra byte while converting text to utf
  281. * Add error handling for regexps