Nelze vybrat více než 25 témat Téma musí začínat písmenem nebo číslem, může obsahovat pomlčky („-“) a může být dlouhé až 35 znaků.

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091929394959697989910010110210310410510610710810911011111211311411511611711811912012112212312412512612712812913013113213313413513613713813914014114214314414514614714814915015115215315415515615715815916016116216316416516616716816917017117217317417517617717817918018118218318418518618718818919019119219319419519619719819920020120220320420520620720820921021121221321421521621721821922022122222322422522622722822923023123223323423523623723823924024124224324424524624724824925025125225325425525625725825926026126226326426526626726826927027127227327427527627727827928028128228328428528628728828929029129229329429529629729829930030130230330430530630730830931031131231331431531631731831932032132232332432532632732832933033133233333433533633733833934034134234334434534634734834935035135235335435535635735835936036136236336436536636736836937037137237337437537637737837938038138238338438538638738838939039139239339439539639739839940040140240340440540640740840941041141241341441541641741841942042142242342442542642742842943043143243343443543643743843944044144244344444544644744844945045145245345445545645745845946046146246346446546646746846947047147247347447547647747847948048148248348448548648748848949049149249349449549649749849950050150250350450550650750850951051151251351451551651751851952052152252352452552652752852953053153253353453553653753853954054154254354454554654754854955055155255355455555655755855956056156256356456556656756856957057157257357457557657757857958058158258358458558658758858959059159259359459559659759859960060160260360460560660760860961061161261361461561661761861962062162262362462562662762862963063163263363463563663763863964064164264364464564664764864965065165265365465565665765865966066166266366466566666766866967067167267367467567667767867968068168268368468568668768868969069169269369469569669769869970070170270370470570670770870971071171271371471571671771871972072172272372472572672772872973073173273373473573673773873974074174274374474574674774874975075175275375475575675775875976076176276376476576676776876977077177277377477577677777877978078178278378478578678778878979079179279379479579679779879980080180280380480580680780880981081181281381481581681781881982082182282382482582682782882983083183283383483583683783883984084184284384484584684784884985085185285385485585685785885986086186286386486586686786886987087187287387487587687787887988088188288388488588688788888989089189289389489589689789889990090190290390490590690790890991091191291391491591691791891992092192292392492592692792892993093193293393493593693793893994094194294394494594694794894995095195295395495595695795895996096196296396496596696796896997097197297397497597697797897998098198298398498598698798898999099199299399499599699799899910001001100210031004100510061007100810091010101110121013101410151016101710181019102010211022102310241025102610271028102910301031103210331034103510361037103810391040104110421043104410451046104710481049105010511052105310541055105610571058105910601061106210631064106510661067106810691070107110721073107410751076107710781079108010811082108310841085108610871088108910901091109210931094109510961097109810991100110111021103110411051106110711081109111011111112111311141115111611171118111911201121112211231124112511261127112811291130113111321133113411351136113711381139114011411142114311441145114611471148114911501151115211531154115511561157115811591160116111621163116411651166116711681169117011711172117311741175117611771178117911801181118211831184118511861187118811891190119111921193119411951196119711981199120012011202120312041205120612071208120912101211121212131214121512161217121812191220122112221223122412251226122712281229123012311232123312341235123612371238123912401241124212431244124512461247124812491250125112521253125412551256125712581259126012611262126312641265126612671268126912701271127212731274127512761277127812791280128112821283128412851286128712881289129012911292129312941295129612971298129913001301130213031304130513061307130813091310131113121313131413151316131713181319132013211322132313241325132613271328132913301331133213331334133513361337133813391340134113421343134413451346134713481349135013511352135313541355135613571358135913601361136213631364136513661367136813691370137113721373137413751376137713781379138013811382138313841385138613871388138913901391139213931394139513961397139813991400140114021403140414051406140714081409141014111412141314141415141614171418141914201421142214231424142514261427142814291430143114321433143414351436143714381439144014411442144314441445144614471448144914501451145214531454145514561457145814591460146114621463146414651466146714681469147014711472147314741475147614771478147914801481148214831484148514861487148814891490149114921493149414951496149714981499150015011502150315041505150615071508150915101511151215131514151515161517151815191520152115221523152415251526152715281529153015311532153315341535153615371538153915401541154215431544154515461547154815491550155115521553155415551556155715581559156015611562156315641565156615671568156915701571157215731574157515761577157815791580158115821583158415851586158715881589159015911592159315941595159615971598159916001601160216031604160516061607160816091610161116121613161416151616161716181619162016211622162316241625162616271628162916301631163216331634163516361637163816391640164116421643164416451646164716481649165016511652165316541655165616571658165916601661166216631664166516661667166816691670167116721673167416751676167716781679168016811682
  1. 1.2.8:
  2. * Another fix for exim workaround (#637)
  3. * Fix unencrypted passwords processing in the controller
  4. * Fix setting path for lua (#652)
  5. * Fix usage of rdns reply structure (#654)
  6. * Use file lock in logger to avoid deadlocks
  7. * Add `application/octet-stream` mime type for `pdf` extension (by @moisseev)
  8. * Implement new automata to skip empty lines for dkim signing (#651)
  9. * Fix parsing of missing classes
  10. * Clarify some rspamc arguments (by @fatalbanana)
  11. * Correct suppress spelling
  12. 1.2.7:
  13. * Slightly reduce weights of rules with high FP rate
  14. * Add workround for rspamd-1.3
  15. * Fix possible FP in TRACKER_ID rule
  16. * Simplify MISSING_MIMEOLE rule
  17. * Add workaround for gmime CTE stupidity
  18. * Fix mime headers processing
  19. * Fix false positive URL detections in text parts
  20. * Fix Exim shutdown patch
  21. * Enable workaround for exim mailbox format
  22. * Backport shingles static test
  23. * Fix levenshtein distance calculations
  24. * Fix max_train setup in ANN module
  25. * Fix redis structure by adding {NULL, NULL} member
  26. * Fix build with unmodified LibreSSL opensslv.h
  27. * Repair optional dependencies
  28. * Really skip filters in case of pre-result set
  29. * Restore the intended pre-filters behaviour
  30. * Fix ipv6 mask application
  31. 1.2.6:
  32. * Fix parsing of URLs in texts
  33. * Fix creating of URLs from LUA
  34. * Fix some more URL detector issues
  35. * Fix unit tests
  36. * Fix JIT compilation for PCRE2 expressions
  37. * Fix JIT usage for PCRE2
  38. * Fix UTF8 mode in PCRE2
  39. * Add workaround for pre-historic compilers (#605)
  40. * Fix and rescore R_PARTS_DIFFER logic
  41. * Properly set lua paths for tests
  42. * Fix SA rawbody processing - exclude top part
  43. * Store text parts content with newlines stripped
  44. * Properly support SA body regexps
  45. * Fix body rules in SA plugin
  46. * Fix setting of score for parts differ
  47. * More fixes to parts distance calculations
  48. - Use hashed words instead of full words for speed
  49. - Improve levenstein distance calculations and penalise replaces
  50. - Always return number from 0 to 1
  51. - Use g_malloc instead of alloca
  52. * Fix percents output in R_PARTS_DIFFER
  53. * Plug memory leak in dkim module
  54. * Plug minor memory leak in regexps creation
  55. 1.2.5:
  56. * Plug an important memory leak in headers getting code
  57. * Remove some bad domains from whitelists
  58. 1.2.4:
  59. * Implement new multipattern matcher that uses hyperscan if possible
  60. * Use mutlipattern for lua_trie code
  61. * Add utility methods for multipattern
  62. * Use multipattern in url matcher
  63. * Add escape functions for hyperscan
  64. * Allow to optimize lua -> C transition by flattening table args
  65. * Optimize hot paths in SA plugin
  66. * Optimize rspamd_re_cache_type_from_string
  67. * Allow empty tries
  68. * Fix extraction of URLs from Subject
  69. * Allow to have different flags for different patterns in multipattern
  70. * Add common directory for hyperscan cache to config
  71. * Implement caching for hyperscan multipattern
  72. * Attach domain part to `R_SUSPICIOUS_URL` (by @moisseev)
  73. * Allow multipattern scans to be nested for the case of hyperscan
  74. * Simplify SURBL redirector search code and avoid ac_trie
  75. * Add two way substring search algorithm
  76. * Avoid acism usage to find gtube pattern
  77. * Fix processing of empty headers
  78. * Allow to disable pthread mutexes on broken platforms
  79. * Make web interface not send password in query strings (#585) by @fatalbanana
  80. * Add maximum delay to ratelimit module
  81. * Backport fix for empty files inclusion from libucl
  82. * Fix settings id setup
  83. * Add min_learns option to classifiers
  84. * Use more clever to utf8 conversion strategy
  85. * Fix disabling of virtual symbols in the settings
  86. * Rework settings to work properly in metric-less configuration
  87. * Set the default limit for classifier
  88. * Fix ttl based expiration from LRU cache
  89. * Rework DKIM module to use OpenSSL for digests
  90. * Fix mailto urls parsing with hyperscan
  91. * Do not set obscured flag for urls starting with spaces
  92. * Fix crash on redis learn
  93. * Fix ratelimit ctime setting
  94. 1.2.3:
  95. * New DCC module (by @smfreegard)
  96. * Rework whitelist module:
  97. - Now we check different elements for different checks
  98. - MIME from for DMARC
  99. - DKIM signature domain for DKIM
  100. - SMTP from or HELO for SPF
  101. * Fix regexps results combination (*critical*)
  102. * Fix issue with expressions processing (*critical*)
  103. * Optimize strlcpy for aligned input
  104. * Add support of half-closed connection in lua_tcp
  105. * Allow to print compact json in client
  106. * Save required score in history (#581)
  107. * Allow to attach file descriptors to control commands
  108. * Allow to send descriptors from workers to main
  109. * Allow to attach fd when broadcasting to workers
  110. * Implement log pipe feature for rspamd logs analysis
  111. * Add `log_helper` worker
  112. * Add `URIBL_SBL_CSS` (by @smfreegard)
  113. * Add worker scripts functionality
  114. * Add on load hooks for rspamd_config
  115. * Add lua scripts for log_helper worker
  116. * Add generic maillist detector (#584)
  117. * Implement FANN autolearn using log_helper worker
  118. * Rework metrics configuration to allow includes
  119. * Change default value of forced removal in composite rules
  120. * Allow to use assembly version of blake2b on x86 cpu
  121. * Use less precise (but faster) clock if possible
  122. * Insert redirected URL to the urls list
  123. * Allow to get and set callback data for rspamd symbols
  124. * Add binary heap implementation
  125. * Use binary heap for expire algorithms in the hash
  126. * Use `least frequent used` expiration strategy
  127. * Allow to get mime headers from a task
  128. * Add support for mime headers in `regexp` module
  129. * Update Exim patches (by @fatalbanana)
  130. * Allow building rspamd with jemalloc
  131. * Save multipart boundaries
  132. * SA plugin changes:
  133. - Properly handle MIME headers
  134. - Fix eval:check_for_missing_to_header rule
  135. - Implement SA compatible body regexps
  136. - Use sabody rules in SA plugin
  137. * LUA API changes:
  138. - Add util.get_ticks function
  139. - Add util.stat function
  140. - Add task:get_symbols_numeric method
  141. - Add method to get number of symbols in the cache
  142. - Add lua methods to get redirected urls
  143. - Allow to get callbacks for lua symbols
  144. - Add config:set_symbol_callback function
  145. 1.2.2:
  146. * Use HTTP Content-Type on non mime input if possible
  147. * Save log level when compressing log messages
  148. * Further rework of composite rules (add '^' prefix)
  149. * Add tracking for rspamd expressions
  150. * Store actions limits in metric result
  151. * Fix parsing of include/redirect with many records in SPF
  152. * Add method to disable symbols execution in the cache
  153. * Allow to disable checks from settings
  154. * Allow to select settings by id in HTTP query
  155. * Find URLs with '\r' and '\n' inside href attribute
  156. * Implement vectored mode for hyperscan (experimental)
  157. * Improve client connection errors diagnostics
  158. * Allow to edit new files with signtool
  159. * Improve hashes performance on 32 bit platforms
  160. * Fix sorting of limits
  161. * Remove slow and unused rules `INVALID_EXIM_RECEIVED*`
  162. * Add expression:process_traced lua method
  163. * Allow tables in task:insert_result
  164. * Save trace for SA metas
  165. * Do not parse broken TLD parts in URLs
  166. * Investigate many border cases in URLs parser
  167. 1.2.1:
  168. * Add list support to `mime types` module configuration (by @moisseev)
  169. * Allow symbols params to be printed in logs
  170. * Fix `MIME_BAD_ATTACHMENT` false positives for MDN/DSN
  171. * Fix crashes on arm32
  172. * Do not classify message if some class is missing
  173. * Fix cryptobox cleanup
  174. * Remove multipart/report from bad mime types (#569)
  175. * Improve logging for fuzzy hashes
  176. * Show map URLs in webui
  177. * Sort symbols in webui
  178. 1.2.0:
  179. * New dynamic updates plugin
  180. * Regular expressions map support
  181. * Faster radix trie algorithm
  182. * Faster siphash for AVX2 supporing CPUs (used in fuzzy hashes)
  183. * PCRE2 support
  184. * Allow quoted and slashed keys in map
  185. * Add proper support of DNS resolvers balancing (#552)
  186. * Rework includes and configuration system for better local changes support
  187. * New keypairs framework for signing and encryption
  188. * Added support for dynamic modules and workers
  189. * Allow to dump configuration with help comments
  190. * Rework once_received module
  191. - Fix priority for `good_hosts`
  192. - If a good host has been found do not add once_received symbols
  193. - Fix priorities for strict once_received
  194. - Add ability to whitelist IP addresses
  195. * Implement support of signed maps for HTTP and file maps
  196. * Add command to sync fuzzy storage (#533)
  197. * Rework system of symbols and actions registration
  198. It is possible now to use priorities when adding symbols to metrics and
  199. override scores for symbols with lower priority with the scores with
  200. high priority.
  201. * Add auth support and db selection for redis stats
  202. * Improve composite rules application
  203. * Add ignore_received option
  204. * Fix critical issue with inconsistent resorting
  205. * Fix `all` in spf redirects
  206. * Add punycoded versions for IDN domains (#554)
  207. * Improve sorting order for symbols cache
  208. * Add lockless logging for processes management
  209. * Allow to specify flags for metric symbols
  210. * Load images height and width from style attribute (#538)
  211. * Override DNS requests limits for SPF and DKIM
  212. * Fix resetting symbols to their default values in WebUI
  213. * Improve configuration agility for redis stats
  214. * Allow to set db and password for redis in stat_convert
  215. * Import the latest libucl
  216. * LUA API changes:
  217. - Add rspamd_version function to LUA API
  218. - Add lua_cryptobox module
  219. - Add lua_map module
  220. - Add task:set_metric_action lua API method
  221. - Fix race condition in lua_tcp module
  222. - Fix a lot of issues in lua_redis module
  223. - Rework and abstract lua maps API
  224. - Add util.strlen_utf8 lua function
  225. - Add lua functions for caseless comparison
  226. - Allow optional symbols registration
  227. - Add config:add_map table form method, add regexp maps
  228. - Add task:has_urls method
  229. - Add task:has_flag method
  230. - Add html tags methods to lua_html
  231. - Add task:get_dns_req
  232. * Plugins changes:
  233. - Add support for WLBLEval SA plugin
  234. - Use caseless comparison in SA and DMARC plugins
  235. - Allow SA plugin to set scores for rspamd symbols
  236. - Add regexp maps support to multimap
  237. - Allow filenames match in multimap
  238. - Add more filters for the existing map types
  239. - Fix html images rules to reduce FP rates
  240. * New rules:
  241. - LONG_SUBJ - too long subject
  242. - MIME_BAD_ATTACHMENT - bad attachement type
  243. - RDNS_NONE - no reverse DNS record for sender's IP
  244. - Fix MISSING_MIMEOLE rule for modern OE
  245. * Many other bugfixes, memory leaks plugs thanks to:
  246. - Coverity scan
  247. - New gcc-6 warnings
  248. - valgrind manual iterations
  249. * Documentation improvements:
  250. - FAQ list: https://rspamd.com/doc/faq.html
  251. - Reworked quick start guide
  252. - Added documentation for all active modules
  253. * Other changes:
  254. - Dropped Ubuntu Vivid support
  255. - Added Ubuntu Xenial support
  256. - Rework build system for rspamd and rmilter
  257. 1.1.4:
  258. * Print traceback on lua errors in lua config
  259. * Fix leaks in lua error paths
  260. * Improve 'R_EMPTY_IMAGE' rule
  261. * Fix metas memoization in SA plugin
  262. * Properly set `flag` in fuzzy replies
  263. * Fix arguments order
  264. * Fix issue with out-of-boundary reading
  265. * Fix issues found by coverity
  266. * Same result checking error found by coverity
  267. * Fix varargs processing (found by coverity)
  268. * Fix error in printing hex
  269. * Reduce weights for some hfilter patterns
  270. * Add aliases for task:get_from_ip:
  271. - task:get_addr
  272. - task:get_from_addr
  273. - task:get_ip
  274. * Rework once_received module
  275. - Fix priority for `good_hosts`
  276. - If a good host has been found do not add once_received symbols
  277. - Fix priorities for strict once_received
  278. - Add ability to whitelist IP addresses
  279. * Fix `MISSING_MIMEOLE` rule for modern OE
  280. * Treat meta tags as embedded tags (#501)
  281. 1.1.3:
  282. * Fix DSN rules when SMTP from is unavailable
  283. * Fix statconvert routine to avoid lua module usage
  284. * Set a sane quark for configtest to avoid NULL to be printed in logs
  285. * Support c11 if available
  286. * Fix parsing of ip:port strings
  287. * Add more diagnostic for lua subr errors
  288. * Fix task:set_from_ip lua method
  289. * Add basic routines for digital signatures
  290. * Add tool for digital signatures
  291. * Add plain open file API method for atomic open
  292. * Fix parsing nested braces inside logger vars
  293. * Pre filters now actually skip processing
  294. * Add pre-filter mode for multimap
  295. * Switch to apache 2 license
  296. 1.1.2:
  297. * Fix stat_cache closing
  298. * Add checkpoints to sqlite3 learn cache
  299. * Do not recompile lua generated headers all the time
  300. * Increase number of messages learned
  301. * Fix issues with dual stack and hfilter
  302. * Disable MID checks for hfilter by default
  303. * Fix cache definitions in multiple classifier and no type
  304. * Don't crash if learn cache failed to initialize
  305. * Fix googlegroups support in maillist plugin
  306. * Rework flags LUA API:
  307. - Allow to check for a specific flag
  308. - Add `learn_spam`, `learn_ham` and `broken_headers` flags
  309. - Unify internal functions
  310. * Add `BROKEN_HEADERS` rule
  311. * Add support for forged confirmation headers (by @AdUser)
  312. * Allow `any`, `mime` and `smtp` for get_from/get_recipients
  313. * Add mime types checking plugin
  314. * Add rule to detect spammers attempts to cheat mime parsing
  315. * Rework parsing of IP addresses in configuration (better IPv6 support)
  316. * Add `util.parse_mail_address` function to LUA API
  317. * Add lua sqlite3 module
  318. * Implement synchronous redis call
  319. * Ratelimit: avoid possible indexing of nil value (Fixes #498) (by @fatalbanana)
  320. * Add stat_convert command to convert stats tokens from sqlite3 to redis
  321. * Implement redis advanced lua api with pipelining
  322. * Fix memory leak on redis stat (#500)
  323. * Fix user/language learn count in sqlite statistics (#496) (by @fatalbanana)
  324. * Fix build with custom pcre
  325. * Fix fuzzy relearning (#498)
  326. * Improve planning of asynchronous tasks
  327. * Show slow rules in log
  328. * Add warning for slow regexps
  329. * Add base32 decode/encode routines to lua util
  330. * Allow converting of learn cache from sqlite to redis
  331. * Add methods to check if a messages has from/rcpts
  332. * Improve and fix multimap plugin:
  333. - Restore 'header' maps
  334. - Add filters for headers
  335. - Add 'email:addr', 'email:user', 'email:domain' and 'email:name' filters
  336. - Add generic regexp filters
  337. * Disable reload command in rc scripts
  338. * Improve runtime CPU dispatcher for libcryptobox
  339. * Add preliminary support of digital signatures via ed25519
  340. * Add detection for RDRAND support
  341. * Print configuration of crypto on start
  342. * A in SPF presumes AAAA lookup as well
  343. 1.1.1:
  344. * Fix duplicated XBL symbol
  345. * Reduce log severity for ratelimit missing servers
  346. * Fix XBL composite to avoid duplicate symbols
  347. * Reduce weight of URL_ONLY rule due to FP rate
  348. * Disable fuzzy hashes from the metadata for now
  349. * Fix processing of empty messages (#486)
  350. * Always treat DNS timeouts as temporary fail for SPF
  351. * Fix issue with SPF double IP stack (#483)
  352. * Use X-Forwarded-For when checking secure_ip (#488)
  353. * Fix hash calculation for sqlite stats
  354. * Fix memory corruption on punycode
  355. * Fix strings allocation in punycode
  356. * Fix error message (#491)
  357. 1.1.0:
  358. * Incompatible change: sqlite3 and per_user behaviour:
  359. Now both redis and sqlite3 follows the common principles for per-user
  360. statistics:
  361. 1) If per-user statistics is enabled check per-user tokens ONLY
  362. 2) If per-user statistics is not enabled then check common tokens ONLY
  363. If you need old behaviour, then you'd need to use separate classifier
  364. for per-user statistics.
  365. * Implement redis statistics backend and cache
  366. * Implement autolearning for statistics
  367. * Reworked statistics architecture from scratch
  368. * Add hyperscan (https://github.com/01org/hyperscan) engine for regular
  369. expressions:
  370. - add lazy loader for hyperscan databases
  371. - rework regexp cache to have joint pcre/hyperscan scanning
  372. - implement hyperscan pre-filter support
  373. - add compilation guards for bad expressions
  374. - implement `rspamadm control recompile` command
  375. - implement hyperscan cache monitoring
  376. - slides: <https://highsecure.ru/rspamd-hyperscan.pdf>
  377. * Implement flexible task logging
  378. * Rework fuzzy worker:
  379. - it is now possible to run multiple fuzzy workers;
  380. - implement lazy writing as sqlite3 is bad at concurrent writing;
  381. - add retries for simple sql commands in fuzzy backend;
  382. - use fine-grained transactions for fuzzy;
  383. - implement new multi-pubkeys mode;
  384. - allow encrypted only storages;
  385. - rework statistics for fuzzy;
  386. - add `rspamadm control fuzzystat` command for extended statistics;
  387. - implement human readable output for the previous command;
  388. - add condition script for learning fuzzy storage;
  389. * Various fixes to SPF:
  390. - fix `redirect` records;
  391. - fix domains when parsing mx/ptr/a records in includes/redirects;
  392. - fix issues with multiple addresses in SPF records;
  393. - ignore SPF results in case of DNS failure;
  394. - adjust TTL of records when resolving subelements of SPF records;
  395. - always select `v=spf1` line if it is available
  396. - do not cache records with DNS failure in subrequests;
  397. - ignore records with temporary fails during subrequests resolving;
  398. - fix `RDNS_RC_NOREC` support;
  399. * Add clang plugin for static analysis:
  400. - implement static checks for `rspamd_printf` format strings;
  401. * Add 'allow_raw_input' option for non-mime messages
  402. * Recognize types using libmagic
  403. * Fix parsing of IPv6 received headers
  404. * Add new interface of communication between workers in rspamd
  405. * Add support for named socketpairs
  406. * Don't write URLs by default as it is too verbose
  407. * Set status for HTTP replies
  408. * Try load `rspamd.conf.override`
  409. * Implement words decaying for text parts to limit many checks
  410. * Improve support of SA rules and plugins:
  411. - add check_for_shifted_date and check_for_missing_to_header eval rules;
  412. - add 'check_relays_unparseable' support;
  413. - add `check_for_mime('mime_attachement')` function;
  414. - use new re_cache interface for all SA rules;
  415. - add support for `Mail::SpamAssassin::Plugin::MIMEHeader`;
  416. - add support of 'special' SA headers to `exists` function;
  417. - fix issue when SA metas contain other metas;
  418. - fix freemail rules;
  419. * Many fixes to the URL parser
  420. * Match any newline character in regexps
  421. * Fix resolving of upstreams and detection of poor IPv6 configurations
  422. * Parse upstreams selection algorithm from the configuration line
  423. * Add `reresolve` command to the control interface
  424. * Generate fuzzy hashes from task metadata (URLs and headers)
  425. * Add method to check if IP is local and `local_addrs` option
  426. * Implement forced timeout for delayed filters
  427. * Disable fast path of pcre-jit as it seems to be broken
  428. * Bayes fixes:
  429. - new normalizer function;
  430. - really use weights of tokens from the OSB algorithm;
  431. - restore multiple classifiers support;
  432. * Rules changes:
  433. - add `R_SUSPICIOUS_URL` rule that detects obfuscated URL's;
  434. - improve empty image rule;
  435. - rework `FORGED_RECIPIENTS` rule;
  436. - reduce weight of `SUSPICIOUS_RECIPS`;
  437. - fix `*_NORESOLVE_MX` symbols in hfilter;
  438. - add `SUBJ_ALL_CAPS` rule with support of UTF8
  439. - add spamhaus SBL to uribl
  440. - fix `SUSPICIOUS_RECIPS` and `SORTED_RECIPS` rules
  441. - remove `R_TO_SEEMS_AUTO` as it generates a lot of FP;
  442. - add new Message-ID regexp for Thunderbird (by @moisseev);
  443. * Plugins changes:
  444. - allow ratelimit plugin to set symbol instead of pre-result
  445. - support IP DNS black lists for URIBL (e.g spamhaus SBL);
  446. - drop deprecated SURBL bits (by @fatalbanana)
  447. - rename `JP_SURBL_MULTI` to `ABUSE_SURBL` (by @fatalbanana)
  448. - add `SURBL_BLOCKED` (by @fatalbanana)
  449. - add `CR_SURBL`
  450. - SURBL: allow fallthrough to default symbol (by @fatalbanana)
  451. - Settings: fix IP match (by @fatalbanana)
  452. - SURBL: add missing symbols to metric (by @fatalbanana)
  453. - allow processing images urls for SURBL
  454. - unconditionally disable SPF for authenticated users and local networks
  455. * Rework ratelimit plugin
  456. - switch to `rates` instead of old and stupid strings to setup;
  457. - check if a bucket is zero and disable the corresponding limits'
  458. - turn off all buckets by default;
  459. - check either `rcpt` or `user` buckets, not all together'
  460. - document new `rates` and `symbol` options;
  461. - inform user about what buckets are used in the configuration;
  462. * Add neural network **experimental** plugin
  463. * Add a sample script to learn neural network from rspamd logs
  464. * Add documentation strings support to rspamd:
  465. - add strings for the main configuration options;
  466. - document workers options;
  467. - add internal plugin options;
  468. - create `rspamadm confighelp` routine;
  469. - implement human readable output for the previous command;
  470. - add subtree search support;
  471. - add keyword search support;
  472. * Documentation improvements, tutorials section, statistics description
  473. * Many other minor and major bugfixes not noted here
  474. 1.0.11:
  475. * Fix spf redirects
  476. * Fix domains when parsing mx/ptr/a records in includes/redirects
  477. * Fix unfolded base64 encoding
  478. * Fix GError use-after-free
  479. * Do not rewrite the original url when using redirector
  480. * Fix parsing of fragment in urls
  481. * Fix processing of HTML tags
  482. * Improve empty image rule
  483. * Avoid long double type
  484. * Fix tokens weights in OSB algorithm
  485. * Improve debugging for bayes
  486. 1.0.10:
  487. * Fix settings application (#416)
  488. * Fix another issue with fixed strings
  489. * Fix hash function invocation
  490. * Use the proper string for make_dns_request in lua_http
  491. * Fix scan time output
  492. * Update webui:
  493. - fix labels for greylisting
  494. - fix dimension of scan time
  495. 1.0.9:
  496. * Emergency fix in keyed blake2 to fix fuzzy hashes and encrypted password
  497. * Support passwords longer than 64 symbols
  498. 1.0.8:
  499. * Add function to traverse AST atoms
  500. * Allow dependencies on rspamd symbols for SA metas
  501. * Fix memory corruption when timeout is removed in fuzzy check
  502. * Fix encrypted fuzzy add processing
  503. * Avoid use-after-free in controller session destructor
  504. * Use session pool instead of task pool in fuzzy check
  505. * Fix assembly in i386 mode (#413, #412)
  506. 1.0.7:
  507. * Plugged memory leaks in internet address object & html parser
  508. * Fixed static build
  509. * Fixed multiple sigchld processing
  510. * Fixed deletion of signal events after event processing loop
  511. * Fixed build on ARM (#404 - reported by @Gottox)
  512. * Fixed setting the default mask for SPF.
  513. * Fixed sanitisation of HTTP query values
  514. * Fixed parsing of the last header in encrypted HTTP messages
  515. * Additions and fixes for test suite & benchmarks
  516. * Added openssl aes-256-gcm support to libcryptobox & HTTP server
  517. * Implemented support for starting multiple HTTP servers
  518. * Implemented batch accept in HTTP server
  519. * Added module to get data from HTTP headers (#285 - reported by @msimerson)
  520. * Added `rspamadm control` command
  521. * Added ability to sort counters output.
  522. * Added ability to specify custom headers for rspamc client
  523. * Fix architecture detection
  524. * Converted history storage to the UCL format
  525. * Allow flexible number of rows in history
  526. * Fix action badges in WebUI
  527. * Add universal cryptobox hash API
  528. * Migrated to the optimized blake2b implementation adopted from Andrew Moon
  529. * Allow explicit loading of specific modules
  530. * Always load settings module
  531. * Allow to add symbols from settings
  532. * Fix double free in the controller fuzzy learn command
  533. * Avoid endless loop when cannot open sqlite db
  534. * Updated libucl
  535. 1.0.6:
  536. * Fix build on i386
  537. * Update CentOS7 service file patch (by @fatalbanana)
  538. * Fix path to rspamadm in Debian init script (by @fatalbanana)
  539. * Fix broken '_SC_GETPW_R_SIZE_MAX' on FreeBSD
  540. * Fix portability issues
  541. * Use cryptobox chacha for libottery
  542. * Better support of 32 bit builds
  543. * Fix header name tokens setup
  544. * Fix levenstein distance method for words
  545. * Add workaround for old libevent (#400)
  546. * Fix microseconds in termination timer
  547. * Fix some more issues with fixed strings
  548. * Explicitly test CPU instructions even after CPUID call
  549. * Do not check out of boundary memory
  550. * Do not output broken emails
  551. * Fix unknown symbols registration
  552. * Handle SIGILL using longjmp
  553. * Block signals when exiting event loop
  554. * Fix incorrect allocation size
  555. * Slightly optimize alignment
  556. * Restore rspamd -t for compatibility
  557. * Add more sanity checks for emails
  558. 1.0.5:
  559. * Add rspamd control interface:
  560. - support `stat` command to get runtime stats of rspamd workers
  561. - support `reload` command to reload runtime elements (e.g. sqlite3 databases)
  562. * Rework curve25519 library for modular design:
  563. - add Sandy2x implementation by Tung Chou
  564. - fix CPU detection for variables loading assembly
  565. - add testing for curve25519 ECDH
  566. * New fixed strings library
  567. * Add `R_SUSPICIOUS_IMAGES` rule
  568. * Enable mmap in sqlite3
  569. * Use new strings in the HTTP code
  570. * Improve google perftools invocation
  571. * Improve performance profiling in http test
  572. * Reorganize includes to reduce namespace pollution
  573. * Allow specific sections printing in configdump command
  574. * Rework workers signals handlers to be chained if needed
  575. * Update socketpair utility function
  576. * Add control_path option for rspamd control protocol
  577. * Fix ownership when listening on UNIX sockets
  578. * Rework signals processing in main
  579. * Remove extra tools from rspamd (they live in rspamadm now)
  580. * Remove global rspamd_main
  581. * Add global timeout for the overall task processing (8 seconds by default)
  582. * Sanitize NULL values for fuzzy backend
  583. * Store NM between encrypt/decrypt
  584. * Add textpart:get_words_count method
  585. * Fix generic DNS request in lua
  586. * Tune hfilter weights
  587. * Add support of IPv6 in hfilter
  588. * Fix parsing of HTTP headers with IP addresses
  589. * Sync with the recent libucl
  590. * Various minor bugfixes
  591. 1.0.4:
  592. * Add configdump routine to rspamadm
  593. * Implement retransmits for fuzzy_check plugin
  594. * Fix events processing for learning anf checking fuzzy hashes
  595. * Avoid dependency on unneeded and uncompatible glib include
  596. * Add `historyreset` command to the controller
  597. * Fix loading of tokenizer config from dump (#389)
  598. * Add sorting hints for the history
  599. * Allow custom lua scripts for users/languages extraction (#388)
  600. * Do not add FORGED_RECIPIENTS when 'To' is missing (#387)
  601. * Do not add R_UNDISC_RCPT when 'To' is missing (#387)
  602. * Add encryption to fuzzy check plugin
  603. * Add encryption for fuzzy storage
  604. * Add new epoch for encrypted fuzzy request
  605. * Add encryption for `rspamd.com` storage
  606. * Remove gmime processing for LDA mode as it is deadly broken
  607. * Add routine to find end of headers position in mime messages
  608. * Fix LDA headers folding
  609. * Init libraries in rspamc client as well to avoid locale issues
  610. * Avoid collision with locally installed includes
  611. * Allocate and free memory with the same allocator in rspamadm (#385)
  612. * Preserve expired fuzzy hashes counter
  613. * Improvements in webui:
  614. - Add favicon.ico
  615. - Rework history table
  616. - Fix sorting for the history
  617. - Migrate to bootstrap 3 and jquery 2
  618. - Fix css bugs
  619. - Add glyphicons
  620. - Add reset history
  621. - Improve history buttons
  622. - Redraw graph to avoid display issues
  623. - Webui is now MIT licensed to match licensing policy of rspamd
  624. 1.0.3:
  625. * Fix piechart clean slice (#380)
  626. * Fix controller crashes when GString is reallocated (#381)
  627. * Correctly set locale before start
  628. * Set C locale for numeric values
  629. * Add rspamadm routine:
  630. - add `pw` command to manage passwords
  631. - add `help` command for displaying help
  632. - add `configtest` command to check configuration files
  633. - add `keypair` command for generating encryption keys
  634. - add `fuzzy_merge` routine to merge fuzzy sqlite databases
  635. - add a simple manual page for rspamadm
  636. * Allow metric registration for composite expressions
  637. * Add strict mode for configtest
  638. * Add logger counters
  639. * Save and show learned messages count (#383)
  640. * Add `no_stat` flag
  641. * Add `task:set_flag` and `task:get_flags` (#382)
  642. * Enable foreign keys in sqlite3
  643. * Remove orphaned shingles from fuzzy storage
  644. * Optimize synchronization steps for fuzzy storage
  645. * Allow delayed conditions registration
  646. * Add lua API for conditions registering
  647. 1.0.2:
  648. * Fix critical bug in webui that prevents password from being sent
  649. * Rework webui view:
  650. - Switch to d3.js for graphs
  651. - Improve piechart look
  652. - Rework colors for piechart
  653. - Fix layout for symbols
  654. - Fix refresh button
  655. * Add descriptions for whitelist maps
  656. * Fix build on arm (#379)
  657. * Fix issue with the last element in the radix trie
  658. * Add more tests for radix trie algorithm
  659. * Allow to extract URLs from query strings of other URLs (#361)
  660. * Initialize rrd fields before writing to file
  661. * Fix double free if no password has been specified
  662. 1.0.1:
  663. * Add writing to rrd from the controller
  664. * Fixed lots of bugs in rrd code
  665. * Adopt new DNS API in hfilter plugin (by @AlexeySa)
  666. * Allow only one controller process to manage rrd file
  667. * Set event base for fuzzy calls
  668. * Improve fuzzy IO errors logging
  669. * Add rra extraction function to rrd library
  670. * Add graph handler to the controller
  671. * Cache correct passwords to avoid too high CPU usage when working with webui
  672. * Controller sockets are owned by router do not export them to task
  673. * Optimize logging by skipping hash table search if it's empty
  674. * Fix loading issue whith broken statfiles
  675. * Print assertions from glib to rspamd logger
  676. * Load legacy `lua/rspamd.local.lua`
  677. * Update webui with some fixes to learning and scanning
  678. 1.0.0:
  679. * Rework symbols processing:
  680. - Improve sorting logic for symbols
  681. - Organize processing into multiple stages
  682. - Added asynchronous watchers for symbols
  683. - Added ability to organize dependencies between symbols
  684. * Fixed URL redirector:
  685. - Use optimized POE loop
  686. - Organize dependencies
  687. - Fix startup
  688. * New sqlite3 backend:
  689. - Allow to have per-languages and per-user statistics
  690. - Allow sqlite3 to be used as statistics backend
  691. * Store tokenizer configuration within statfiles
  692. * Improve bayes statistics:
  693. - Use headers and images metainformation in bayes
  694. - Suggest using of pre-processed tokens for statistics
  695. - Fix tokens normalization for OSB algorithm
  696. * Rewrite url parsing:
  697. - Fix numerous issues with url extraction and normalization
  698. - Fix mailto urls
  699. * Fix settings plugin to allow custom actions scores
  700. * Improve rbl plugin
  701. * Allow capturing patterns in rspamd lua regexp library
  702. * Add GTUBE support
  703. * Fix spamc legacy support
  704. * Add DKIM support to RBL module
  705. * Fix issues with multiple DKIM signatures
  706. * Fix issue if rspamd cannot create statfiles (#331)
  707. * Rework parts and task structure:
  708. - Now text_parts, parts and received are arrays
  709. - Pre-allocate arrays with some reasonable defaults
  710. - Use arrays instead of lists in plugins and checks
  711. - Remove unused fields from task structure
  712. - Rework mime_foreach callback function
  713. - Remove deprecated scan_milliseconds field
  714. * Add ip_score plugin support (not enabled by default):
  715. - Can check for asn/country and network using DNS lookups
  716. - Can store and load reputation from redis server
  717. * Improve PARTS_DIFFER rule to count merely different words
  718. * New HTML parser:
  719. - Parses HTML parts using a set of state machines
  720. - Extracts useful data and exports it to lua functions:
  721. + Styles
  722. + Images
  723. + URLs
  724. + Colors
  725. + Structure elements
  726. - Added HTML rules for some checks
  727. * New version of LUA DNS API
  728. * Table versions of many functions in LUA API
  729. * Improve rspamc client:
  730. - Print execution time
  731. - Allow executing of external commands and passing output to them
  732. - Allow mime output mode when rspamc alters message according to rspamd
  733. checks and send it to an external command or stdout
  734. * Allow scanning of local files using HTTP requests
  735. * Rework configuration system:
  736. - Rules are now moved from the $CONFDIR to $RULESDIR to avoid ambiguity
  737. - All modules configurations are now split in $CONFDIR/modules.d/* to
  738. simplify upgrades
  739. - Move hfilter to plugins
  740. - Allow plugins and rules to define default scores to simplify metrics
  741. setup
  742. - Include overrides for all modules to honor local/automatic parameters
  743. - Tune scores for many modules
  744. * Rework and enable DMARC plugin
  745. * Add whitelist plugin for SPF/DKIM/DMARC based whitelisting
  746. * Add some common domains to whitelists shipped with rspamd
  747. * Rework logging:
  748. - Now each log entry supports module name and a `tag`. Tag is used to
  749. identify unique objects (such as tasks) when checking log files
  750. - It is possible to turn on debugging for the specific modules
  751. - Systemd logging is fixed
  752. * Improve spamassassin plugin.
  753. - Now headers are matched more like SA
  754. - Improve support of Message-ID
  755. - Add support of ToCc header type
  756. - Fix :addr and :name in headers regexps
  757. * Resurrect rrd support code
  758. * Save controller stats between restarts
  759. * Fixed tonns of bugs
  760. * Added tonns of minor improvements and features
  761. * Added more unit tests
  762. * Create functional tests framework
  763. * Added documentation for missing modules
  764. * Added rpm/deb repositories and scripts
  765. * Updated WebUI and libucl externals
  766. 0.9.10:
  767. * Do not dereference null pointer on learning.
  768. * Fix some extreme cases in BAYES.
  769. * Add a workaround to avoid bad HTML messages breaking.
  770. * Build with -O2 flags by default.
  771. * Add constraints to limit DNS requests count per task.
  772. * Add workaround for SURBL DNS flood.
  773. * Set error if rspamd cannot learn anything.
  774. 0.9.9:
  775. * Don't use RWL_SPAMHAUS_WL (unknown result) for whitelisting (by @fatalbanana)
  776. * Import updated public suffix list (by @fatalbanana)
  777. * Remove debug message
  778. * Fix settings (by @fatalbanana)
  779. * Remove duplicated symbol registration
  780. * Use WAL for fuzzy storage
  781. * RBL fixes (by @fatalbanana):
  782. - silence errors;
  783. - yield unknown results from RBLs;
  784. - fix scoring for DNSWL;
  785. - fix use of RBL name as symbol;
  786. - ignore RBL names that would not be yielded;
  787. * Support captures in regular expressions
  788. * Add captures support to lua_regexp
  789. * Support dist on FreeBSD and Darwin
  790. * Add RCVD_IN_DNSWL_NONE as whitelisting exclusion (by @fatalbanana)
  791. * Multiple fixes to URL detection:
  792. - support port definition;
  793. - fix query and path recognition;
  794. - fix parsing of multiple slashes in URL;
  795. - fix parsing query just after port;
  796. - fix path field in `url:to_table` method;
  797. - improve support of IP based URLs.
  798. * Set ignore_whitelists = true for RECEIVED_SPAMHAUS_XBL (by @fatalbanana)
  799. * Add GTUBE support
  800. * Ignore User header in SA mode
  801. 0.9.8:
  802. * Fix critical bug in bayes classifier (#305)
  803. * Fix critical bug in RBL module (by @fatalbanana)
  804. * Fix and rework settings plugin.
  805. * Fix get_all_opts for a case of non-iterable options.
  806. * Use tld for redirector's matching.
  807. 0.9.7:
  808. * Add whitelist_exception setting to RBL module (by @fatalbanana)
  809. * Don't use RWL_MAILSPIKE_POSSIBLE or DNSWL_BLOCKED for whitelisting (by
  810. @fatalbanana)
  811. * Fix extreme cases in bayes classifier.
  812. * Fix parsing of urls with '?' at the end of hostname.
  813. * Update interface.
  814. * Fix number of issues with webui interaction.
  815. * Fix saving maps.
  816. * Allow user@ and @domain matches in multimap.
  817. * Fix issues with bounces From processing.
  818. * Fix abs/fabs misuse.
  819. * Fix builds on suse and arch linux distributions.
  820. 0.9.6:
  821. * Fix memory leak if mime cannot be parsed.
  822. * Fix dkim cache expiration.
  823. * Fix issues with redirector HTTP response.
  824. * Fix abnormal connection closing with certains messages with a high score
  825. (issue #296)
  826. * Fix redirector installation.
  827. * Use specific POE loop for some systems.
  828. * Fix number of issues in URL redirector.
  829. * Fix selecting URLs for sending to redirector.
  830. 0.9.5:
  831. * Avoid double free when extending HTTP message.
  832. * Fix double free if multiple classifiers are defined.
  833. * Fix misprint in spamassassin plugin.
  834. * Fix cpuid invocation on i386.
  835. * Fix ownership issues for zero-copy decode.
  836. * Allow __len metamethod on rspamd{text}.
  837. * Add base64 decoding lua utility.
  838. * Fix build on FreeBSD
  839. * Skip spaces at the beginning of mime messages.
  840. * DBL_ABUSE_REDIR should not have significant weight.
  841. * Allow to split by lua_regexp rspamd{text} objects.
  842. * Allow to specify custom stop pattern for lua_tcp.
  843. 0.9.4:
  844. * Fix critical bugs in tokenization algorithm
  845. * Write unit tests for tokenization
  846. * Add documentation for lua_tcp
  847. * Switch off legacy tokenization by default.
  848. * Fix critical bugs in words normalization
  849. * Add lua bindings to tokenizer.
  850. * Implement storing of HTTP headers inside task
  851. * Add lua API to accerss HTTP headers data
  852. * Implemented base64 encoding suitable for MIME
  853. * Use caseless hash and equal functions for HTTP request headers.
  854. * Improve debian architectures support (by @dottedmag)
  855. 0.9.3:
  856. * Revert incorrect regexp change that broke the default rules
  857. * Fix lua_tcp module
  858. 0.9.2:
  859. * Fix error on spawning unique workers.
  860. * Add preliminary version of generic LUA TCP requests API.
  861. * Use lua 5.1 if luajit is not available (Arm64, PowerPC, s390x etc)
  862. * Fix fuzzy mime strings with only type.
  863. * Improve thunderbird sanity checks.
  864. * Fix critical bug on matching regular expressions.
  865. * Make hiredis optional dependency.
  866. * Fix multiple bugs in daemon reloading
  867. 0.9.1:
  868. * Restore utf8 validation for regular expressions to avoid crashes
  869. * Fix symbols displaying in the interface
  870. * Add symbol groups to the interface
  871. * Fix maps ID parsing in the controller
  872. * Add multimap and regexp modules documentation
  873. * Backport fixes from libucl
  874. * Fix debian package (by @dottedmag)
  875. * Rework XXH32 invocations
  876. 0.9.0:
  877. * Add support of the fast and secure protocol level encryption:
  878. - curve25519 is used for key exchange;
  879. - chacha20/poly1305 cryptobox construction for bulk encryption;
  880. - zero latency overhead;
  881. - encrypting and balancing HTTP proxy worker
  882. * Rework expressions and create new expressions library:
  883. - aggressive optimizations based on the abstract syntax tree;
  884. - abstract expressions support (regular expressions, functions, lua modules
  885. composites and so on)
  886. - New comparision and '+' operators support
  887. - New greedy algorithm to minimize execution time of expressions and
  888. all symbols
  889. - Dynamic expressions benchmark and reoptimizations
  890. * Many improvements to the LUA API:
  891. - reworked logger module allowing to do pretty print of the most of lua
  892. types (including tables and userdata classes)
  893. - reworked lua redis and lua HTTP to support more features
  894. - added opaque type for passing large text chunks without copying
  895. - new regexp module with many auxiliary functions (e.g. `re:split`)
  896. * LuaJIT is now the default requirement for rspamd allowing to speed up lua
  897. execution by a large margin (however, plain lua is still supported)
  898. * New plugins:
  899. - spamassassin rules plugin that allows to load and re-use the most of
  900. SA rules natively
  901. - DMARC plugin that evaluates SPF and DKIM policies to the domain policies
  902. - many old plugins has been reworked to implement new features and improve
  903. stability
  904. * New aho-corasic trie implementation from @mischasan that allows to load and
  905. use hundreds of thousands of patterns with no influence on load
  906. * Support of PCRE JIT and PCRE JIT fast path modes that significantly improves
  907. the performance of regular expressions if supported by PCRE
  908. * New URLs parser and extractor:
  909. - removed legacy code that was useless for url finding
  910. - reworked algorithms of URL parsing for more precise and accurate results
  911. - added top-level-domains tree from http://publicsuffix.org
  912. - improved emails parsing
  913. - removed many phishing false positives due to TLD tree check
  914. * New statistics infrastructure:
  915. - created a separate layer of statistic library
  916. - improved OSB-Bayes by re-weighting tokens according to the original
  917. academic paper and `crm114` implementation, which reduced false positives
  918. rate significantly
  919. - created learn cache to avoid double learning of statistics and providing
  920. an efficient way to re-learn class for a message
  921. - created abstract layers for different statistics backends
  922. - implemented new tokenization algorithms with fast or secure (siphash)
  923. hashes to generate statistics features
  924. * Reworked utf8 tokenization that previously corrupted all UTF8 words (minor
  925. incompatibility with old fuzzy hashes with utf-8 symbols)
  926. * SPF module has been completely rewritten to support complex cases of
  927. `include` and `redirect` within SPF records
  928. * DKIM module now supports multiple signatures
  929. * Controller passwords can now be stored encrypted by `PBKDF2-HMAC` in the
  930. configuration file
  931. * Many hand-written HTTP clients has been replaced with the common rspamd
  932. http module
  933. * New test framework:
  934. - import lua `telescope` test framework
  935. - add unit tests for many rspamd modules and routines
  936. - create a unit test for each possible bug found
  937. - use luajit ffi for testing C code
  938. - added preliminary support of functional testing by creating tasks from lua
  939. * Randomize hash seed to avoid certain hash tables vulnerabilities
  940. * Documentation improvements:
  941. - added documentation for the vast majority of rspamd modules
  942. - added documentation for rspamd protocol
  943. - added documentation for the most of rspamd LUA extensions
  944. * Fixed tonns of bugs and memory leaks
  945. * Added tonns of minor features
  946. 0.8.3:
  947. * Various critical fixes in distribution (by @dottedmag and @fatalbanana)
  948. * Fixed bugs in url detector to parse certain patterns
  949. * Add default host and helo for a client
  950. * Some sanity checks for tokenizer and classifier
  951. * Reiterate on systemd support
  952. * Fix missing symbol registration
  953. * Add support of spamc compatible output
  954. * Filter double-dots in rbl.lua validate_dns (by @fatalbanana)
  955. * Update ucl submodule due to critical bugfix
  956. 0.8.2:
  957. * Create fuzzy db if it does not exist
  958. * Fix: Centos init script: configtest() (by @AlexeySa)
  959. * Enable one_shot for RECEIVED_SPAMHAUS_XBL - Fixes #102 (by @fatalbanana)
  960. * Update Exim patch (by @fatalbanana)
  961. * Fix processing of unix sockets.
  962. * Allow applying settings to authenticated users (by @fatalbanana)
  963. * Make settings priorities work as documented (by @fatalbanana)
  964. * Fix race condition in symbols planner
  965. * Add DNSWL_BLOCKED symbol (by @fatalbanana)
  966. * Make Exim pass usernames to rspamd (by @fatalbanana)
  967. * Update RBL module (by @fatalbanana):
  968. - fix indentation;
  969. - collapse loops;
  970. - avoid calling for un-needed information;
  971. - allow disabling RBLs for authenticated users
  972. * once_received.lua: Fix indentation & add exclusion for authenticated users (by @fatalbanana)
  973. * hfilter.lua: Add exclusion for authenticated users (by @AlexeySa)
  974. * Updates to hfilter rules (by @AlexeySa)
  975. * Set empty <> user or addr for msgs without FROM (by @eneq123)
  976. * Fix: attempt to index field '?' (a nil value) (by @eneq123)
  977. * Fix: if not exist Date-header (by @AlexeySa)
  978. * Add task:get_content() method.
  979. * rbl.lua: Ignore private IP space (by @fatalbanana)
  980. * Allow to check radix maps from lua by rspamd{ip}
  981. * Make local exclusions configurable per-RBL (by @fatalbanana)
  982. * Add rspamd_config:radix_from_config() (by @fatalbanana)
  983. * Support emails dnsbl in rbl (by @fatalbanana)
  984. * Complete rework of url extraction logic
  985. * Allow customizations for unix sockets. (fixes #182)
  986. * Set lua path according to rspamd settings.
  987. * Import lua-functional for plugins stuff.
  988. * Completely rewrite multimap plugin in functional style.
  989. * Fix FORGED_MUA_THUNDERBIRD_MSGID (fixes #186)
  990. * Check IPv6 addresses at dnswl.org and Spamhaus whitelist (by @fatalbanana)
  991. * Add lowercase utility for utf8 strings.
  992. * Various fixes to build system
  993. * Updated debian configuration infrastructure (by @dottedmag)
  994. 0.8.1:
  995. * Add sqlite and perl as dependencies for RPM/Debian packages (by @fatalbanana)
  996. * Remove whitelist.lua from RPM file list (by @fatalbanana)
  997. * Make Exim pass hostnames to rspamd (by @fatalbanana)
  998. * Fix building on Fedora (by @fatalbanana)
  999. * Add toggle for disabling installation of systemd units on Linux (by @fatalbanana)
  1000. * Fix double format rounding that caused output corruption (reported by @fatalbanana)
  1001. * Revert broken change for destructors ordering that led to memory corruption
  1002. * Do not reset symbols case of settings if parsed from lua (reported by @andrejzverev)
  1003. * Fix build on SunOS (by @wiedi)
  1004. * Fix multiple crashes on broken DKIM DNS records
  1005. * Fix critical issue with composites weights removing
  1006. * Fix memory corruption in composites processing code
  1007. * Ignore non-SPF TXT records when parsing SPF includes
  1008. 0.8.0:
  1009. * New fuzzy check logic:
  1010. - use shingles algorithm for fuzzy matching
  1011. - use blake2 instead of md5 for larger output space
  1012. - combine fuzzy and strict matching
  1013. - allow to organize private storages by means of keys
  1014. - preserve compatibility with previous versions
  1015. * New fuzzy storage:
  1016. - use sqlite instead of own memory based hash tables
  1017. - rework commands interface
  1018. - add conversion from the old format
  1019. - add fuzzy match by shignles
  1020. - support old rspamd versions
  1021. * Add lemmatizing for words used in fuzzy hashes that allows to improve match
  1022. quality by using of the first forms of all words
  1023. * Rework language detection
  1024. * Fix several critical bugs, memory leaks and deadlocks:
  1025. - memory leak in HTML nodes parsing
  1026. - deadlock in logger code
  1027. - deadlock in signals processing
  1028. - crashes in fuzzy_storage
  1029. - crashes in tokenizers if the input was empty
  1030. * Import new libucl with several bugfixes and improvements
  1031. * Support listening on ipv6 addresses only
  1032. * Fix macro expansion in SPF module
  1033. * Several bugfixes in DKIM module
  1034. * Add load headers support for mime parts to the lua API
  1035. * Add documentation for:
  1036. - workers in general
  1037. - fuzzy_storage worker
  1038. - fuzzy_check plugin
  1039. - mimepart and textpart lua API modules
  1040. 0.7.6:
  1041. * Apply boundary fix for dkim simple canonization
  1042. * Fix ping command
  1043. * Return nil if header was not found in lua_task
  1044. * Fix hang in upstreams revive logic
  1045. * Decode entitles when normalizing HTML parts
  1046. * Fix logic of finding URLs in HTML parts
  1047. * Do not include \0 into length of text when performing conversion to utf8
  1048. * Fix raw vs parsed reperesentations
  1049. Raw parts are now:
  1050. - decoded b64/qp, but *NOT* converted to utf-8
  1051. Processed parts are now:
  1052. - converted to UTF-8
  1053. - normalized if needed (e.g. HTML tags are stripped)
  1054. * Rework DKIM canonization to line based
  1055. * Fix fuzzy hashes addding
  1056. * Use more specific hash function for fuzzy
  1057. * Fix leaking of iconv descriptors
  1058. * Fix PTR resolving in lua resolver
  1059. * Rework spf module.
  1060. - Copy data to memory pool as cached record might be destroyed causing
  1061. freed memory being passed to the protocol output (use after free)
  1062. - Allow SPF_NEUTRAL policy to be handled separately
  1063. - Add R_SPF_NEUTRAL to the default config
  1064. * Rework `register_symbols` function
  1065. * Allow to disable components of hfilter
  1066. 0.7.5:
  1067. * Fix owner when creating folder /run/rspamd (by @sfirmery)
  1068. * Fix IP validity checks
  1069. * Decode URLs obtained from HTML tags
  1070. * Fix crash with unweighted upstreams
  1071. * Stop processing headers in parts
  1072. * Set sockaddr.sa_family properly when connectig to upstreams
  1073. * Fix reload issues in surbl and fuzzy_check (reported by @citrin)
  1074. * Fix timeouts in redirector
  1075. * Improve lua errors reporting
  1076. * Fix lua closures processing in libucl
  1077. * Rework calling of lua functions from regexp module
  1078. * Choose raw regexp for raw headers
  1079. * Rework conversion to utf since glib one is broken
  1080. * Ignore SGML style tags in html
  1081. * Fix old bug with non-capturing https urls
  1082. * Fix memory corruption on fuzzy reload (reported by @citrin)
  1083. * Fix percents display in rspamc
  1084. * Fix buffer update for DKIM
  1085. * Do not validate utf for raw headers
  1086. 0.7.4:
  1087. * Fix build under *BSD
  1088. * Detect HAN unicode script
  1089. * Implement language detection heuristic for text parts
  1090. * Fix time output in history
  1091. * Improve piechart coloring
  1092. * Fix \r\n conversion in DKIM module (reported by @citrin)
  1093. * Try to detect systems with no IPv6 support
  1094. * Fix multiple/single values in use settings (reported by @citrin)
  1095. * Rework IP addresses in upstreams:
  1096. - Select ipv4/unix addresses if they exist and use ipv6 for ipv6 only
  1097. upstreams (since the support of ipv6 is poor in many OSes and
  1098. environments)
  1099. - Free IP list on upstream destruction
  1100. - Add test cases for addresses selection
  1101. - Allow adding of free form IP addresses to upstreams
  1102. * Fix endiannes in lua_radix search (reported by @citrin)
  1103. * Soft shutdown should also set wanna_die flag (reported by @citrin)
  1104. * Stop use-after-free in event loop termination
  1105. * Fix processing of very short messages in DKIM (reported by @citrin)
  1106. * Detect systems without shared mutexes
  1107. * Fix issues with PTR and MX elements in SPF parser (reported by @citrin)
  1108. 0.7.3:
  1109. * New upstreams code:
  1110. - simplify upstreams API;
  1111. - unify strings parsing in upstreams definition;
  1112. - add configuration options for the upstreams;
  1113. - for failed upstreams re-resolve their addresses;
  1114. - use all resolved addresses for an upstream (round-robin);
  1115. - implement stable hashing and use it by default for upstreams;
  1116. - add unit test for upstreams module.
  1117. * Rework signals processing in all rspamd workers:
  1118. - signals are now processed in the event loop;
  1119. - implement the most common signal handlers for all workers;
  1120. - add callbacks for workers specific signal handlers
  1121. * Fix critical issue with fuzzy storage:
  1122. Fuzzy stroage could not save any hashes on termination due to bugged
  1123. signals handling
  1124. * Fix roll history IP storage
  1125. * Rework ipv4/ipv6 handling in parsing addresses:
  1126. - turn off support of IPV6_V6ONLY socket option;
  1127. - create ipv6 socket prior to ipv4 one to handle systems with v6/v4
  1128. sockets enabled (Linux)
  1129. * Remove CBL as it's wholly included in Spamhaus XBL (by @fatalbanana)
  1130. * Remove nszones.com fake RBL (by @citrin)
  1131. * Fix upstreams interaction for fuzzy_check
  1132. * Verify spf PTR records (reported by @citrin)
  1133. * Fix spf MX records parsing
  1134. * Add compatibility for old libevent (by @yellowman)
  1135. * Sync bugfixes from libucl
  1136. 0.7.2:
  1137. * Convert all maps to the compressed radix trie
  1138. * Allow IPv6 addresses in IP maps
  1139. * Remove dynamic items support from symbols cache
  1140. * Allow hex encoded output of strings
  1141. * Fix bug with control connections count
  1142. * Process fuzzy weight correctly (reported by @fatalbanana)
  1143. * Remove extra reference retain of http connection on error
  1144. * Remove deprecated options from the default config
  1145. * Add `one_shot` attr to metric's symbols
  1146. * Doc: add documentation for metrics
  1147. * Add Upstart job to debian packaging (by @CameronNemo)
  1148. * Config: improve SURBL symbols descriptions (by @citrin)
  1149. * Config: reflect SURBL changes (by @citrin):
  1150. - Outblaze removed, malware moved to separate list:
  1151. http://www.surbl.org/news/internal/MW-malware-sublist-added-to-multi
  1152. * Fix C modules initialization on restart
  1153. * Treat single IP as a single IP in radix lists (reported by @citrin)
  1154. * Do not touch file and core limits if not asked explicitly (reported by @citrin)
  1155. * Improve logging for fuzzy errors
  1156. * Block SIGPIPE for HTTP writing
  1157. * Doc: update manual pages
  1158. * Fix HTTP connection termination
  1159. * Reduce default number of parallel requests to 8
  1160. * Sync with libucl include features
  1161. 0.7.1:
  1162. * Fix typo in stat output.
  1163. * Fix issues with includes crossing with the system includes
  1164. * Restore testing framework
  1165. * Add radix trie test suite
  1166. * Implement new path-compressed radix trie.
  1167. - The performance benefit over the old algorithm is about 1.5 times.
  1168. - Memory usage is significantly lower as well.
  1169. - Now radix trie can accept any IPv4/IPv6 values
  1170. * Various improvements to the memory pools code
  1171. * Fix writing reply to a client when no filters are defined
  1172. * Write base32 encoded fuzzy
  1173. * Fix 'soft reject' action
  1174. * Fix rspamd reload and modules reconfiguration
  1175. * Fix subject rewriting for the default subject
  1176. * Fix states for processing task and pre-filters
  1177. * Fix issues with connection closing
  1178. * Fix crashes in rdns
  1179. * Fix ratelimit pre-filter
  1180. * Update exim patch.
  1181. - Update to the recent exim version
  1182. - Strip extra leading src/ from the patch
  1183. - Remove sendfile since it was broken
  1184. - Fix rspamd spam report for exim
  1185. * Improve documentation
  1186. 0.7.0:
  1187. * Use HTTP protocol for all operatiosn
  1188. * Webui worker is now removed and controller works as webui
  1189. * Allow to serve static files via controller by option `static_dir`
  1190. * Rspamd interface is now a part of rspamd
  1191. * Rspamc client has been rewritten to use HTTP and non-blocking mode
  1192. allowing to start multiple operations simultaneously (see `-n` option)
  1193. * Lua API was completely reworked to satisfy modern standards of LUA:
  1194. * Module `lua-message` was removed
  1195. * Reduced number of superglobals registered by rspamd
  1196. * Many functions has been redesigned
  1197. * Symbols registration is now more convenient
  1198. * Users settings has been rewritten as lua plugin
  1199. * Reworked headers system as gmime's based one misses many headers and is
  1200. very slow to get headers values
  1201. * Reorganized code and removed embedded jannsson by using UCL for all json
  1202. parsing
  1203. * Migrated to `librdns` for DNS resolving that improves concurrency for
  1204. DNS requests significantly
  1205. * Fixed tonns of bugs in MIME processing
  1206. * Improved metrcis and default symbol's weights
  1207. * Added new RBL's
  1208. * Fixed a number of issues in the modules
  1209. * Removed several memory leaks found
  1210. * Fix unicode processing
  1211. * Fix fuzzy checking for unicode parts
  1212. * Significantly improve documentation and especially LUA API docs
  1213. * See migration notes at https://rspamd.com/doc/migration.html
  1214. 0.6.8:
  1215. * Controller now listen for localhost and not for 127.0.0.1 by default
  1216. * Allow FCrDNS-style RBL lookups (by @fatalbanana)
  1217. * Reduce threshold for parts_differ function.
  1218. * Fix hostname lookup for rdns rbl (by @AlexeySa)
  1219. * Fix HFILTER_URL_ONELINE to reduce false positive rate.
  1220. * Fix whitelist module.
  1221. * Allow override system predefined settings without touching system ones
  1222. by .try_include macro (by @andrejzverev)
  1223. * Check for [ip.address]-style HELO and suppress lookups. (by
  1224. @fatalbanana)
  1225. * Optimize hfilter (by @AlexeySa)
  1226. * Fix issue with random numbers generator in dns.
  1227. * Use more clever time values to setup entropy.
  1228. * Synced with the recent libucl.
  1229. 0.6.7:
  1230. * Use ChaCha20 for DNS generator (more secure DNS id)
  1231. * Unknown symbols now has zero weight and not 1.0
  1232. * Fix fuzzy hashes expire time
  1233. * Fix critical issue in statfiles on FreeBSD 9 (and some other platforms)
  1234. * Add .include_map macro to ucl parser
  1235. * Update libucl
  1236. * Fix headers end detection for DKIM module
  1237. * Fix a bug in received headers parser
  1238. * Validate IP addresses before pushing them to lua
  1239. * Start new documentation project
  1240. * Fixed tonns of other minor bugs
  1241. * Start to prepare for 0.7 with HTTP protocol and new settings
  1242. 0.6.6:
  1243. * Removed issue with BUFSIZ limitation in the controller output
  1244. * Simplify logging symbols escaping
  1245. * Adjusted weights for several rules
  1246. * Improve spamhaus rbl support
  1247. * Removed PBL for received headers checks
  1248. * Added hfilter module that performs various HELO and IP checks.
  1249. * Rspamd can now be reloaded by HUP signal
  1250. * Fuzzy storage should expire hashes properly
  1251. * Build system has been reworked for better supportof pkg-config
  1252. * Various minor bugfixes
  1253. 0.6.5:
  1254. * Fixed critical bug in DNS resolver, introduced in 0.6.4
  1255. * Improved multimap and rbl plugins to skip
  1256. * Add dns_sockets option for tuning sockets per server in DNS resolver
  1257. * Improved packages for rspamd
  1258. 0.6.4:
  1259. * Added io channels for DNS request to balance load and reduce id
  1260. collisions chance
  1261. * Fixed a bug in SPF filter that may cause core dump in specific
  1262. circumstances
  1263. * FIxed default config for rbl module
  1264. * It is possible to get a list of rspamc commands with their descriptions
  1265. * Added SORBS bl to the default config
  1266. * 2tld file for surbl module has been significantly extended
  1267. * Perl modules has been removed from the code.
  1268. * Fixed an issue in libucl when parsing macros
  1269. 0.6.3:
  1270. * Fixed issues with DNS:
  1271. - labels decompression algorithm was fixed;
  1272. - added resolve_mx to lua API;
  1273. - fixed modules that use DNS.
  1274. * Lua modules once_received and emails reworked for new resolver API and UCL.
  1275. * Debian package was polished.
  1276. * Fixed a bug in fuzzy_check module that prevents correct processing messages
  1277. without valid parts.
  1278. 0.6.2:
  1279. * Fuzzy check module has been reworked:
  1280. - now fuzzy_check operates with a group of rules, that define which
  1281. servers sre to be checked;
  1282. - it is possible to specify read_only groups to avoid learning errors;
  1283. - turn fuzzy_check to one_shot mode permanently;
  1284. - fuzzy_check module configuration is now incompatible with the previous
  1285. versions.
  1286. * Imported bugfixes from libucl.
  1287. * Fixed whitelist plugin.
  1288. * Fixed statfiles resizing.
  1289. * Improved logging initialization order.
  1290. * Fixed race condition in the controller worker.
  1291. 0.6.1:
  1292. * Critical bugfixes:
  1293. - fixed build system;
  1294. - fixed in_class setting in bayes learning;
  1295. 0.6.0:
  1296. * Use UCL instead xml for configuration (https://github.com/vstakhov/libucl)
  1297. * Fix statistics module normalization
  1298. * Rework the many modules for the new configuration:
  1299. - surbl has incompatible configuration;
  1300. - fuzzy_check has incompatible configuration;
  1301. - multimap has now new configuration;
  1302. - received_rbl is removed and replaced by rbl module.
  1303. * Removed deprecated options:
  1304. - statfile_pool_size;
  1305. - action and required/reject score for a metric.
  1306. * Simplify build system and unify configuration for all platforms.
  1307. * Improved URL detector (reduced false positive rate).
  1308. * Lua 5.2 is now the default and fully supported version.
  1309. * Tons of bugfixes and minor improvements.
  1310. 0.5.6:
  1311. * Fix bug with counters incrementing in rolling history
  1312. * Detect expl and exp2l as some systems do not have it
  1313. * Support input streams without Content-Length
  1314. * Implement counters output via rspamc and controller interface
  1315. * Fix bug with udp sockets in fuzzy storage
  1316. 0.5.5:
  1317. * New bayes normalizator based on inverse chi-square function
  1318. * Various fixes to fuzzy storage
  1319. * Allow update fuzzy storage only from specific IP addresses
  1320. * Better support of IPv6 and address selection algorithms
  1321. * Add CentOS spec file
  1322. 0.5.4:
  1323. * Fixed issues with diff algorithm
  1324. * Added support of RRD statistics
  1325. * Add webui worker for interface interaction
  1326. * Fix a lot of issues with dynamic conf
  1327. * Fix critical memory leak in settings code
  1328. * Improve stability of the system
  1329. 0.5.3:
  1330. * Added dynamic options
  1331. * Added advanced metaclassfication
  1332. * Added RESTfull API for controller
  1333. * Improved hashing algorithms
  1334. * Various fixes for rspamc client:
  1335. - allow interacting with unix sockets
  1336. - librspamdclient major cleanup
  1337. - bayes is now default classifier
  1338. 0.5.2:
  1339. * Added lua bindings for:
  1340. - basic mime parts, that allows checkign attachements for example;
  1341. - DNS resolver;
  1342. * Existing lua bindings now works without task object allowing to use them
  1343. in custom code.
  1344. * Threads system was reworked to avoid global lua interpreter lock.
  1345. * DKIM module now converts all line endings to CRLF how opendkim does.
  1346. * URL detector is now more accurate for text parts.
  1347. * Several critical bugs and memory leaks were fixed.
  1348. 0.5.1:
  1349. * Added lua worker type to handle network connections in lua.
  1350. * Added lua bindings for async_session, IO dispatcher, memory_pool, and
  1351. worker.
  1352. * Composites can now uses other composites in expressions.
  1353. * Fixes for debian package and for FreeBSD >= 9.1
  1354. * Add support of gmime-2.6 if gmime-2.4 is not found.
  1355. * Improve url detection and phishing detection.
  1356. * Add lua mime_part library to get an access to all message part
  1357. attributes (like filename, length, type).
  1358. 0.5.0:
  1359. * Added SMTP lightweight balancing proxy with XCLIENT support.
  1360. * Added lua bindings for upstreams objects and API.
  1361. * New pre-filters are implemented to support initial checking for messages.
  1362. * Added ratelimit plugin that uses redis protocol to store data.
  1363. * Added ipv6 support to spf and some other modules.
  1364. * Unbreak spf plugin.
  1365. * Allow options with the same name be threated as list.
  1366. * DKIM plugin an parsing code was added.
  1367. * Separate build system to put logic in several shared libraries.
  1368. * Many bugfixes.
  1369. 0.3.2:
  1370. * Add error handling for regexps
  1371. * Fix quit command in controller interface
  1372. * Write symbols weights to rspamc output
  1373. * Improve logic of selecting rspamc version
  1374. * Do not try to parse broken DNS replies
  1375. * Add 'raw' flag to FROM_EXCESS_BASE64 rule (requested by citrin)
  1376. * Output message id in rspamc reply
  1377. * Fix inserting composite symbol
  1378. * Fix output of log line
  1379. * Document composites
  1380. * Add logging for fuzzy checks
  1381. * Add logging for learning
  1382. * Improve logic of learning messages - do not learn more than specific threshold
  1383. * Fix inserting results for symbols that were incorrectly (for example more than 1 time) defined in config file
  1384. * Do not output control characters if output is not terminal
  1385. * Fix some logic errors in learning
  1386. * Consider lua plugins errors as fatal configuration errors
  1387. * Fix wirting message id during fuzzy_add command
  1388. * Display weight of symbols correctly
  1389. * Fixes to winnow learning
  1390. * One more try to improve accuracy of winnow algorithm
  1391. * Add bayesian classifier (initial version)
  1392. * Remove normalizer as it is winnow specific thing, so all statistic algorithms now returns value from 0 to 1
  1393. * Some fixes to fuzzy hashes expiration:
  1394. * Fix assertion while look up value in NULL hash (found by cirtin)
  1395. * Fix normalization for systems that have not tanhl function
  1396. * Ignore rfc822 group addresses
  1397. * Move images library to core rspamd
  1398. * Add lua api to access images properties
  1399. * Add post filters to lua API - filters that would be called after all message's processing
  1400. * Add ability to check for specified symbol in task results from lua
  1401. * Add ability to check for metric's results from lua
  1402. * Add ability to learn specified statfile form lua
  1403. * Add ability to extract filename and size of images from lua
  1404. * Fix assertion while extracting internet address
  1405. * Fix races in fuzzy storage
  1406. * Make spf parser case insensitive
  1407. * Add ability to check hashes of selected mime types
  1408. * Add ability to set minimum size in bytes for mime types
  1409. * Add ability to set minimum dimensions for images
  1410. * Assume all text/* content types as text/plain
  1411. * Fix getting data wrapper for gmime24
  1412. * Many fixes to statfile syncronization system
  1413. * Fixed statfile pool initialization and synchronization with disk
  1414. * Prepare 0.3.2
  1415. * Fix Mail::Rspamd::Config for new rspamd features
  1416. * Use Mail::Rspamd::Config in rspamc client
  1417. * Write user's name to rspamd log
  1418. * Prepare rspamd build infrastructure for creating rpm and deb packages
  1419. * Fix depends
  1420. * Add start script for linux systems
  1421. * Fix shared usage of statfiles
  1422. * Add invalidation of statfiles in case of learning, so now statfiles
  1423. * This should fix shared usage of statfile pool by several processes
  1424. * Fix misprint (reported by az)
  1425. * Fix stupid error when all checks can be done in a single pass
  1426. * New trie based url scanner (based on libcamel)
  1427. * Small fixes to rspamd perl client
  1428. * Write fuzzy hashes info to log
  1429. * Add trie interface to lua api
  1430. * Explain sample config and cleanup it
  1431. 0.3.1:
  1432. * Add modules documentation
  1433. * Continue implementing smtp proxy
  1434. * Implement new learning system, now rspamd should be much more intelligent while learning messages
  1435. * Convert statistic sums to use long double for counters
  1436. * Use hyperbolic tangent for internal normalizer
  1437. * In classify normalize result after comparing, not before
  1438. * New symbols sorter
  1439. * Fix strict aliasing while compiling with optimization
  1440. * Fix tanhl detection for platforms that have not implementation of it
  1441. * Remove several compile warnings
  1442. * Add experimental support of dynamic rules to regexp module
  1443. * Document views configuration
  1444. * Several fixes to documentation
  1445. * Add more logic for dynamic rules
  1446. * Add documentation for dynamic rules
  1447. * Add ability to make negations in networks in dynamic rules
  1448. * Clean up cache items correctly
  1449. * Implement basic SMTP dialog:
  1450. * Implement interaction with smtp upstream (with support of XCLIENT)
  1451. * Check messages received via smtp proxy
  1452. * Add support for sendfile in io dispatcher
  1453. * Fix issues with compatibility of worker_task and smtp proxy
  1454. * Proxy DATA command
  1455. * Fix SMTP
  1456. * Change metric logic
  1457. * Completely remove lex/yacc readers for config
  1458. * Make common sense of metric/action and symbols
  1459. * Sync changes with all plugins
  1460. * Incorrectly removed in previous commit
  1461. * Fix misprint (by Andrej Zverev)
  1462. * announce the "password" keyword in usage list
  1463. * Implement initial version of greylisting triplets storage
  1464. * Fix issues with smtp worker
  1465. * Fix QUIT command in SMTP worker
  1466. * Some fixes about new metrics system (may be incomplete)
  1467. * Get weights of symbol from default metric for symbols cache
  1468. * Fix setting task->from/task->rctp in smtp client
  1469. * Copy from and rcpt correctly
  1470. * Some performance improvements to IO dispatcher (do not drain the whole buffer after a single line readed)
  1471. * Fix smtp data input
  1472. * Fix misprint
  1473. * Add limit of maximum allowed smtp session errors
  1474. * New logic of SURBL module:
  1475. * Use system mkstemp(3) on systems where it is available as glib implementation
  1476. * Try to fix memmove issues in io dispatcher
  1477. * Remove debug from SURBL module
  1478. * Rewrite buffered input for line policy (again)
  1479. * Fix issue with links that are ip addresses in numeric form in surbl
  1480. * On Darwin use BSD style sendfile definition
  1481. * Reorganize platform specific knobs in CMakeLists
  1482. * Use gettimeofday on systems that have not clock_getres
  1483. * Use ftime for dns trans id generation on systems without clock_getres
  1484. * Darwin sendfile(2) support
  1485. * TIMEDB->TIMEB
  1486. * More to previous commit
  1487. * Pass env from main() arguments instead of platform specific global environ
  1488. * Fix compatibility issues
  1489. * Fix -lintl detection
  1490. * Init some variables to avoid problems
  1491. * Remove garbadge (gnome terminal sucks)
  1492. * Add more information about why we drop smtp connection
  1493. * Fix mkstemp call
  1494. * Send to upstream QUIT command at the end of session
  1495. * Check return value of each rspamd_dispatcher_write as in case of write errors sessions can be destroyed early
  1496. * Fix states in smtp dialog
  1497. * Use rspamd_snprintf instead of libc one
  1498. * Fix URLS command
  1499. * Fix reconfigure process of surbl module
  1500. * Fix destroying smtp session (unmap memory and do not delete pool early)
  1501. * Delete pool after using its variables
  1502. * Delay timer must be registered in async session to correctly handle connection termination
  1503. * Register dns requests in session too
  1504. * Make session before registering events
  1505. * Remove events in handlers
  1506. * Add ability to set filters for smtp worker for each smtp stage
  1507. * Add very initial version of DNS resolver (many things to be done)
  1508. * Announce weights and sync
  1509. * Fix few typo
  1510. * Understand short names of facility in logging config
  1511. * Add ability to make whitelist for spf checks
  1512. * Misprint != -> ==
  1513. * Handle lua tag in way that it is not required to write additional text:
  1514. * Strip all starting whitespace symbols from xml texts
  1515. * Fix stupid bug in calculating buffer length while reading file maps
  1516. * Add resolv.conf parsing into dns.c
  1517. * Fix microseconds<->milliseconds conversions
  1518. * Take callback argument in Mail::Rspamd::Client for processing files and directories
  1519. * Print results if rspamc is called for a directory
  1520. * Fix stupid error with surbl module reconfig (another one, blame me)
  1521. * Do not show duplicate urls in url header
  1522. * Fix detection of numeric urls (reported by citrin)
  1523. * Write real time of message's scan to log (not only virtual)
  1524. * Fix chartable module in utf mode
  1525. * Fix parsing of some broken urls
  1526. * Add ability to test regexp with 'T' flag
  1527. * Write more code for DNS resolver:
  1528. * Make DNS resolver working
  1529. * Many improvements to rspamd test suite: now it CAN be used for testing rspamd functionality
  1530. * Write DNS resolver tests
  1531. * Fix issues with memory_pool mutexes and with creating of statfiles
  1532. * Forgotten in previous commit
  1533. * Add support for parsing SPF and SRV records
  1534. * Fix PTR parsing
  1535. * Add tests
  1536. * Make SURBL module to use rspamd dns module
  1537. * Several fixes to DNS logic
  1538. * Remove evdns and use only rspamd resolver
  1539. * 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
  1540. * Fix resolving in smtp module
  1541. * Init events before configuring resolver in smtp worker
  1542. * Set resolver inside task
  1543. * Fix reload signal (reported by citrin)
  1544. * Some improvements to redirector
  1545. * Call has_forked method to inform POE about fork
  1546. * Fix lua DNS code
  1547. * Decompress labels in DNS packets more strictly
  1548. * Fix some problems with TXT records
  1549. * Try to fix removing of DNS events
  1550. * Do not insert unparsed RR's into reply
  1551. * Calling callbacks may cause destroying session from which we are calling callback so we MUST call callback as the latest action
  1552. * Fix check_smtp_data function
  1553. * Add ability to make views by recipient
  1554. * Add ability to set metric's action from config file
  1555. * Fix bug with writing garbadge if message has no urls or no messages
  1556. * Fix bug with incorrect behaviour of compare_parts_distance function
  1557. * Add ability to assign several actions to one metric
  1558. * Report action in rspamc protocol
  1559. * Mail::Rspamd::Client and rspamc can now understand Action header too
  1560. * Write action to log as well
  1561. * Make valgrind happy about comparing symbols
  1562. * Add more debug to comparing parts distance function
  1563. * Write action even if message has no symbols
  1564. * Make improvements to HTML entites decoder: now it replaces entities with common characters and
  1565. * Add -d option to force debug output
  1566. * Assume 7bit as default transfer encoding
  1567. * Do not overwrite lua plugins and configs if they already exists in target directory
  1568. * Improve logging
  1569. * Write queue id to log
  1570. * Remove test messages from cmake
  1571. * Reopen log file by USR1 signal
  1572. * Add reopenlog method to FreeBSD rc script
  1573. * Adopt foreach for cmake 2.6
  1574. * Fix to rc script
  1575. * Do not try to resolve names with several dots in a row
  1576. * Fix surbl request formatting for ip addresses
  1577. * Handle cases of broken requests
  1578. * Fix problems with parsing compressed names
  1579. * Fix TXT records parsing
  1580. * Fix expanding spf macros that may fail in rare cases
  1581. * Fix another error with early task destroying
  1582. * Handle empty from header
  1583. * Improve reopenlog command in rc script
  1584. * Strip trailing whitespace characters in Mail::Rspamd::Client
  1585. * Use ungreedy match to strip trailing whitespaces
  1586. * Stupid error in calculation compressed label length
  1587. * Some optimizations to client library
  1588. * Do not compare empty parts
  1589. * Empty and non-empty parts are allways different
  1590. * Save in regexp cache the whole regexp with header name (if exists) and with flags
  1591. * Add rspamd_log variable to lua plugins to access logging functions
  1592. * Each part in rspamd task now can have parent part
  1593. * Check for parts distance only for multipart/alternative subparts
  1594. * Do not check attachements even if they are text (but attached as file)
  1595. * Do not die if write (2) returned ENOSPACE while doing logging, turn on throttling mode instead (1 write try in a second)
  1596. * Add ability to turn on debug for specific symbols
  1597. * Add ability to configure dns timeouts and dns retransmits in config file
  1598. * More debug
  1599. * Fix extracting arguments in lua logger interface
  1600. * Turn off debug_ip during reload if it was disabled by new config
  1601. * Improve lua logging
  1602. * Pre-init symbols cache when rereading config
  1603. * Fix lua representing of invalid ip (nil, not 255.255.255.255)
  1604. * Fix R_TO_SEEMS_AUTO rule (by citrin)
  1605. * Add multimap lua plugin
  1606. * Fix some multimap issues
  1607. * Try to save images hashes to fuzzy storage to stop some annoying spammers
  1608. * Allocate some more bytes for read buffer to avoid incorrect behavoiur
  1609. * Add ability to check dns black lists by multimap module
  1610. * Add multimap documentation
  1611. * Fix labels parsing
  1612. * Another try to save regexps in cache correctly
  1613. * Improve test logs for regexps
  1614. * Fix parsing txt records to avoid reading of uninitialized data
  1615. * Fix error with writing symbols cache file
  1616. * Fix error while working in utf mode when raw regexps was not created properly
  1617. * Do not add extra byte while converting text to utf
  1618. * Add error handling for regexps