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

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809810811812813814815816817818819820821822823824825826827828829830831832833834835836837838839840841842843844845846847848849850851852853854855856857858859860861862863864865866867868869870871872873874875876877878879880881882883884885886887888889890891892893894895896897898899900901902903904905906907908909910911912913914915916917918919920921922923924925926927928929930931932933934935936937938939940941942943944945946947948949950951952953954955956957958959960961962963964965966967968969970971972973974975976977978979980981982983984985986987988989990991992993994995996997998999100010011002100310041005100610071008100910101011101210131014101510161017101810191020102110221023102410251026102710281029103010311032103310341035103610371038103910401041104210431044104510461047104810491050105110521053105410551056105710581059106010611062106310641065106610671068106910701071107210731074107510761077107810791080108110821083108410851086108710881089109010911092109310941095109610971098109911001101110211031104110511061107110811091110111111121113111411151116111711181119112011211122112311241125112611271128112911301131113211331134113511361137113811391140114111421143114411451146114711481149115011511152115311541155115611571158115911601161116211631164116511661167116811691170117111721173117411751176117711781179118011811182118311841185118611871188118911901191119211931194119511961197119811991200120112021203120412051206120712081209121012111212121312141215121612171218121912201221122212231224122512261227122812291230123112321233123412351236123712381239124012411242124312441245124612471248124912501251125212531254125512561257125812591260126112621263126412651266126712681269127012711272127312741275127612771278127912801281128212831284128512861287128812891290129112921293129412951296129712981299130013011302130313041305130613071308130913101311131213131314131513161317131813191320132113221323132413251326132713281329133013311332133313341335133613371338133913401341134213431344134513461347134813491350135113521353135413551356135713581359136013611362136313641365136613671368136913701371137213731374137513761377137813791380138113821383138413851386138713881389139013911392139313941395139613971398139914001401140214031404140514061407140814091410141114121413141414151416141714181419142014211422142314241425142614271428142914301431143214331434143514361437143814391440144114421443144414451446144714481449145014511452145314541455145614571458145914601461146214631464146514661467146814691470147114721473147414751476147714781479148014811482148314841485148614871488148914901491149214931494149514961497149814991500150115021503150415051506150715081509151015111512151315141515151615171518151915201521152215231524152515261527152815291530153115321533153415351536153715381539154015411542154315441545154615471548154915501551155215531554155515561557155815591560156115621563156415651566156715681569157015711572157315741575157615771578157915801581158215831584158515861587158815891590159115921593159415951596159715981599160016011602160316041605160616071608160916101611161216131614161516161617161816191620162116221623162416251626162716281629163016311632163316341635163616371638163916401641164216431644164516461647164816491650165116521653165416551656165716581659166016611662166316641665166616671668166916701671167216731674167516761677167816791680168116821683168416851686168716881689169016911692169316941695169616971698169917001701170217031704170517061707170817091710171117121713171417151716171717181719172017211722172317241725172617271728172917301731173217331734173517361737173817391740174117421743174417451746174717481749175017511752175317541755175617571758175917601761176217631764176517661767176817691770177117721773177417751776177717781779178017811782178317841785178617871788178917901791179217931794179517961797179817991800180118021803180418051806180718081809181018111812181318141815181618171818181918201821182218231824182518261827182818291830183118321833183418351836183718381839184018411842184318441845184618471848184918501851185218531854185518561857185818591860186118621863186418651866186718681869187018711872187318741875187618771878187918801881188218831884188518861887188818891890189118921893189418951896189718981899190019011902190319041905190619071908190919101911191219131914191519161917191819191920192119221923192419251926192719281929193019311932193319341935193619371938193919401941194219431944194519461947194819491950195119521953195419551956195719581959196019611962196319641965196619671968196919701971197219731974197519761977197819791980198119821983198419851986198719881989199019911992199319941995199619971998199920002001200220032004200520062007200820092010201120122013201420152016201720182019202020212022202320242025202620272028202920302031203220332034203520362037203820392040204120422043204420452046204720482049205020512052205320542055205620572058205920602061206220632064206520662067206820692070207120722073207420752076207720782079208020812082208320842085208620872088208920902091209220932094209520962097209820992100210121022103210421052106210721082109211021112112211321142115211621172118211921202121212221232124212521262127212821292130213121322133213421352136213721382139214021412142214321442145214621472148214921502151215221532154215521562157215821592160216121622163216421652166216721682169217021712172217321742175217621772178217921802181218221832184218521862187218821892190219121922193219421952196219721982199220022012202220322042205220622072208220922102211221222132214221522162217221822192220222122222223222422252226222722282229223022312232223322342235223622372238223922402241224222432244224522462247224822492250225122522253225422552256225722582259226022612262226322642265226622672268226922702271227222732274227522762277227822792280228122822283228422852286228722882289229022912292229322942295229622972298229923002301230223032304230523062307230823092310231123122313231423152316231723182319232023212322232323242325232623272328232923302331233223332334233523362337233823392340234123422343234423452346234723482349235023512352235323542355235623572358235923602361236223632364236523662367236823692370237123722373237423752376237723782379238023812382238323842385238623872388238923902391239223932394239523962397239823992400240124022403240424052406240724082409241024112412241324142415241624172418241924202421242224232424242524262427242824292430243124322433243424352436243724382439244024412442244324442445244624472448244924502451245224532454245524562457245824592460246124622463246424652466246724682469247024712472247324742475247624772478247924802481248224832484248524862487248824892490249124922493249424952496249724982499250025012502250325042505250625072508250925102511251225132514251525162517251825192520252125222523252425252526252725282529253025312532253325342535253625372538253925402541254225432544254525462547254825492550255125522553255425552556255725582559256025612562256325642565256625672568256925702571257225732574257525762577257825792580258125822583258425852586258725882589259025912592259325942595259625972598259926002601260226032604260526062607260826092610261126122613261426152616261726182619262026212622262326242625262626272628262926302631263226332634263526362637263826392640264126422643264426452646264726482649265026512652265326542655265626572658265926602661266226632664266526662667266826692670267126722673267426752676267726782679268026812682268326842685268626872688268926902691269226932694269526962697269826992700270127022703270427052706270727082709271027112712271327142715271627172718271927202721272227232724272527262727272827292730273127322733273427352736273727382739274027412742274327442745274627472748274927502751275227532754275527562757275827592760276127622763276427652766276727682769277027712772277327742775277627772778277927802781278227832784278527862787278827892790279127922793279427952796279727982799280028012802280328042805280628072808280928102811281228132814281528162817281828192820282128222823282428252826282728282829283028312832283328342835283628372838283928402841284228432844284528462847284828492850285128522853285428552856285728582859286028612862286328642865286628672868286928702871287228732874287528762877287828792880288128822883288428852886288728882889289028912892289328942895289628972898289929002901290229032904290529062907290829092910291129122913291429152916291729182919292029212922292329242925292629272928292929302931293229332934293529362937293829392940294129422943294429452946294729482949295029512952295329542955295629572958295929602961296229632964296529662967296829692970297129722973297429752976297729782979298029812982298329842985298629872988298929902991299229932994299529962997299829993000300130023003300430053006300730083009301030113012301330143015301630173018301930203021302230233024302530263027302830293030303130323033303430353036303730383039304030413042304330443045304630473048304930503051305230533054305530563057305830593060306130623063306430653066306730683069307030713072307330743075307630773078307930803081308230833084308530863087308830893090309130923093309430953096309730983099310031013102310331043105310631073108310931103111311231133114311531163117311831193120312131223123312431253126312731283129313031313132313331343135313631373138313931403141314231433144314531463147314831493150315131523153315431553156315731583159316031613162316331643165316631673168316931703171317231733174317531763177317831793180318131823183318431853186318731883189319031913192319331943195319631973198319932003201320232033204320532063207320832093210321132123213321432153216321732183219322032213222322332243225322632273228322932303231323232333234323532363237323832393240324132423243324432453246324732483249325032513252325332543255325632573258325932603261326232633264326532663267326832693270327132723273327432753276327732783279328032813282328332843285328632873288328932903291329232933294329532963297329832993300330133023303330433053306330733083309331033113312331333143315331633173318331933203321332233233324332533263327332833293330333133323333333433353336333733383339334033413342334333443345334633473348334933503351335233533354335533563357335833593360336133623363336433653366336733683369337033713372337333743375337633773378337933803381338233833384338533863387338833893390339133923393339433953396339733983399340034013402340334043405340634073408340934103411341234133414341534163417341834193420342134223423342434253426342734283429343034313432343334343435343634373438343934403441344234433444344534463447344834493450345134523453345434553456345734583459346034613462346334643465346634673468346934703471347234733474347534763477347834793480348134823483348434853486348734883489349034913492349334943495349634973498349935003501350235033504350535063507350835093510351135123513351435153516351735183519352035213522352335243525352635273528352935303531353235333534353535363537353835393540
  1. 1.6.1: 14 Jun 2017
  2. * [Fix] Allow to init resolver without rspamd_config
  3. * [Fix] Do not crash when resolver failed to initialize
  4. * [Fix] Fix abstract context layout
  5. * [Fix] Fix CGP helper reply parsing
  6. * [Fix] Fix crashes when socket write errors occur
  7. * [Fix] Fix parsing IPv6 nameservers in resolv.conf
  8. * [Fix] Milter: Don't defer on "greylist" action
  9. 1.6.0: 12 Jun 2017
  10. * [Conf] Add rspamd_proxy to the default configuration set
  11. * [Conf] Add sample arc module config
  12. * [Conf] Do away with systemd specifics completely
  13. * [Conf] Increase min_bytes to avoid FP
  14. * [Conf] Remove ratelimits from default configuration
  15. * [CritFix] Fix accepting on IPv6 sockets
  16. * [CritFix] Fix corruption when multiple fuzzy are defined
  17. * [CritFix] Fix learn condition in fuzzy check
  18. * [CritFix] Fix memory leak in fuzzy check
  19. * [CritFix] Fix memory leak in maps scheduling
  20. * [CritFix] Paese the last character in DKIM signature correctly
  21. * [CritFix] Zero fill sockaddr_un
  22. * [Feature] Add ability to add doc strings by example
  23. * [Feature] Add API to verify DKIM (and ARC) signatures
  24. * [Feature] Add compression/decompression to proxy
  25. * [Feature] Add count to url structure
  26. * [Feature] Add initial support of the new protocol reply
  27. * [Feature] Add Lua plugin spamtrap
  28. * [Feature] Add `monitored_address` for rbls
  29. * [Feature] Add new schema for bayes tokens
  30. * [Feature] Add preliminary ARC support to dkim code
  31. * [Feature] Add preliminary support of ARC signing
  32. * [Feature] Add rules to detect bad 8bit characters in From and To
  33. * [Feature] Add scanning support for milter protocol
  34. * [Feature] Add support for bidirectional symbols in rspamd_stats
  35. * [Feature] Add support for static maps
  36. * [Feature] Add support of maps with multiple regexps matches
  37. * [Feature] Add `text_multiplier` param
  38. * [Feature] Add the preliminary ARC plugin
  39. * [Feature] Add top redirector targets rank
  40. * [Feature] Allow async events to be registered from LUA rules
  41. * [Feature] Allow storing bayes tokens in Redis
  42. * [Feature] Allow to exclude specific domains from mx check
  43. * [Feature] Allow to have a stack of watcher finalisers
  44. * [Feature] Allow to pass hostname to `-i` flag in Rspamc
  45. * [Feature] Allow to set custom user agent in url redirector
  46. * [Feature] Allow to use custom callback when parsing resolv.conf
  47. * [Feature] Allow to use domain from authenticated user
  48. * [Feature] Bayes expiry plugin
  49. * [Feature] Check dkim sign keys for modifications
  50. * [Feature] DKIM signing: sign_networks/local address specific use_domain settings
  51. * [Feature] DMARC: Support excluding domains from sampling
  52. * [Feature] Expire processing items for URL redirector aggressively
  53. * [Feature] Fix surbl monitored for IP lists, add `monitored_domain` option
  54. * [Feature] Implement caching for dkim body hashes
  55. * [Feature] Implement milter protocol scan reply
  56. * [Feature] Improve omograph phishing detection
  57. * [Feature] Initial support of self-scan in Rspamd proxy
  58. * [Feature] Keep track of headers in milter interface
  59. * [Feature] Milter headers: better controls for local/authenticated
  60. * [Feature] Multimap: email:domain:tld filter
  61. * [Feature] Preliminary DMARC reporting implementation
  62. * [Feature] Reuse stemmers in the cache
  63. * [Feature] Rework confighelp to load Lua plugins
  64. * [Feature] Rework hfilter to use hyperscan if possible
  65. * [Feature] Rework lua RSA API
  66. * [Feature] Rmilter_headers: approximate rmilter's extended_spam_headers
  67. * [Feature] Start integration of milter support in proxy
  68. * [Feature] Store average words length and short words count
  69. * [Feature] Store hash of headers order and names
  70. * [Feature] Support MTA name header
  71. * [Feature] Support multiple types of dkim signing in Lua
  72. * [Feature] Support numeric arguments for Redis requests
  73. * [Feature] Use headers hash in bayes metatokens
  74. * [Feature] Use normal resolv.conf rules of rotation in Rspamd
  75. * [Feature] Use version 2 proto for checking messages
  76. * [Fix] Allow to follow symlinks when safe
  77. * [Fix] Append MX name for authentication results as required
  78. * [Fix] Change default text multiplier from 0.5 to 2.0
  79. * [Fix] Check min_bytes for images as well
  80. * [Fix] Deal with 7bit charsets properly
  81. * [Fix] Deal with 8bit characters in email addresses
  82. * [Fix] Deal with unpaired <a> tags
  83. * [Fix] Detect confighelp in plugins initialisation
  84. * [Fix] Disable certain checks for utf spoof detection
  85. * [Fix] DKIM Signing: avoid nil index when From header is missing
  86. * [Fix] Do not add exact hashes from different parts
  87. * [Fix] Do not check DMARC if SPF or DKIM were not checked
  88. * [Fix] Do not check URLs that are resolved to be redirected
  89. * [Fix] Do not set bayes probability if we don't use it
  90. * [Fix] Do not stop on illegal unicode points - replace them
  91. * [Fix] Fix another race condition in arc checks
  92. * [Fix] Fix arc count logic
  93. * [Fix] Fix ARC signing
  94. * [Fix] Fix brain-damaged spamc protocol for now
  95. * [Fix] Fix calling for peak functions
  96. * [Fix] Fix couple of issues in FORWARDED rule
  97. * [Fix] Fix CTE propagation from parent containers to children parts
  98. * [Fix] Fix errors processing in the controller
  99. * [Fix] Fix format string in milter
  100. * [Fix] Fix issues in SPF macros parsing
  101. * [Fix] Fix logging format string
  102. * [Fix] Fix logic of cached passwords check
  103. * [Fix] Fix lowercasing of stemmed words
  104. * [Fix] Fix LRU elements removal
  105. * [Fix] Fix memory leak when accepting from unix sockets
  106. * [Fix] Fix milter connections persistence
  107. * [Fix] Fix objects merging in UCL
  108. * [Fix] Fix order of operations to avoid race condition
  109. * [Fix] Fix parsing of long regexp types
  110. * [Fix] Fix passing data to log helper when many symbols defined
  111. * [Fix] Fix pools management for milter session
  112. * [Fix] Fix processing of the watchers
  113. * [Fix] Fix queue id macro in milter
  114. * [Fix] Fix R_BAD_CTE_7BIT rule
  115. * [Fix] Fix Redis timeout set
  116. * [Fix] Fix REPLYTO_UNPARSEABLE rule
  117. * [Fix] Fix setting of email address
  118. * [Fix] Fix some more issues about duplicated fuzzy requests
  119. * [Fix] Fix spamc support in rspamd proxy
  120. * [Fix] Fix syntax error in spamtrap plugin
  121. * [Fix] Fix url counts for href urls
  122. * [Fix] Fix url handling in the protocol
  123. * [Fix] Multimap: Received IP filters with Redis
  124. * [Fix] Oops, fix d9d0fa5e86db2f4470d34395a233b450478b2f60
  125. * [Fix] Parse rgb[a](x,x,x[,x]) css colors
  126. * [Fix] Phishing: strict_domains
  127. * [Fix] Reduce maps aggressiveness
  128. * [Fix] Reresolve upstreams even if there is a single server there
  129. * [Fix] Rspamadm grep: Disable Lua patterns in string search by default
  130. * [Fix] Skip text parts when checking binary parts in fuzzy check
  131. * [Fix] Support v2 checks in controller
  132. * [Fix] Treat empty address as valid
  133. * [Fix] Try harder to detect CTE
  134. * [Fix] Try to deal with v4 mapped to v6 addresses on accept
  135. * [Fix] Use dkim signing callback properly
  136. * [Fix] Use non-volatile memory for storing data
  137. * [Fix] Use static maps instead of ugly hack for radix_from_config
  138. * [Fix] Use the same pool for related sessions
  139. * [Rework] Continue modularisation for lua library
  140. * [Rework] Initial milter protocol support
  141. * [Rework] Make log pipes worker agnostic, add scanners API
  142. * [Rework] Move authentication results generation to a separate routine
  143. * [Rework] Move common DKIM functions to a separate lua module
  144. * [Rework] Move global functions to a separate directory
  145. * [Rework] Prepare dkim module for ARC checks
  146. * [Rework] Propagate ucl variables from the command line
  147. * [Rework] Remove multiple metrics support from Rspamd
  148. * [Rework] Stop using name 'rmilter' for the modern protocol
  149. * [Rework] Use LFU algorithm in LRU cache
  150. * [Rules] Fix received TLS rules
  151. * [Rules] Improve URL_COUNT_ODD rule
  152. * [WebUI] Fix add header filter in history
  153. * [WebUI] Use modern protocol for checking messages
  154. 1.5.9:
  155. * [Conf] Increase min_bytes to avoid FP
  156. * [Conf] Remove ratelimits from default configuration
  157. * [CritFix] Fix accepting on IPv6 sockets
  158. * [CritFix] Zero fill sockaddr_un
  159. * [Feature] Add `text_multiplier` param
  160. * [Fix] Check min_bytes for images as well
  161. * [Fix] Do not add exact hashes from different parts
  162. * [Fix] Fix memory leak when accepting from unix sockets
  163. * [Fix] Fix some more issues about duplicated fuzzy requests
  164. * [Fix] Phishing: strict_domains
  165. * [Fix] Skip text parts when checking binary parts in fuzzy check
  166. * [Minor] Add the same duplicates protection for all fuzzy hashes types
  167. * [Minor] Fix braces
  168. * [Minor] Fix test
  169. * [Minor] SPOOF_DISPLAY_NAME: Use all SMTP/MIME recipients
  170. * [Minor] Validate assumed spoofed display name domains to contain a dot
  171. 1.5.8:
  172. * [CritFix] Fix memory leak in fuzzy check
  173. * [CritFix] Fix memory leak in maps scheduling
  174. * [Feature] Multimap: email:domain:tld filter
  175. * [Fix] DKIM Signing: avoid nil index when From header is missing
  176. * [Fix] Do not set bayes probability if we don't use it
  177. * [Fix] Do not stop on illegal unicode points - replace them
  178. * [Fix] Fix brain-damaged spamc protocol for now
  179. * [Fix] Fix Redis timeout set
  180. * [Fix] Fix spamc support in rspamd proxy
  181. * [Fix] Multimap: Received IP filters with Redis
  182. * [Fix] Parse rgb[a](x,x,x[,x]) css colors
  183. * [Fix] Reresolve upstreams even if there is a single server there
  184. * [Fix] Treat empty address as valid
  185. * [Fix] Try harder to detect CTE
  186. * [Fix] Try to deal with v4 mapped to v6 addresses on accept
  187. * [Minor] Add `wsf` and `hta` bad archive extensions
  188. * [Minor] Fix configuration option
  189. * [Minor] Fix result parsing for SAVAPI
  190. * [Minor] Further logging improvements
  191. * [Minor] Improve logging of errors
  192. * [Minor] Prevent MID_CONTAINS_FROM from firing on empty address
  193. * [Minor] Reduce digit->number transmission penalty
  194. * [Minor] Relax CTYPE_MISSING_DISPOSITION rule
  195. 1.5.7:
  196. * [CritFix] Fix corruption when multiple fuzzy are defined
  197. * [CritFix] Fix learn condition in fuzzy check
  198. * [Feature] Add rules to detect bad 8bit characters in From and To
  199. * [Feature] DKIM signing: sign_networks/local address specific use_domain settings
  200. * [Feature] Support numeric arguments for Redis requests
  201. * [Fix] Deal with 8bit characters in email addresses
  202. * [Fix] Fix couple of issues in FORWARDED rule
  203. * [Fix] Fix passing data to log helper when many symbols defined
  204. * [Fix] Fix R_BAD_CTE_7BIT rule
  205. * [Fix] Fix REPLYTO_UNPARSEABLE rule
  206. * [Fix] Fix setting of email address
  207. * [Fix] Rspamadm grep: Disable Lua patterns in string search by default
  208. * [Minor] Add Lua 5.3 workaround
  209. * [Minor] Add lua methods to detect if a part has 8bit characters
  210. * [Minor] Allow session-less lua dns requests
  211. * [Minor] Allow to append greylist end time to message reported
  212. * [Minor] Avoid `nil` table
  213. * [Minor] Disable dkim_signing if redis is specified but not configured
  214. * [Minor] Fix build with pcre2
  215. * [Minor] Fix rule
  216. * [Minor] Fix warnings
  217. * [Minor] Format floating point number
  218. * [Minor] Push email flags to the lua API
  219. * [Minor] Silence some warnings
  220. * [Minor] Silence warning
  221. * [Minor] Try all hostname regexps to find the most significant one
  222. * [WebUI] Fix add header filter in history
  223. 1.5.6:
  224. * [Feature] Add unigramms support in bayes
  225. * [Feature] Allow configurable sign headers for DKIM
  226. * [Feature] Allow to add unigramm metatokens from Lua
  227. * [Feature] DKIM Signing: envelope match exception for local IPs
  228. * [Feature] UCL: register parser variables from Lua
  229. * [Fix] Always try to adjust filename
  230. * [Fix] Do extra copy to ensure that original content is never touched
  231. * [Fix] Fix SPOOF_REPLYTO rule
  232. * [Fix] Ignore Rmilter added Received
  233. * [Fix] More fixes for hashed email dnsbls
  234. * [Fix] Plug memory leak in chartable module
  235. * [WebUI] Display multiple alerts at once
  236. 1.5.5:
  237. * [CritFix] Fix classifier learning with Redis backend
  238. * [CritFix] Fix issue when parsing encoded rfc822/messages
  239. * [Feature] Add escaped version of lua_ucl import
  240. * [Feature] Add task:headers_foreach function
  241. * [Feature] Allow to process filenames from content type
  242. * [Feature] Allow to query hashed emails
  243. * [Feature] Ignore bayes with mostly metatokens or with too few text
  244. * [Feature] Probabilistically skip metatokens
  245. * [Feature] Retrieve all virus names from SAVAPI
  246. * [Feature] Rework classifiers lua metatokens
  247. * [Feature] Store headers order
  248. * [Feature] Store text tokens inside bayes tokens
  249. * [Feature] Use cached shingles keys
  250. * [Fix] Add missing score normalisation for HFILTER_URL_ONLY
  251. * [Fix] Avoid lookup in absent hash
  252. * [Fix] Check return values from Lua functions called from C
  253. * [Fix] Do not count sending and loading time in rspamc
  254. * [Fix] Escape json strings for controller rejplies from Lua
  255. * [Fix] Fix archive scans for savapi
  256. * [Fix] Fix domain_only emails RBL
  257. * [Fix] Fix ip_score map configuration
  258. * [Fix] Fix JSON output for history_redis
  259. * [Fix] Fix one character length substrings search
  260. * [Fix] Fix parsing of non-RFC compatible Exim received
  261. * [Fix] Fix parsing of options for workers with the same type
  262. * [Fix] Fix processing of small tokens vectors
  263. * [Fix] Fix rfc2047 tokenization
  264. * [Fix] Fix typo
  265. * [Fix] More fixes for inplace decoding
  266. * [Fix] Try to avoid modifications of the original data
  267. * [Fix] URL redirector: Fix call to is_redirector
  268. * [Rework] Set token data as uint64_t instead of chars array
  269. * [WebUI] Check if neighbours' history backend versions match
  270. * [WebUI] Disable phrase connectors replacement in history filtering
  271. * [WebUI] Disable phrase connectors replacement in symbols filtering
  272. * [WebUI] Do not hide messages with bad subject, just replace it with '???'
  273. * [WebUI] Fix error message
  274. * [WebUI] Fix history v2 display
  275. * [WebUI] Fix legacy history
  276. * [WebUI] history: break To address lists on commas
  277. * [WebUI] Increase default timeout to 20 seconds
  278. * [WebUI] Save some history table space
  279. 1.5.4:
  280. * [Conf] Add history_redis default configuration
  281. * [Feature] Add spoofed rules
  282. * [Feature] Add URL_IN_SUBJECT rule
  283. * [Feature] Allow to get task's subject
  284. * [Feature] Allow to specify maximum number of shots for symbols
  285. * [Feature] Distinguish URLs found in Subject
  286. * [Feature] Memoize LPEG grammars
  287. * [Feature] Parse else parts in SA rules
  288. * [Feature] Process subject for mixed characters
  289. * [Feature] Resolve url chains in url_redirector module
  290. * [Feature] Stat greylisted messages as greylisted not soft-rejected
  291. * [Feature] Support checking for redirector in Lua SURBL
  292. * [Feature] Support tag_exists SA function
  293. * [Feature] Work with broken rfc2047 tokens
  294. * [Fix] Check all watcher's dependencies
  295. * [Fix] Do not compile hyperscan with no SSSE3 support
  296. * [Fix] Do not crash if cannot decode qp encoded part
  297. * [Fix] Fix dependencies of DKIM when multiple signatures are found
  298. * [Fix] Fix lists in whitelist plugin
  299. * [Fix] Fix one-shot symbols weight calculations
  300. * [Fix] Fix options and shots match
  301. * [Fix] Fix order of symbol options
  302. * [Fix] Fix parsing of dot at the end of the address
  303. * [Fix] Fix parsing of lua table arguments
  304. * [Fix] Fix processing of subject words
  305. * [Fix] Fix string split memoization
  306. * [Fix] Fix templates grammar usage
  307. * [Fix] Fix various issues related to Lua stack manipulation
  308. * [Fix] Force actions: Use postfilter if we have honor_action / require_action
  309. * [Fix] Further fixes to avoid PHISHING FP
  310. * [Fix] Preserve order of options in symbols
  311. * [Fix] Rspamadm grep: deal with unusually-formatted logs
  312. * [Fix] Use hostname suffix when dealing with history
  313. * [Rework] Remove outdated SA rules
  314. * [WebUI] Add flexible columns
  315. * [WebUI] Add footable
  316. * [WebUI] Add sender, recipients and subject columns
  317. * [WebUI] Allow message-id break
  318. * [WebUI] Fix history clustering
  319. * [WebUI] Fix history display
  320. * [WebUI] Fix sorting
  321. * [WebUI] Humanize sizes
  322. * [WebUI] Initial move towards footable
  323. * [WebUI] Remove datatables
  324. * [WebUI] Replace `.values` method with `.map`
  325. * [WebUI] Rework v2 symbols display
  326. * [WebUI] Try to normalize frequencies
  327. * [WebUI] Unbreak WebUI
  328. * [WebUI] Use Footable to draw Throughput summary table
  329. 1.5.3:
  330. * [Conf] Add composite for hacked wordpress phishing
  331. * [CritFix] Fix base64 decoding when there are unparseable characters
  332. * [Feature] Additional symbol metadata in metadata exporter
  333. * [Feature] Add method to get protocol reply from Lua
  334. * [Feature] Add symbols when tagged rcpt/sender are normalised
  335. * [Feature] Add task:get_symbols_all() function
  336. * [Feature] Allow multiple formats of DKIM signing key
  337. * [Feature] Allow to cache and use flexible protocol reply
  338. * [Feature] Allow to set one_shot flag from register_symbol
  339. * [Feature] Allow to skip certain types of hashes when learning fuzzy
  340. * [Feature] Cache and insert scan time into the protocol
  341. * [Feature] Detect newlines in rspamc --mime
  342. * [Feature] DKIM signing: support use of maps
  343. * [Feature] Greylist: Support excluding low-scoring messages from greylisting
  344. * [Feature] Implement lua history in controller
  345. * [Feature] Implement redis history querying
  346. * [Feature] Preliminary implementation of redis history plugin
  347. * [Feature] Support using request headers in settings
  348. * [Fix] Change default template to deal with non-ASCII characters
  349. * [Fix] Deal with lists of maps in whitelist module
  350. * [Fix] DKIM signing: use domain-specific signing key
  351. * [Fix] Do not reallocate completed zstd buffer
  352. * [Fix] Do not use local_addrs in proxy
  353. * [Fix] Fix crash when resolver is undefined
  354. * [Fix] Fix double free when closing lua_tcp connections
  355. * [Fix] Fix for lua 5.3
  356. * [Fix] Fix freeing of arrays iterators
  357. * [Fix] Fix issue with task:get_symbol and symbols with no metric
  358. * [Fix] Fix log line duplication in `rspamadm grep`
  359. * [Fix] Fix memory corruption on termination
  360. * [Fix] Fix out-of-bound access in base64 decode
  361. * [Fix] Fix ratelimit + greylisting
  362. * [Fix] Fix subject rewriting
  363. * [Fix] Fix task:set_recipients function
  364. * [Fix] Fix URI_COUNT_ODD rule
  365. * [Fix] Follow the traditional symbols conventions in RCPT_COUNT rule
  366. * [Fix] Greylist: Suppress greylist action for whitelisted hosts too
  367. * [Fix] Metadata exporter: use rule-specific settings for emails
  368. * [Fix] Properly set missing fields in exporter
  369. * [Fix] Proxy: max_retries option
  370. * [Fix] RCPT_COUNT fixes
  371. * [Fix] Rework HAS_X_PRIO rule to match symbols conventions
  372. * [Fix] Update issues in ac-trie
  373. * [Fix] Use optimised base64 decoding in DKIM
  374. * [WebUI] Add preliminary v2 history parser
  375. * [WebUI] Allow different history parsers
  376. * [WebUI] Display symbols
  377. * [WebUI] Rework history v2 function
  378. 1.5.2:
  379. * [Conf] Add default config for spamassasssin plugin
  380. * [Conf] Add default configuration for antivirus module
  381. * [Conf] Add dkim signing docs
  382. * [Conf] Add mx_check default config
  383. * [Conf] Add replies config
  384. * [Conf] Add trie default config
  385. * [Feature] Add heuristic to find text parts in files
  386. * [Feature] Add rule to detect broken content type
  387. * [Feature] Allow to extract CTE in Lua API
  388. * [Feature] Allow to set from address for a lua_task
  389. * [Feature] Allow to set recipients of a task from Lua
  390. * [Feature] Enchance text_part:get_content method
  391. * [Feature] Remove + aliases from emails
  392. * [Feature] Support rmilter block and dkim signature in CGP helper
  393. * [Feature] Support running event loop from Lua
  394. * [Fix] Antivirus: use scanner-specific redis prefix
  395. * [Fix] Couple of fixes for DKIM signing module
  396. * [Fix] Distinguish missing and broken mandatory headers
  397. * [Fix] Do more heuristical detection for missing CTE
  398. * [Fix] Do not resort cache on each check
  399. * [Fix] Fix CGP escaping
  400. * [Fix] Fix MISSING_MIME_VERSION rule for plain messages
  401. * [Fix] Fix parsing of cte in expressions
  402. * [Fix] Fix partial matches in rspamadm grep
  403. * [Fix] Fix setting class on style field
  404. * [WebUI] Auto-switch Throughput units to `msg/min` for very low rate
  405. * [WebUI] Update D3Evolution to 0.0.2
  406. 1.5.1:
  407. * [CritFix] Fix processing of stop_patterns with `\0` character
  408. * [CritFix] Fix setting of raw key for signing
  409. * [Fix] Fix lua exports from plugins during reload
  410. * [Fix] Fix prefilters action scores
  411. * [Fix] Fix symbols processing order
  412. * [Minor] Help cmake find gthread
  413. * [Minor] Some cmake fixes
  414. 1.5.0:
  415. * [Conf] Add configurations for asn, clickhouse and dcc
  416. * [Conf] Add default config for url redirector plugin
  417. * [Conf] Add the default config for greylist module
  418. * [Conf] Allow to edit all local maps from WebUI by default
  419. * [CritFix] Deal with absent headers in DKIM
  420. * [CritFix] Do not trust remote shingles count
  421. * [CritFix] Fix bad memory leak in TLS certificates validation
  422. * [CritFix] Fix critical memory issues with radix maps
  423. * [CritFix] Fix descriptors leak on reload
  424. * [CritFix] Fix headers selection in DKIM verification
  425. * [CritFix] Fix parsing of boundaries that end with `--`
  426. * [CritFix] Repair PTR_ARRAY_FOREACH macro
  427. * [Feature] Add CORS support to the controller
  428. * [Feature] Add FROM_NAME_EXCESS_SPACE rule
  429. * [Feature] Add REPLYTO_EMAIL_HAS_TITLE rule
  430. * [Feature] Add `caseless_hash` method to `lua_util`
  431. * [Feature] Add `rip` keyword to ratelimit module
  432. * [Feature] Add a simple benchmark for content type parsing
  433. * [Feature] Add boundaries parsing in content type
  434. * [Feature] Add charset detection for text parts
  435. * [Feature] Add content disposition parser
  436. * [Feature] Add fallback if too many updates are failing
  437. * [Feature] Add function to convert struct tm to time using timezone
  438. * [Feature] Add function to normalize HTTP paths
  439. * [Feature] Add fuzzy collection plugin
  440. * [Feature] Add fuzzy logic for images
  441. * [Feature] Add gmime parser to mime_tool
  442. * [Feature] Add heuristic to detect broken messages
  443. * [Feature] Add heuristic to find displayed URLs
  444. * [Feature] Add heuristic to process broken email addresses
  445. * [Feature] Add images normalization
  446. * [Feature] Add mechanism for disabling composites (Fixes #1270)
  447. * [Feature] Add method to create regexp from a glob pattern
  448. * [Feature] Add mime encoding manipulation routines
  449. * [Feature] Add mime tool to explore messages
  450. * [Feature] Add more meta tokens from received headers
  451. * [Feature] Add neighbours option to support Rspamd cluster in WebUI
  452. * [Feature] Add new function to parse mime addresses
  453. * [Feature] Add new methods for lua_tcp
  454. * [Feature] Add own headers decoding routine
  455. * [Feature] Add own routine to generate a message id
  456. * [Feature] Add parser for SMTP date
  457. * [Feature] Add per-task lua cache to reuse 'heavy' objects
  458. * [Feature] Add plugins list path in WebUI
  459. * [Feature] Add preliminary multipart support
  460. * [Feature] Add preliminary version of DKIM signing module
  461. * [Feature] Add profiling support in client output
  462. * [Feature] Add rfc2047 grammar
  463. * [Feature] Add rfc2047 variant for QP decoding
  464. * [Feature] Add rmilter_headers module (Fixes #1227)
  465. * [Feature] Add sse42 version of base64 decoding
  466. * [Feature] Add ssse3 and avx2 base64 decoders
  467. * [Feature] Add support of libgd
  468. * [Feature] Add the preliminary version of redirects resolver in Lua
  469. * [Feature] Add ucl_object_iterate_full function
  470. * [Feature] Add url encoding function
  471. * [Feature] Allow SOA requests in lua dns
  472. * [Feature] Allow custom parse types in lua ucl
  473. * [Feature] Allow plugins to register webui handlers
  474. * [Feature] Allow to add options explicitly to symbols
  475. * [Feature] Allow to call a callback when symbol frequency is on peak
  476. * [Feature] Allow to call redirector script from SURBL
  477. * [Feature] Allow to create variable length dkim keys
  478. * [Feature] Allow to have module specific options for Redis in plugins
  479. * [Feature] Allow to pass sign key directly from Lua
  480. * [Feature] Allow to register configuration docs from Lua API
  481. * [Feature] Allow to return options as a table
  482. * [Feature] Allow to set peak callbacks from Lua
  483. * [Feature] Allow to specify custom method for a message
  484. * [Feature] Allow to store dkim keys in Redis
  485. * [Feature] Allow to store messages in files
  486. * [Feature] Apply DCT using AAN for fuzzy signature
  487. * [Feature] Avira SAVAPI support
  488. * [Feature] Cache and simplify DCT and jpeg decode
  489. * [Feature] Cache libicu converters
  490. * [Feature] Detect URLs with suspicious omographs
  491. * [Feature] Do not increase score for duplicate options
  492. * [Feature] Do not trust CTE, check base64 and qp strictly
  493. * [Feature] Dynamic reputation in URL reputation plugin
  494. * [Feature] Extend redis lock when learning spawned
  495. * [Feature] Filter non-utf chars from all decoded headers
  496. * [Feature] Fix phishing detection for IDNA urls
  497. * [Feature] Ignore bad symbols on base64 decoding
  498. * [Feature] Ignore too wide elements in SPF
  499. * [Feature] Implement fuzzy collection mode
  500. * [Feature] Implement helo maps in multimap
  501. * [Feature] Implement human readable buckets configuration
  502. * [Feature] Implement min-hash shingles for DCT data from images
  503. * [Feature] Implement new algorithm for fuzzy hashes of images
  504. * [Feature] Implement new unicode normalizer
  505. * [Feature] Implement quoted printable decoding
  506. * [Feature] Implement received headers flags
  507. * [Feature] Implement rspamdgrep tool
  508. * [Feature] Implement sane checksum for config file
  509. * [Feature] Implement url tags concept
  510. * [Feature] Improve detection of omographs using libicu
  511. * [Feature] Improve url redirector module
  512. * [Feature] Multimap: Received header processing
  513. * [Feature] Multiple improvements in the maps
  514. * [Feature] New URL filters in multimap
  515. * [Feature] Plugin to force actions on selected symbols
  516. * [Feature] RBL module: support hashing for emails and helo RBL
  517. * [Feature] Reuse URL tags in SURBL module
  518. * [Feature] Rework RRD ds count, add conversion path
  519. * [Feature] Rework surbl module to avoid extra redirector calls
  520. * [Feature] Send config id to the WebUI
  521. * [Feature] Simplify HTTPCrypt client support
  522. * [Feature] Skip processing for large images
  523. * [Feature] Start collection only mode implementation for fuzzy storage
  524. * [Feature] Start import of the optimized base64 decode
  525. * [Feature] Store all received headers in lua
  526. * [Feature] Store relational order of all headers in a message
  527. * [Feature] Support DKIM signing in Lua plugins
  528. * [Feature] Support HTTPCrypt client in lua_http
  529. * [Feature] Support setting SMTP message in multimap
  530. * [Feature] Support setting metric subject from Lua
  531. * [Feature] Support setting subject in force actions module
  532. * [Feature] Treat v6 mapped addresses as v4 addresses
  533. * [Feature] URL reputation plugin
  534. * [Feature] Use Redis instead of memcached in URLs redirector
  535. * [Feature] Use Rspamd rfc2047 decoder instead of gmime one
  536. * [Feature] Use a different normalization for fuzzy images
  537. * [Feature] Use normalized images in fuzzy hashes
  538. * [Feature] Use own code for parsing of date
  539. * [Feature] Use shingles for images fuzzying
  540. * [Feature] Use t1ha for hashes, allow inlining
  541. * [Feature] Use t1ha instead of metrohash and xxhash32
  542. * [Feature] Various new features in metadata exporter module
  543. * [Feature] rmilter_headers: authentication-results (#78)
  544. * [Fix] Add additional check to mark redis connection inactive
  545. * [Fix] Add packed attribute for protocol structure
  546. * [Fix] Adopt OMOGRAPH_URL rule
  547. * [Fix] Allow static maps
  548. * [Fix] Allow to disable classifiers checks using settings and conditions
  549. * [Fix] Another try to fix 0 length maps
  550. * [Fix] Another try to fix corruption during maps reload
  551. * [Fix] Another try to fix descriptors leak
  552. * [Fix] Another try to fix reload and logger
  553. * [Fix] Antivirus module: register virtual symbols for patterns
  554. * [Fix] Avoid extensive reallocs
  555. * [Fix] Avoid mempool leak in SA plugin on reload
  556. * [Fix] Avoid race condition on saving cache and reload
  557. * [Fix] Avoid reusing g_error (Fixes #1262)
  558. * [Fix] Break pool connection on fatal redis errors
  559. * [Fix] Check for NaN properly
  560. * [Fix] Couple of fixes for date parsing
  561. * [Fix] Date header timezone adjustments (#1279)
  562. * [Fix] Deal with EOF properly
  563. * [Fix] Decode filename in content disposition
  564. * [Fix] Disable fuzzy images by default
  565. * [Fix] Disable zero-copy mode for text parts to avoid crashes
  566. * [Fix] Do not destroy session when not all finish scripts are done
  567. * [Fix] Do not greyscale images
  568. * [Fix] Do not leave parent-less workers processes on fatal errors
  569. * [Fix] Do not lowercase Content-Disposition to perform decoding
  570. * [Fix] Do not penalize characters just after numeric prefix
  571. * [Fix] Do not refork workers that are intended to die
  572. * [Fix] Do not set pre-result and update records for no `Queue-ID` messages
  573. * [Fix] Do not skip post-filters when pre-filters have set some results
  574. * [Fix] Do not stop symbols planning if async events are pending
  575. * [Fix] Do not try to set keys for unencrypted requests in proxy
  576. * [Fix] Encode URLs according to rfc3986
  577. * [Fix] Encode URLs before sending them to the protocol
  578. * [Fix] Filter bad characters from message id
  579. * [Fix] Fix CTE detection heuristic
  580. * [Fix] Fix Content-Type in HTTP requests
  581. * [Fix] Fix IDN eslds phishing checks
  582. * [Fix] Fix adding maps from config in Lua
  583. * [Fix] Fix another reload memory issue
  584. * [Fix] Fix argument returned on redis backend errors
  585. * [Fix] Fix assertion in graph handling
  586. * [Fix] Fix body trie matching
  587. * [Fix] Fix build
  588. * [Fix] Fix byte array expansion during toutf8 conversion
  589. * [Fix] Fix charset normalisation
  590. * [Fix] Fix checking of DKIM bodies that needs just `\n` to be added
  591. * [Fix] Fix couple of cornercases with email addresses
  592. * [Fix] Fix couple of issues
  593. * [Fix] Fix dependencies tracking for callback symbols
  594. * [Fix] Fix detection of jpeg size
  595. * [Fix] Fix errors handling in fuzzy backend initialization
  596. * [Fix] Fix fuzzy hashes count
  597. * [Fix] Fix globbing and convert lists to arrays in fuzzy_check
  598. * [Fix] Fix heuristical CTE detection for QP encoding
  599. * [Fix] Fix ignoring of bad text parts
  600. * [Fix] Fix indexes in array access, interleave loop
  601. * [Fix] Fix int64 -> double conversion
  602. * [Fix] Fix invalid memory access on reload
  603. * [Fix] Fix issues with empty updates
  604. * [Fix] Fix issues with quoted-printable encoding
  605. * [Fix] Fix keys names
  606. * [Fix] Fix lots of issues in mime parser code
  607. * [Fix] Fix lua maps load
  608. * [Fix] Fix macro name
  609. * [Fix] Fix mas group score calculations
  610. * [Fix] Fix matching of the same patterns from different tries
  611. * [Fix] Fix memory corruprtion and leak
  612. * [Fix] Fix memory leak in HTTP maps
  613. * [Fix] Fix memory leak in expression destroying
  614. * [Fix] Fix memory leak in parsing of mime names
  615. * [Fix] Fix memory leak in safe ucl iterators
  616. * [Fix] Fix memory leak on reload in plugins
  617. * [Fix] Fix modules reconfigure on reload
  618. * [Fix] Fix monitored setup fro URLBLs with IP addresses
  619. * [Fix] Fix name of var
  620. * [Fix] Fix new rrd updates
  621. * [Fix] Fix out of bounds access
  622. * [Fix] Fix parsing messages with no body
  623. * [Fix] Fix parsing of '=' character in headers
  624. * [Fix] Fix parsing of messages with no content type
  625. * [Fix] Fix plugins callbacks in webui
  626. * [Fix] Fix possible memory corruption in redis pool
  627. * [Fix] Fix probability calculations for fuzzy redis backend
  628. * [Fix] Fix processing errors in lua_tcp
  629. * [Fix] Fix processing of emails with name only
  630. * [Fix] Fix processing of non-multipart messages
  631. * [Fix] Fix processing of parts with no valid content type
  632. * [Fix] Fix race condition in SIGUSR2 handler
  633. * [Fix] Fix redis options parsing when no redis servers are defined
  634. * [Fix] Fix reload and hyperscan ready event
  635. * [Fix] Fix reload memory issue
  636. * [Fix] Fix rra_ptr conversion
  637. * [Fix] Fix rrd file conversion
  638. * [Fix] Fix setting of content-type attributes
  639. * [Fix] Fix signing headers creation in DKIM
  640. * [Fix] Fix stddev calculations
  641. * [Fix] Fix surbl plugin to work with composite maps
  642. * [Fix] Fix timezones parsing
  643. * [Fix] Fix tokens usage
  644. * [Fix] Fix urls and emails hashes
  645. * [Fix] Fix usage of unsafe ucl iterators
  646. * [Fix] Fix work with broken utf8 tokens
  647. * [Fix] Fix writing of user to roll history
  648. * [Fix] Forgotten worker
  649. * [Fix] Further memory leaks fixes
  650. * [Fix] Ignore lua metatokens in bayes for now
  651. * [Fix] Improve OMOGRAPH_URL rule
  652. * [Fix] Lua IP from string should be invalid if parsing failed
  653. * [Fix] Miltiple fixes to new lua_tcp, add debugging
  654. * [Fix] More fixes for iterators cleanup
  655. * [Fix] More fixes to logger initialization
  656. * [Fix] More heuristic fixes for phishing detection
  657. * [Fix] More leaks eliminated
  658. * [Fix] More leaks...
  659. * [Fix] More random fixes for reload...
  660. * [Fix] Multimap: Fixes for email filters
  661. * [Fix] Multiple fixes for fann module
  662. * [Fix] Multiple memory corruption fixes
  663. * [Fix] Normalize path in HTTP router
  664. * [Fix] Plug memory leak
  665. * [Fix] Plug memory leak in adding radix trees
  666. * [Fix] Plug memory leak in configuration parser
  667. * [Fix] Plug memory leak in expressions parsing during reload
  668. * [Fix] Plug memory leak in learning fuzzy storage
  669. * [Fix] Plug memory leak in lua_tcp
  670. * [Fix] Plug reload leaks
  671. * [Fix] Plug termination memory leaks
  672. * [Fix] Really increase lock lifetime
  673. * [Fix] Replies module: fix symbol weight
  674. * [Fix] Restore content type params related functions
  675. * [Fix] Set task's subject from mime subject
  676. * [Fix] Sigh, one more reload leak
  677. * [Fix] Simplify images shingles
  678. * [Fix] Some more memory issues are fixed
  679. * [Fix] Stop hardcoding of lua in C
  680. * [Fix] Stop processing of bad parts as text parts
  681. * [Fix] Strictly filter bad characters when emittin json
  682. * [Fix] Strings returned from lua are ephemeral
  683. * [Fix] Support unix sockets for lua redis
  684. * [Fix] Try to fix issues with reloading config
  685. * [Fix] Try to fix race condition in redis_pool
  686. * [Fix] Use checksum to avoid intersection between different ANNs
  687. * [Fix] Use rspamd hashes in embedded ucl
  688. * [Fix] Use sane default rewrite subject (*** SPAM *** %s)
  689. * [Fix] Various collection mode fixes
  690. * [Fix] Various fixes to mime parser
  691. * [Fix] Various reload leak fixing
  692. * [Fix] Whitelist certain extensions from archive checks
  693. * [Rework] Add preliminary implementation of the mime parser
  694. * [Rework] Adopt code for the new options
  695. * [Rework] Change logger setup interface
  696. * [Rework] Composite configuration (#1270)
  697. * [Rework] Finally remove gmime dependency from Rspamd
  698. * [Rework] Further fixes to symbols frequencies
  699. * [Rework] Implement content type parser for mime
  700. * [Rework] Kill all InternetAddressList usages
  701. * [Rework] Multiple fixes for symbols cache statistics
  702. * [Rework] Refactor struct names
  703. * [Rework] Rework images fuzzy hashes algorithm
  704. * [Rework] Rework lua_tcp to allow TCP dialog
  705. * [Rework] Start massive rework to get rid of gmime
  706. * [Rework] Start new approach for multiparts parsing
  707. * [Rework] Start rework of mime addresses
  708. * [Rework] Start rework of symbols cache updates
  709. * [Rework] Start switching to libicu
  710. * [Rework] Use a special structure for stats tokens
  711. * [Rework] Use hash tables for symbols options
  712. * [Rework] Use libicu instead of iconv for conversions
  713. * [Rework] Use new scheme to parse mime parts
  714. * [WebUI] Add Access-Control-Allow-Origin for cluster management
  715. * [WebUI] Add Throughput graph autorefreshing (#820)
  716. * [WebUI] Add Visibility.js library
  717. * [WebUI] Add basic cluster support to Throughput tab
  718. * [WebUI] Add graph legend entries for new DSes
  719. * [WebUI] Add graph tab
  720. * [WebUI] Add neighbours RRD data consolidation
  721. * [WebUI] Add preliminary save symbols clustering
  722. * [WebUI] Add server selector to navbar
  723. * [WebUI] Add soft reject to auth stats
  724. * [WebUI] Add summary to the Throughput tab
  725. * [WebUI] Allow to save maps on the cluster
  726. * [WebUI] Avoid extra graph redraw and alerts glitching
  727. * [WebUI] Be more generous with AJAX timeout
  728. * [WebUI] Disable error ring loading in `read only` mode
  729. * [WebUI] Enclose table header cells with `tr`s
  730. * [WebUI] Finish interface rework
  731. * [WebUI] Fix RRD summary pie chart position
  732. * [WebUI] Fix `All SERVERS` graph fot just one available server
  733. * [WebUI] Fix case when no cluster is defined
  734. * [WebUI] Fix compatibility with non-ES6 compliant browsers
  735. * [WebUI] Fix config ID
  736. * [WebUI] Fix configuration page partially
  737. * [WebUI] Fix disabled state
  738. * [WebUI] Fix graph dataset selector initialization
  739. * [WebUI] Fix graph selectors state resetting
  740. * [WebUI] Fix mouse events on throughput summary table area
  741. * [WebUI] Fix multiple JS issues
  742. * [WebUI] Fix pie chart displaying
  743. * [WebUI] Fix read only
  744. * [WebUI] Fix read only2
  745. * [WebUI] Fix retarded datatables
  746. * [WebUI] Fix soft reject in pie chart
  747. * [WebUI] Fix stat widgets timers multiplication on `Refresh` click
  748. * [WebUI] Fix symbols config
  749. * [WebUI] Fix various errors with login form
  750. * [WebUI] Further fixes
  751. * [WebUI] Hide learning tab in read-only mode
  752. * [WebUI] Initial clusters support
  753. * [WebUI] Make legend entry colours more contrast
  754. * [WebUI] Move configuration tab to a separate module
  755. * [WebUI] Move history tab
  756. * [WebUI] Move symbols config as well
  757. * [WebUI] New sec to time function
  758. * [WebUI] Prevent multiple clicks on `Refresh`
  759. * [WebUI] RRD summary: Hide inner labels of tiny pie sectors
  760. * [WebUI] RRD summary: Respect undefined values
  761. * [WebUI] Reduce font size of graph's legend
  762. * [WebUI] Remove orphaned font duplicates
  763. * [WebUI] Remove unused code
  764. * [WebUI] Replace spinner with animated glyphicon
  765. * [WebUI] Reset refresh timer on server switching
  766. * [WebUI] Rework interface to use requirejs
  767. * [WebUI] Rework neighbours query function
  768. * [WebUI] Separate attributes by space
  769. * [WebUI] Set focus to password field (#1230)
  770. * [WebUI] Simplify neighbours table populating
  771. * [WebUI] Start rework of modules
  772. * [WebUI] Stop stats refreshing if the page is hidden
  773. * [WebUI] Turn d3pie's stuff into a reusable function,
  774. * [WebUI] Unify send data functions
  775. * [WebUI] Update D3Evolution to 0.0.1
  776. * [WebUI] Update d3.js
  777. * [WebUI] Update datatables to work with the requirejs
  778. * [WebUI] Use unified tab click event handler,
  779. * [WebUI] clusters for the chart
  780. * [WebUI] fix uptime
  781. 1.4.2:
  782. * [CritFix] Deal with absent headers in DKIM
  783. * [CritFix] Do not trust remote shingles count
  784. * [CritFix] Fix headers selection in DKIM verification
  785. * [Feature] Add EXT_CSS rule
  786. * [Feature] Add toggle for disabling SURBLs
  787. * [Feature] Extend redis lock when learning spawned
  788. * [Feature] Parse <link> HTML tags
  789. * [Fix] Avoid reusing g_error (Fixes #1262)
  790. * [Fix] Do not reset loaded ANN when learning is requested
  791. * [Fix] Fix another issue with external deps in SA
  792. * [Fix] Fix body trie matching
  793. * [Fix] Fix checking of DKIM bodies that needs just `\n` to be added
  794. * [Fix] Fix fuzzy hashes count
  795. * [Fix] Fix keys names
  796. * [Fix] Fix length calculations for url encoded urls
  797. * [Fix] Fix matching of the same patterns from different tries
  798. * [Fix] Fix name of var
  799. * [Fix] Fix parsing of URLs with spaces and other bad chars
  800. * [Fix] Fix probability calculations for fuzzy redis backend
  801. * [Fix] Fix signing headers creation in DKIM
  802. * [Fix] Plug memory leak
  803. * [Fix] Really fix chained SA dependencies
  804. * [Fix] Really increase lock lifetime
  805. * [Fix] Use checksum to avoid intersection between different ANNs
  806. * [Fix] Use rspamd hashes in embedded ucl
  807. * [Fix] Yet another change for testing external deps
  808. 1.4.1:
  809. * [Feature] ASN support in Clickhouse module
  810. * [Feature] Add clickhouse plugin
  811. * [Feature] Add generic tool to add universal maps for lua modules
  812. * [Feature] Add logger.debugm to debug lua modules
  813. * [Feature] Allow to register metrics symbols using register_symbol
  814. * [Feature] Allow to specify prefix for fann_redis
  815. * [Feature] Clickhouse: support different masks for IPv4/IPv6
  816. * [Feature] Support forcing action in antivirus plugin
  817. * [Fix] Add handling of regexp maps
  818. * [Fix] Allow backslashes in http urls
  819. * [Fix] Avoid mapping of empty files
  820. * [Fix] Do not load tld file to speed up rspamadm
  821. * [Fix] Do not resolve numeric IP addresses due to ipv6 insanity
  822. * [Fix] Filter incorrect training data
  823. * [Fix] Fix Fuzzyconvert tool when password or DB is given
  824. * [Fix] Fix build with custom glib/gmime
  825. * [Fix] Fix converting of learn count from sqlite to redis
  826. * [Fix] Fix crashes with invalid received and task:set_from_ip
  827. * [Fix] Fix external dependencies for SA module
  828. * [Fix] Fix fann_redis when number of scores has been changed
  829. * [Fix] Fix hyperscan usage for non compatible platforms
  830. * [Fix] Fix loading of maps from UCL objects
  831. * [Fix] Fix memory leak for task-less redis requests
  832. * [Fix] Fix mid module with new maps syntax
  833. * [Fix] Fix parsing of URLs with username
  834. * [Fix] Fix re cache initialisation
  835. * [Fix] Fix replacements to sanitize '%' character
  836. * [Fix] Fix set and regexp like static maps
  837. * [Fix] Fix some issues in redis settings
  838. * [Fix] Fix static IP maps
  839. * [Fix] Fix total learns counter for redis stats
  840. * [Fix] Fix usage of config during reload
  841. * [Fix] Fix various warnings and issues
  842. * [Fix] Invalidate ANN if training data is incorrect
  843. * [Fix] Miltiple fixes to fann_redis module
  844. * [Fix] More fixes for URLs with backslashes
  845. * [Fix] Properly get options for ip_score module
  846. * [Fix] Relax requirements for Received as gmail cannot RFC
  847. * [Fix] Remove or fix hyperscan incompatible regexps
  848. * [Fix] Settings: correctly read redis config
  849. * [Rework] Rework lua logger interface slightly
  850. * [Rework] Use new maps add function
  851. 1.4.0:
  852. * [CritFix] Add guards for inactive redis connections
  853. * [CritFix] Another fix for proxying files using rspamd_proxy
  854. * [CritFix] Cleanup inactive redis connections
  855. * [CritFix] Do not sometimes try to exec posfilters before classification
  856. * [CritFix] Fix application of IPv6 mask
  857. * [CritFix] Fix chunked encoding when reading messages
  858. * [CritFix] Fix file mode for rspamd_proxy
  859. * [CritFix] Fix hyperscan compilation on regexp change
  860. * [CritFix] Fix issue with finding of end of lines pointers
  861. * [CritFix] Fix iteration over headers array (introduced in 1.4)
  862. * [CritFix] Fix processing of learned tokens count for redis backend
  863. * [CritFix] Fix race condition in checking of cached maps
  864. * [CritFix] Fix workers scripts by sharing workers configs
  865. * [CritFix] Introduce raw content to text parts
  866. * [CritFix] Plug memory leak and potential memory corruption
  867. * [Feature] Adaptive ratelimits
  868. * [Feature] Add ASN -> rbldnsd script for asn.rspamd.com
  869. * [Feature] Add DMARC_NA symbol
  870. * [Feature] Add F-Prot support to antivirus module
  871. * [Feature] Add HTTP backend to metadata exporter
  872. * [Feature] Add Lua API module for monitored objects
  873. * [Feature] Add R_DKIM_NA / R_SPF_NA / AUTH_NA symbols
  874. * [Feature] Add R_DKIM_PERMFAIL symbol
  875. * [Feature] Add R_SPF_PERMFAIL symbol
  876. * [Feature] Add Sophos antivirus support
  877. * [Feature] Add ZSTD compression to Lua API
  878. * [Feature] Add `mid` Lua module
  879. * [Feature] Add `one_param` flag for metric symbols
  880. * [Feature] Add a generic lua classifier
  881. * [Feature] Add a very basic interface to access workers data from on_load
  882. * [Feature] Add ability to delete a hash by its data to fuzzy_check plugin
  883. * [Feature] Add ability to enable/disable symbols via dynamic_conf
  884. * [Feature] Add ability to lookup settings by key
  885. * [Feature] Add common way to disable Lua modules
  886. * [Feature] Add compression support to rspamd client
  887. * [Feature] Add condition to do antiviral check
  888. * [Feature] Add configuration for lua classifiers
  889. * [Feature] Add configuration knobs for the errors circular buffer
  890. * [Feature] Add decompression support in rspamd client
  891. * [Feature] Add errors exporter to the controller
  892. * [Feature] Add expected value for monitored DNS resources
  893. * [Feature] Add exporter from error ringbuf to ucl
  894. * [Feature] Add extended version for fann creation function
  895. * [Feature] Add ffi friendly version of process_regexp function
  896. * [Feature] Add frequency and time display to webui
  897. * [Feature] Add fuzzy_delhash command to rspamc client
  898. * [Feature] Add implementation of redis connections pool
  899. * [Feature] Add latency and offline time monitoring
  900. * [Feature] Add learning support for lua classifiers
  901. * [Feature] Add max-size and timeout options to CGP helper
  902. * [Feature] Add method to enable/disable symbols in config
  903. * [Feature] Add methods to get metric's actions and symbols from Lua
  904. * [Feature] Add mmap support to lua_text
  905. * [Feature] Add monitored object for surbl plugin
  906. * [Feature] Add more exceptions to surbl whitelist
  907. * [Feature] Add more meta-tokens to bayes
  908. * [Feature] Add neural net classifier to fann_scores module
  909. * [Feature] Add neural net serialization/deserialization
  910. * [Feature] Add new dynamic conf module
  911. * [Feature] Add periodic events support for lua_config
  912. * [Feature] Add plugin to check MX'es for the sender's domain
  913. * [Feature] Add preliminary monitored module
  914. * [Feature] Add preliminary support of dynamic conf updates in Redis
  915. * [Feature] Add preliminary version of clamav plugin
  916. * [Feature] Add redis cache to asn module
  917. * [Feature] Add replies compression
  918. * [Feature] Add spamhaus DROP dnsbl
  919. * [Feature] Add support for dictionary in client compression
  920. * [Feature] Add support for fuzzy learn and unlearn from lua
  921. * [Feature] Add support for input encryption
  922. * [Feature] Add support of min_learns to neural net classifier
  923. * [Feature] Add termination callbacks for workers
  924. * [Feature] Add user-agent for rspamc
  925. * [Feature] Add utility to perform classifier tests
  926. * [Feature] Add zstd compression library
  927. * [Feature] Allow HTTPS requests in lua_http
  928. * [Feature] Allow conditions for pre and postfilters
  929. * [Feature] Allow custom functions for ratelimits
  930. * [Feature] Allow for excluding messages from AV scanning based on size
  931. * [Feature] Allow for getting worker stats from Lua
  932. * [Feature] Allow getting task UID from Lua
  933. * [Feature] Allow parsing of mailbox messages from the commandline
  934. * [Feature] Allow plugins to publish their lua API via rspamd_plugins
  935. * [Feature] Allow to compare other systems with Rspamd
  936. * [Feature] Allow to execute Lua scripts by controller
  937. * [Feature] Allow to have a function to set custom greylist message
  938. * [Feature] Allow to iterate over multiple tags
  939. * [Feature] Allow to pass extra data from plugins to log helper
  940. * [Feature] Allow to plan new periodics at different time
  941. * [Feature] Allow to reset hashes
  942. * [Feature] Allow to run rspamadm lua just as a lua interpreter
  943. * [Feature] Allow to store settings in redis
  944. * [Feature] Allow to update dynamic conf in Redis
  945. * [Feature] Allow to use dictionaries for compression
  946. * [Feature] Allow to use md5, sha1, sha256, sha384 and sha512 hashes in Lua
  947. * [Feature] Allow whitelisting by IP for greylisting plugin
  948. * [Feature] Antivirus: Support whitelists & pattern-matching sig names
  949. * [Feature] Backport pack/unpack routines from Lua 5.3
  950. * [Feature] Check settings with equal priopities in alphabetical order
  951. * [Feature] Compress neural net in redis
  952. * [Feature] Consider more tags when doing WHITE_ON_WHITE rule
  953. * [Feature] Descriptive options for DMARC failure symbols
  954. * [Feature] Descriptive options for RBL symbols
  955. * [Feature] Enable configuration for monitored objects
  956. * [Feature] Execute on_load scripts with ev_base ready
  957. * [Feature] Fann scores now uses metadata from a message
  958. * [Feature] Implement FANN threaded learning
  959. * [Feature] Implement classifying for lua classifiers
  960. * [Feature] Implement finish scripts for worker processes
  961. * [Feature] Implement monitoring for DNS resources
  962. * [Feature] Implement real priorities for pre and post filters
  963. * [Feature] Insert two symbols: FANN_HAM and FANN_SPAM instead of one
  964. * [Feature] Module to push metadata/messages to redis pubsub
  965. * [Feature] Monitor RBL records
  966. * [Feature] Move fann_classifier to a separate plugin
  967. * [Feature] Normalize all ANN inputs
  968. * [Feature] Preliminary version of metric exporter module
  969. * [Feature] Preserve decompression context between tasks
  970. * [Feature] Ratelimit: Support dynamic bucket size/leak rate
  971. * [Feature] Relax FORGED_RECIPIENTS: allow senders to BCC themselves
  972. * [Feature] Remove symbols weights on composites processing
  973. * [Feature] Return symbol scores when getting resulting symbols
  974. * [Feature] Rework lua tcp module
  975. * [Feature] Rule to detect some obvious X-PHP-Originating-Script forgeries
  976. * [Feature] Rule to identify some X-PHP-Script forgeries
  977. * [Feature] Rules for scoring Google Message-ID fixes
  978. * [Feature] Send hashes values to reply
  979. * [Feature] Set expire for dmarc reports
  980. * [Feature] Stop using cymru zone as it is unstable
  981. * [Feature] Stop using of GLists for headers, improve performance
  982. * [Feature] Store `for` in task:get_received_headers
  983. * [Feature] Store `for` part in received headers
  984. * [Feature] Store enabled flag for webui session
  985. * [Feature] Store error messages in ring buffer
  986. * [Feature] Support compressed maps
  987. * [Feature] Support excluding selected users from ratelimits
  988. * [Feature] Support looking up NS records in lua_dns
  989. * [Feature] Support modern style SURBL configuration
  990. * [Feature] Support multiple hashes in delhash path
  991. * [Feature] Support new messages in rspamc
  992. * [Feature] Support requests without reads in lua_tcp
  993. * [Feature] Support setting task message from Lua
  994. * [Feature] Track visibility of HTML elements
  995. * [Feature] Try to add CRLF when checking DKIM
  996. * [Feature] Try to guess line endings when folding headers
  997. * [Feature] Try to improve normalization function for bayes
  998. * [Feature] Use FFI to optimize SA module
  999. * [Feature] Use length based arguments for redis, allow lua_text as arg
  1000. * [Feature] Use more layers for fann and another normalization
  1001. * [Feature] User-defined ratelimits
  1002. * [Feature] Utility to convert fuzzy storage from sqlite to redis
  1003. * [Feature] Yield DMARC_DNSFAIL on lookup failure
  1004. * [Fix] Adopt fuzzy storage for flexible backends
  1005. * [Fix] Allow plain IP addresses in Rspamd maps
  1006. * [Fix] Another fix for brain-damaged hiredis
  1007. * [Fix] Another fix for rdns write errors
  1008. * [Fix] Another fix for rdns_make_request_full invocation
  1009. * [Fix] Another fix in DKIM canonicalization
  1010. * [Fix] Another memory leak plugged
  1011. * [Fix] Another try to deal with posix idiotizm
  1012. * [Fix] Another try to fix RDNS events processing logic
  1013. * [Fix] Avoid double frees in HEAD requests
  1014. * [Fix] Avoid extra symbols for RBLs
  1015. * [Fix] Banish table.maxn from Lua parts
  1016. * [Fix] Check for socket error before connection in lua_tcp
  1017. * [Fix] Correctly propagate redis timeouts to Lua
  1018. * [Fix] Do not add extra newline in MIME mode
  1019. * [Fix] Do not be cheated by system hiredis
  1020. * [Fix] Do not classify when a message has not enough tokens
  1021. * [Fix] Do not crash on redis errors
  1022. * [Fix] Do not distinguish NXDOMAIN and NOREC for monitored
  1023. * [Fix] Do not replan retransmits if merely one server is defined
  1024. * [Fix] Do not use headers to calculate messages digests
  1025. * [Fix] Don't force action in replies module for authenticated users/local networks
  1026. * [Fix] Explicitly ban default passwords in webui
  1027. * [Fix] Finally fix ambiguity between parsed and resolved spf elts
  1028. * [Fix] Fix 'decoded' value in task:get_header_full()
  1029. * [Fix] Fix DKIM calculations
  1030. * [Fix] Fix DKIM signing for messages with no newline at the end
  1031. * [Fix] Fix DNS request in monitored
  1032. * [Fix] Fix DNS write errors processing
  1033. * [Fix] Fix HTTP methods other than GET and POST
  1034. * [Fix] Fix PERMFAIL for v6/v4 ambiguities
  1035. * [Fix] Fix absurdic scores for HFILTER_URL_ONLY
  1036. * [Fix] Fix actions in rolling history
  1037. * [Fix] Fix actrie patterns
  1038. * [Fix] Fix applying of lua dynamic confg
  1039. * [Fix] Fix autolearning errors and redis cache
  1040. * [Fix] Fix bayes learn_condition
  1041. * [Fix] Fix build with the recent OpenSSL
  1042. * [Fix] Fix caching and compressed maps
  1043. * [Fix] Fix check plain text part
  1044. * [Fix] Fix crash on OpenBSD in `url_email_start`
  1045. * [Fix] Fix double free in SPF
  1046. * [Fix] Fix extraction of shingles from redis fuzzy storage
  1047. * [Fix] Fix false sharing for symbols in the cache
  1048. * [Fix] Fix float usage in util:get_time
  1049. * [Fix] Fix folding algorithm to deal with empty tokens
  1050. * [Fix] Fix format string
  1051. * [Fix] Fix format string usage in controller errors handling
  1052. * [Fix] Fix handling of '\0' in lua_tcp
  1053. * [Fix] Fix handling of HTTP HEAD methods
  1054. * [Fix] Fix hash creation
  1055. * [Fix] Fix hiredis stupidity
  1056. * [Fix] Fix implicit settings module settingsup
  1057. * [Fix] Fix interaction with lua GC to avoid craches
  1058. * [Fix] Fix ip_score module registration
  1059. * [Fix] Fix issue with empty messages and dkim
  1060. * [Fix] Fix issues with CGP helper
  1061. * [Fix] Fix issues with the recent SPF changes
  1062. * [Fix] Fix key name to load ANN correctly
  1063. * [Fix] Fix lua tcp module by saving `do_read` in callback data
  1064. * [Fix] Fix memory leak in client when using compression
  1065. * [Fix] Fix min_learns option
  1066. * [Fix] Fix on_finish scripts and async handlers
  1067. * [Fix] Fix options for SPF dnsfail symbol
  1068. * [Fix] Fix parsing includes and redirects in SPF
  1069. * [Fix] Fix parsing of lua comments with empty lines
  1070. * [Fix] Fix parsing of unquoted HTML attributes
  1071. * [Fix] Fix periodic events and redis
  1072. * [Fix] Fix processing of fuzzy learns from Lua
  1073. * [Fix] Fix processing of redirect in SPF includes
  1074. * [Fix] Fix processing of symbols when reject limit is reached
  1075. * [Fix] Fix refcounts when map is specified by IP
  1076. * [Fix] Fix rspamd{session} class in Lua API
  1077. * [Fix] Fix setting ratelimit key for 'ip' bucket
  1078. * [Fix] Fix some cases of TLD urls detector
  1079. * [Fix] Fix statconvert tool
  1080. * [Fix] Fix stats for backend-less classifiers
  1081. * [Fix] Fix training script for fann_redis
  1082. * [Fix] Fix variable in ann module
  1083. * [Fix] Fix various errors in lua dynamic conf plugin
  1084. * [Fix] Forget old ANN when max_usages is reached to avoid overtrain
  1085. * [Fix] Further canonicalization fixes
  1086. * [Fix] Further fixes for fann_redis prefixes
  1087. * [Fix] Handle failures for inactive pooled connections
  1088. * [Fix] Improve multimap info message
  1089. * [Fix] More fixes in ANN loading
  1090. * [Fix] More fixes to fann_redis
  1091. * [Fix] More issues in fann_redis
  1092. * [Fix] More spaces fix in DKIM signature
  1093. * [Fix] Multiple fixes to asn script, add IPv6 support
  1094. * [Fix] Multiple issues in fann_redis
  1095. * [Fix] No greylist rejected messages
  1096. * [Fix] One more attempt to fix lua_redis
  1097. * [Fix] One more check for readdir...
  1098. * [Fix] Params should be treated as a hash
  1099. * [Fix] Plug memory leak in regexp desctructor
  1100. * [Fix] Process headers only once
  1101. * [Fix] Properly handle nil values in ratelimit plugin
  1102. * [Fix] Really fix redis shingles check
  1103. * [Fix] Remove fann with incorrect layers count
  1104. * [Fix] Remove mentions of deleted include
  1105. * [Fix] Remove some incompatible functions
  1106. * [Fix] Settings: fix `authenticated` parameter (#886)
  1107. * [Fix] Skip MX check for authenticated users and local networks
  1108. * [Fix] Slightly fix ANN routines
  1109. * [Fix] Stop caching records with DNS failures
  1110. * [Fix] Treat all errors in redis_pool as fatal errors for a connection
  1111. * [Fix] Try avoid false-positives in HEADER_FORGED_MDN rule
  1112. * [Fix] Try to avoid race condition when using rrd
  1113. * [Fix] Try to reload redis scripts if they are missing
  1114. * [Fix] Unbreak once_received skipping for local networks
  1115. * [Fix] Unlock ANN on error
  1116. * [Fix] Use memmove for overlapping regions
  1117. * [Fix] Use real size instead of displayed for core limits
  1118. * [Fix] Use the correct macro to get the size of control
  1119. * [Fix] Various fixes for errors ringbuffer
  1120. * [Fix] Yield R_SPF_DNSFAIL if lookup of included record fails
  1121. * [Fix] mid: fix map initialization
  1122. * [Fix] mid: handle incorrect rgexps in the map
  1123. * [Rework] Add extract training data function to fann_redis
  1124. * [Rework] Add preliminary train tests
  1125. * [Rework] Add redis storage feature to fann_redis
  1126. * [Rework] Adopt fuzzy storage for abstract backend
  1127. * [Rework] Adopt plugins
  1128. * [Rework] First reiteration on fann scores
  1129. * [Rework] Implement loading/invalidating
  1130. * [Rework] Make lua_redis task agnostic
  1131. * [Rework] Make rspamd protocol messages useful
  1132. * [Rework] Massive removal of legacy code
  1133. * [Rework] More cleanup actions
  1134. * [Rework] Remove legacy code never used for classifiers
  1135. * [Rework] Remove outdated and unused lua_session module
  1136. * [Rework] Reorganize fuzzy backend structure
  1137. * [Rework] Reorganize the internal backend structure
  1138. * [Rework] Restore old fann_scores, move common parts
  1139. * [Rework] Rework and simplify rbl plugin
  1140. * [Rework] Rework parsing of DMARC records
  1141. 1.3.4:
  1142. * [Feature] ASN module; support matching ASN/country in multimap
  1143. * [Feature] Add SPF method in spf return result
  1144. * [Feature] Add Yandex and Mail.ru forwarding rules
  1145. * [Feature] Add mempool maps in multimap
  1146. * [Feature] Add rule for identifying mail sent by eval()'d PHP code
  1147. * [Feature] Add support of stub DNSSEC resolver to rdns
  1148. * [Feature] Add task:get_digest method
  1149. * [Feature] Allow for more fine-grained scoring for ip_score
  1150. * [Feature] Allow to get digest of a mime part from lua
  1151. * [Feature] Allow to print message digest in logs
  1152. * [Feature] Fold DKIM-Signature header
  1153. * [Feature] Implement encrypted logs
  1154. * [Feature] Log URLs encrypted if we have log encryption pubkey
  1155. * [Feature] Pass authenticated bit to lua
  1156. * [Feature] Read redis backend statistics configuration from global section
  1157. * [Feature] Show the exact value matched for multima symbols
  1158. * [Feature] Store task checksum
  1159. * [Fix] Avoid setting limits when required elements are missing
  1160. * [Fix] DMARC: Fix alignment checking for subdomains
  1161. * [Fix] DMARC: deal with missing and spurious spaces
  1162. * [Fix] Defer insertion of results in ip_score to avoid skewing stats
  1163. * [Fix] Disable DMARC for local/authorized mail
  1164. * [Fix] Fix handling of proxied headers in controller
  1165. * [Fix] Fix hex printing of strings
  1166. * [Fix] Fix issue with spaces in maps
  1167. * [Fix] Fix parsing of forwarded IP
  1168. * [Fix] Fix reload in some plugins and workers
  1169. * [Fix] Fix reloading on SIGHUP
  1170. * [Fix] Fix some border cases for DKIM canonicalization
  1171. * [Fix] Fix url maps
  1172. * [Fix] Make dnssec configurable option disabled by default for now
  1173. * [Fix] rspamadm statconvert: force db to be a string
  1174. * [Fix] rspamadm statconvert: use db/password for learn cache
  1175. * [Rework] Rework flags in rspamd logger
  1176. 1.3.3:
  1177. * [CritFix] Check hyperscan cache sanity before loading
  1178. * [CritFix] Fix setting of fuzzy keys (completely breaks fuzzy storage)
  1179. * [Feature] Add SARBL (sarbl.org) uribl
  1180. * [Feature] Add `--search-pattern` option to rspamd_stats
  1181. * [Feature] Add some sanity check for very long from/to log elements
  1182. * [Feature] Allow to create hashes from string in a single step
  1183. * [Feature] Fix order of pre and postfilters
  1184. * [Feature] Improve lua URLs API
  1185. * [Feature] Improve message about fuzzy rules
  1186. * [Feature] Pre-calculate blake2 digest for all parts
  1187. * [Feature] Print radix duplicate keys as IP addresses
  1188. * [Feature] Simple mechanism for disabling RBLs in local.d/rbl.conf
  1189. * [Feature] Use faster hash function for fuzzy storage
  1190. * [Feature] rspamd_stats: support log directory reading
  1191. * [Fix] Add sanity check for url filters
  1192. * [Fix] Do not show rmilter section as a fake metric in rspamc
  1193. * [Fix] Fix URL filters
  1194. * [Fix] Fix a stupid mistake in util.strequal_caseless
  1195. * [Fix] Fix blake2b hash of the string "rspamd"
  1196. * [Fix] Fix filename maps filter
  1197. * [Fix] Fix finding tld in util.get_tld
  1198. * [Fix] Fix multimap content filters
  1199. * [Fix] Fix returning boolean from Lua
  1200. * [Fix] Fix returning of REDIS_NIL
  1201. * [Fix] Try to deal with multiple workers terminated
  1202. * [Fix] Use forced DNS request when calling for lua_http
  1203. * [Rework] Rework multimap filters, add redis maps
  1204. 1.3.2:
  1205. * [Feature] Add a special symbol for SPF DNS errors: R_SPF_DNSFAIL
  1206. * [Feature] Add correlations report in fuzzy stats
  1207. * [Feature] Add experimental CGP integration
  1208. * [Feature] Add method to get urls length in a text part
  1209. * [Feature] Add new methods to lua_html to access HTML tags
  1210. * [Feature] Allow all types of symbols to be added via __newindex method
  1211. * [Feature] Allow to create settings for authenticated users
  1212. * [Feature] Allow to get block content for HTML tags
  1213. * [Feature] Improve DNS failures when dealing with SPF
  1214. * [Feature] Properly implement R_WHITE_ON_WHITE rule
  1215. * [Feature] Remove old ugly rules
  1216. * [Feature] Rspamc can now add dkim signature in mime mode
  1217. * [Feature] Store content length for HTML tags
  1218. * [Feature] Support reacher set of HTML colors
  1219. * [Feature] Try to avoid FP for low contrast fonts detection
  1220. * [Fix] Add missing HTML colors
  1221. * [Fix] Add spaces to dkim signature to allow folding
  1222. * [Fix] Avoid returning NaN as score on scan
  1223. * [Fix] Decode entitles in href parts
  1224. * [Fix] Do not cache SPF records with DNS errors
  1225. * [Fix] Do not crash on cyclic depends
  1226. * [Fix] Do not insert HELO/HOSTNAME unknown when they are not passed
  1227. * [Fix] Do not set absent hostname to "unknown"
  1228. * [Fix] Do not stress redis with KEYS command (#791)
  1229. * [Fix] Fix DMARC_BAD_POLICY symbol
  1230. * [Fix] Fix HFILTER_URL module
  1231. * [Fix] Fix HFILTER_URL_ONELINE rule
  1232. * [Fix] Fix buffering in CGP integration
  1233. * [Fix] Fix colors propagation from parent nodes
  1234. * [Fix] Fix confusing OpenSSL API usage of i2d_RSAPublicKey
  1235. * [Fix] Fix dependencies id sanity check
  1236. * [Fix] Fix folding for semicolon separated tokens
  1237. * [Fix] Fix largest possible TLD behaviour
  1238. * [Fix] Fix last token folding
  1239. * [Fix] Fix length calculations in white on white rule
  1240. * [Fix] Fix multiple request headers structure
  1241. * [Fix] Fix multiple values headers freeing
  1242. * [Fix] Fix parsing of background color
  1243. * [Fix] Fix printing from field in log_urls
  1244. * [Fix] Fix processing of last element of DMARC policies
  1245. * [Fix] Further fixes for HTML colors
  1246. * [Fix] Further fixes for multiple values headers
  1247. * [Fix] Further fixes for white on white rule
  1248. * [Fix] Further fixes in HTML tags parsing
  1249. * [Fix] Ignore content type/subtype case
  1250. * [Fix] Increase score of R_WHITE_ON_WHITE
  1251. * [Fix] Parse CGP envelope data
  1252. * [Fix] Propagate colors in HTML
  1253. * [Fix] Restore multiple values headers in protocol
  1254. * [Fix] Restore multiple values in headers processing
  1255. * [Fix] Some more changes to tag's content length calculations
  1256. * [Fix] Some more fixes for low contrast fonts detector
  1257. * [Fix] SpamAssassin plugin: support check_freemail_header('EnvelopeFrom', [..])
  1258. * [Fix] Trigger HTML_SHORT_LINK_IMG on any external image
  1259. * [Fix] rspamd_stats: remove deprecated defined(@array)
  1260. 1.3.1:
  1261. * [CritFix] Fix catena passwords validation
  1262. * [CritFix] Fix crash when the first received is faked
  1263. * [Feature] Add DMARC_BAD_POLICY symbol when DMARC policy was invalid
  1264. * [Feature] Allow for matching hostnames in multimap (#773)
  1265. * [Feature] Allow for setting action based on DMARC disposition
  1266. * [Feature] Allow limiting of the inbound message size
  1267. * [Feature] Allow maps with multiple symbols and scores
  1268. * [Feature] Allow regexps in the emails maps
  1269. * [Feature] Allow to register metric symbols from multimap
  1270. * [Feature] Allow to reset redis tokens instead of appendig values
  1271. * [Feature] Allow to store strings in radix maps
  1272. * [Feature] Check UTF validity when there are utf regexps in a map
  1273. * [Feature] Correctly work when there is no hard reject action
  1274. * [Feature] Implement dependencies for maps
  1275. * [Fix] Another effort to unbreak sqlite locking
  1276. * [Fix] Avoid crash when closing mmapped file
  1277. * [Fix] Do not break history on NaN in required score
  1278. * [Fix] Ensure that hyperscan cache written is written properly
  1279. * [Fix] Filter NaN from scores in history
  1280. * [Fix] Fix DNSBL maps
  1281. * [Fix] Fix another locking issue in sqlite
  1282. * [Fix] Fix another locking issue with mapped files
  1283. * [Fix] Fix deadlock in mmaped file stats
  1284. * [Fix] Fix dependencies in multimap plugin
  1285. * [Fix] Fix emails module configuration
  1286. * [Fix] Fix greylist plugin (#755)
  1287. * [Fix] Fix greylisting plugin variable usage
  1288. * [Fix] Fix installed permissions for rspamd_stats
  1289. * [Fix] Fix locking in mmapped statistics
  1290. * [Fix] Fix paths in tests
  1291. * [Fix] Fix prefilter mode for multimap
  1292. * [Fix] Forgot to commit leftover changes
  1293. * [Fix] Really fix local.d includes
  1294. * [Fix] Restore selective greylisting behaviour
  1295. * [Fix] Set max size on per connection basis
  1296. * [Fix] Use temporary storage for hyperscan cache
  1297. * [Rework] Remove systemd socket activation
  1298. 1.3.0:
  1299. * [CritFix] Fix SA rawbody processing - exclude top part
  1300. * [CritFix] Fix decoding of UTF HTML entitles
  1301. * [CritFix] Fix encrypted fuzzy requests
  1302. * [CritFix] Fix leak of shared memory fds and files
  1303. * [CritFix] Fix levenshtein distance calculations
  1304. * [CritFix] Fix mime headers processing
  1305. * [CritFix] Fix parsing of URLs in texts
  1306. * [CritFix] Fix parsing of missing classes
  1307. * [CritFix] Fix redis structure by adding {NULL, NULL} member
  1308. * [CritFix] Fix some more URL detector issues
  1309. * [CritFix] Fix systemd sockets activation
  1310. * [CritFix] Fix unencrypted passwords processing in the controller
  1311. * [CritFix] Fix writing CDPs to the database
  1312. * [CritFix] Fix writing of encrypted HTTP requests
  1313. * [CritFix] Plug memory leak in dkim module
  1314. * [CritFix] Plug memory leak in headers getting code
  1315. * [CritFix] Pre-filters and post-filters were completely broken
  1316. * [CritFix] Properly support SA body regexps
  1317. * [CritFix] Really skip filters in case of pre-result set
  1318. * [CritFix] Restore the intended pre-filters behaviour
  1319. * [Rework] Adopt new maps code
  1320. * [Rework] Compile ragel sources when building rspamd
  1321. * [Rework] Finish rework for the rest of places that use HTTP
  1322. * [Rework] Fix DKIM headers canonicalization
  1323. * [Rework] Fix lua maps API
  1324. * [Rework] Import linenoise for line editing
  1325. * [Rework] Include config structure to all rcl handlers
  1326. * [Rework] Make chartable module useful
  1327. * [Rework] Move http internal structures to a private header
  1328. * [Rework] Partly fix controller
  1329. * [Rework] Remove dedicated images list
  1330. * [Rework] Rename http proxy to rspamd proxy
  1331. * [Rework] Rename mime parts structures
  1332. * [Rework] Rework HTTP code
  1333. * [Rework] Rework exceptions and newlines processing
  1334. * [Rework] Rework pre and postfilters system
  1335. * [Rework] Separate method to close backend connections
  1336. * [Rework] Start the complete maps rework
  1337. * [Rework] Use dynamically generated ragel C sources
  1338. * [Feature] Add 'blacklist' and 'strict' modes for whitelists
  1339. * [Feature] Add 'symbols_enabled' and 'groups_enabled' to settings
  1340. * [Feature] Add ESMTPSA received type
  1341. * [Feature] Add a simple script to evaluate rspamd rules in the logs
  1342. * [Feature] Add a simple tool to generate DKIM keys
  1343. * [Feature] Add a trivial heuristic for codepages
  1344. * [Feature] Add and use mumhash for non-crypto hashing
  1345. * [Feature] Add better method to check lua userdata types
  1346. * [Feature] Add better zip files search algorithm
  1347. * [Feature] Add catena PBKDF function
  1348. * [Feature] Add configuration knobs for in and out parser scripts
  1349. * [Feature] Add content filtering support to multimap
  1350. * [Feature] Add different timeouts for proxy connections
  1351. * [Feature] Add dot commands for lua REPL:
  1352. * [Feature] Add execution of lua global functions script
  1353. * [Feature] Add function for pretty printing of inet addresses
  1354. * [Feature] Add function to convert fstring_t to c string
  1355. * [Feature] Add function to create temporary shared memory mapping
  1356. * [Feature] Add function to generate random hex string
  1357. * [Feature] Add generic fucnction to parse IP maps
  1358. * [Feature] Add initial version of HTTP lua repl
  1359. * [Feature] Add learn condition to the default configuration
  1360. * [Feature] Add learn conditions for classifiers
  1361. * [Feature] Add limit for dkim signatures to be checked
  1362. * [Feature] Add locking routines for lua_util
  1363. * [Feature] Add lua API for getting info from archives
  1364. * [Feature] Add lua utility to decode URL encoding
  1365. * [Feature] Add method to copy message from http connection
  1366. * [Feature] Add mirrors feature
  1367. * [Feature] Add more algorithms for shingles generation
  1368. * [Feature] Add more domains to redirectors list
  1369. * [Feature] Add more encodingsto cryptobox hash API
  1370. * [Feature] Add more file utilities to lua_util
  1371. * [Feature] Add more functions to extract data from text parts
  1372. * [Feature] Add more methods to get headers from a task
  1373. * [Feature] Add more methods to init http message body
  1374. * [Feature] Add more options for redis config parsing function
  1375. * [Feature] Add new representation of email address
  1376. * [Feature] Add new symbols to filter bad extensions in messages
  1377. * [Feature] Add new utility methods to mimepart object
  1378. * [Feature] Add openphish support to rspamd phishing module
  1379. * [Feature] Add parsers for SMTP address in ragel
  1380. * [Feature] Add parsing of mirror hosts for fuzzy storage
  1381. * [Feature] Add parsing scripts for master connection as well
  1382. * [Feature] Add preliminary greylist plugin
  1383. * [Feature] Add preliminary phishtank support
  1384. * [Feature] Add preliminary rarv5 support
  1385. * [Feature] Add preliminary version of ssl toolbox
  1386. * [Feature] Add protection against open files limit and accepting sockets
  1387. * [Feature] Add rar v4 support
  1388. * [Feature] Add reading scripts for master connection
  1389. * [Feature] Add replies plugin
  1390. * [Feature] Add results parsing code
  1391. * [Feature] Add routines to compare and check pubkeys
  1392. * [Feature] Add simplier versions of refcounts
  1393. * [Feature] Add some time manipulation functions for lua APi
  1394. * [Feature] Add support for non-standard BATV signatures
  1395. * [Feature] Add support of address with at-domain list
  1396. * [Feature] Add support to search archives by magic
  1397. * [Feature] Add task:get_rawbody method
  1398. * [Feature] Add test to check shared memory support sanity
  1399. * [Feature] Add the initial version of LUA repl to rspamadm
  1400. * [Feature] Add throughput graph for RRD backend to WebUI
  1401. * [Feature] Add universal function to make a proper redis request
  1402. * [Feature] Add universal function to parse redis servers for plugins
  1403. * [Feature] Add util.unlink function
  1404. * [Feature] Add utility function to return random number from 0 to 1
  1405. * [Feature] Add utility method to convert ftok to C string
  1406. * [Feature] Add utility to map shared memory segments
  1407. * [Feature] Add versions to fuzzy storage
  1408. * [Feature] Add workaround for legacy clients in rspamd proxy
  1409. * [Feature] Add workaround for systems without sane shmem support
  1410. * [Feature] Add xoroshiro+ fast rng for non-crypto purposes
  1411. * [Feature] Adopt plugins for new maps API
  1412. * [Feature] Allow SPF to be checked for empty tasks
  1413. * [Feature] Allow binary patterns in lua_trie
  1414. * [Feature] Allow catena encrypted passwords in controller
  1415. * [Feature] Allow client ip match in the settings
  1416. * [Feature] Allow easy adding and overriding of fuzzy rules
  1417. * [Feature] Allow empty tasks to be processed
  1418. * [Feature] Allow hostnames in IP maps
  1419. * [Feature] Allow https maps
  1420. * [Feature] Allow multiple PBKDF types in `rspamadm pw`
  1421. * [Feature] Allow named fuzzy rules
  1422. * [Feature] Allow non zero terminated patterns in multipattern
  1423. * [Feature] Allow partial hash updates
  1424. * [Feature] Allow pipelining for redis.make_request
  1425. * [Feature] Allow sending empty requests using client
  1426. * [Feature] Allow setting fuzzy flag by symbol not by value
  1427. * [Feature] Allow setting scores and actions from lua
  1428. * [Feature] Allow shared memory simple http client
  1429. * [Feature] Allow static lua files in any parts of rspamd sources
  1430. * [Feature] Allow to change flag from fuzzy learn condition
  1431. * [Feature] Allow to check rspamd_text using maps
  1432. * [Feature] Allow to disable composite rules from settings
  1433. * [Feature] Allow to disable some modules from common redis setup
  1434. * [Feature] Allow to extract ucl_object from lua using common API
  1435. * [Feature] Allow to get settings and settings id hash from lua_task
  1436. * [Feature] Allow to have specific settings for mirrored traffic
  1437. * [Feature] Allow to open message from a shared memory segment
  1438. * [Feature] Allow to parse pubkeys from the rcl config
  1439. * [Feature] Allow to pass extradata from rspamd to rmilter
  1440. * [Feature] Allow to query storage about number of fuzzy hashes stored
  1441. * [Feature] Allow to read logs without symbols scores
  1442. * [Feature] Allow to read password from console for rspamc
  1443. * [Feature] Allow to set ciphers and CA paths in config
  1444. * [Feature] Allow to skip some initialization phases to speed up rspamadm
  1445. * [Feature] Allow underscore separated names in settings
  1446. * [Feature] Allow versioning for sqlite databases
  1447. * [Feature] Always allow to terminate rspamd
  1448. * [Feature] Better deal with backend errors
  1449. * [Feature] Better lua_redis logging
  1450. * [Feature] Configure CA path and ciphers
  1451. * [Feature] Create a dedicated parser to strip newlines
  1452. * [Feature] Deduplicate the same urls in multimap module
  1453. * [Feature] Distinguish luajit from lua
  1454. * [Feature] Do not print garbadge in --compact output
  1455. * [Feature] Dynamically detect if a CPU is incompatible with hyperscan
  1456. * [Feature] Enable forced resolving for some lua plugins
  1457. * [Feature] Enable rrd by default
  1458. * [Feature] Enable workaround for exim
  1459. * [Feature] Fix task functions to work without rspamd_config
  1460. * [Feature] Further improvements to chartable module
  1461. * [Feature] Further micro-optimizations for hashing and shingles
  1462. * [Feature] Further relax parser
  1463. * [Feature] Humanize numbers in stats widgets
  1464. * [Feature] Implement HTTPS client
  1465. * [Feature] Implement SSL support in http client
  1466. * [Feature] Implement body rules for the trie plugin
  1467. * [Feature] Implement braced regexp quantifiers
  1468. * [Feature] Implement compare scripts for mirrors results
  1469. * [Feature] Implement compare scripts setup
  1470. * [Feature] Implement composites policies
  1471. * [Feature] Implement conditional learning for classifiers
  1472. * [Feature] Implement constructing of map from UCL
  1473. * [Feature] Implement dkim signing in dkim check plugin
  1474. * [Feature] Implement fuzzy storage updates
  1475. * [Feature] Implement fuzzy updates push protocol
  1476. * [Feature] Implement https maps
  1477. * [Feature] Implement inter-process maps caching
  1478. * [Feature] Implement mapping of remote flags to local flags
  1479. * [Feature] Implement mirroring in rspamd proxy
  1480. * [Feature] Implement multi-flags fuzzy replies
  1481. * [Feature] Implement multiple-sources fuzzy storage
  1482. * [Feature] Implement order of pre/post filters
  1483. * [Feature] Implement partial deleting for multi-flags
  1484. * [Feature] Implement pipelining for redis async interface
  1485. * [Feature] Implement ragel parser for received headers
  1486. * [Feature] Implement reading of messages to shared memory
  1487. * [Feature] Implement refcount for messages
  1488. * [Feature] Implement retransmits for master connection
  1489. * [Feature] Implement zero-copy mode for HTTP reading
  1490. * [Feature] Improve SPF domain detection logic
  1491. * [Feature] Improve config:register_symbol function
  1492. * [Feature] Improve error report for type missmatch in lua
  1493. * [Feature] Improve fstrings API
  1494. * [Feature] Improve getting SMTP data from lua_task
  1495. * [Feature] Improve levenshtein distance function
  1496. * [Feature] Improve logging in proxy and add refcounts
  1497. * [Feature] Improve logging lua types
  1498. * [Feature] Improve master/slave logging
  1499. * [Feature] Improve phishing plugin
  1500. * [Feature] Improve phishtank and openphish support
  1501. * [Feature] Improve ragel build target
  1502. * [Feature] Improve statistics script
  1503. * [Feature] Initialize ssl library to use SSL connections
  1504. * [Feature] Interpolate points sent to webui
  1505. * [Feature] Limit logging of elements that could have too many items
  1506. * [Feature] Lock ANN file when loading
  1507. * [Feature] New abstract hashing API in cryptobox
  1508. * [Feature] Normalize quoted addresses
  1509. * [Feature] Now cryptobox lua API accepts rspamd text as input
  1510. * [Feature] Optimize alignment to speed up hashing
  1511. * [Feature] Parse received date and ESMTPA proto
  1512. * [Feature] Parse received timestamp
  1513. * [Feature] Pass settings id to log helper
  1514. * [Feature] Pass settings id to lua script from log helper
  1515. * [Feature] Perform files expansion on proxying
  1516. * [Feature] Preliminary implementation of fuzzy master/slave updates
  1517. * [Feature] Print userdata using tostring if possible
  1518. * [Feature] Propagate HTTP result string when using proxy
  1519. * [Feature] Properly implement unweighted round-robin algorithm
  1520. * [Feature] Reduce number of timers queries
  1521. * [Feature] Rework and improve fuzzy storage
  1522. * [Feature] Rework dns resolving API for lua, add 'forced' option
  1523. * [Feature] Rework fann module to understand settings
  1524. * [Feature] Rework listening system to allow multiple socket types per worker
  1525. * [Feature] Rework ratelimit module to set expiration
  1526. * [Feature] Save bayes probability in memory pool var
  1527. * [Feature] Save settings id hash for convenience
  1528. * [Feature] Search for SSL_set_tlsext_host_name support
  1529. * [Feature] Send DKIM signature to protocol reply
  1530. * [Feature] Show DKIM signature in rspamc client
  1531. * [Feature] Show symbols description in scan output
  1532. * [Feature] Sign message merely after DKIM check
  1533. * [Feature] Simplify machines by assuming that headers are unfolded
  1534. * [Feature] Sort symbols when displaying them in log
  1535. * [Feature] Split main connection from mirrored connections
  1536. * [Feature] Start moving to the new email address structure
  1537. * [Feature] Store HTTP headers in a hash table
  1538. * [Feature] Store more information about compressed files
  1539. * [Feature] Store raw headers value to use them in DKIM
  1540. * [Feature] Store text parts content with newlines stripped
  1541. * [Feature] Support DKIM signing
  1542. * [Feature] Support EXIF jpeg images
  1543. * [Feature] Support archive files list extraction
  1544. * [Feature] Support archives when matching patterns in multimap
  1545. * [Feature] Support premium/academic feed for openphish
  1546. * [Feature] Support rspamd_updates via https
  1547. * [Feature] Supprort FQDNs in phishing module maps
  1548. * [Feature] Try to read on fuzzy timeout to avoid fake timeouts
  1549. * [Feature] Try to select the optimal possible function for input
  1550. * [Feature] Unescape and unquote smtp addresses
  1551. * [Feature] Update fuzzy timestamp when adding value
  1552. * [Feature] Update mumhash
  1553. * [Feature] Use -flto if possible when optimizations are enabled
  1554. * [Feature] Use extended map types in lua map, unify code
  1555. * [Feature] Use file lock in logger to avoid deadlocks
  1556. * [Feature] Use generic global string split function
  1557. * [Feature] Use metrohash as well
  1558. * [Feature] Use mumhash by default for incremental hashing
  1559. * [Feature] Use mumhash for words hashing
  1560. * [Feature] Use new ip parsing API
  1561. * [Feature] Use new maps API for local addrs
  1562. * [Feature] Use new ragel parser in message parsing code
  1563. * [Feature] Use new received parser instead of old one
  1564. * [Feature] Use new redis API in DMARC plugin
  1565. * [Feature] Use new redis API in greylist plugin
  1566. * [Feature] Use new redis API in ip_score plugin
  1567. * [Feature] Use new redis API in ratelimit plugin
  1568. * [Feature] Use new redis API in replies plugin
  1569. * [Feature] Use new version of register_symbol in rspamd plugins
  1570. * [Feature] Use offset when passing shm to deal with encrypted requests
  1571. * [Feature] Use one pass to remove newlines and store their positions
  1572. * [Feature] Use rspamd specific type checks for userdata
  1573. * [Feature] Use shared memory storage for http maps
  1574. * [Feature] Use universal redis definitions in rspamd plugins
  1575. * [Feature] Various improvements in greylist module
  1576. * [Feature] Wait for sqlite if locked when switching to WAL mode
  1577. * [Fix] Add filenames sanity filtering for mime types
  1578. * [Fix] Add guards for empty parts
  1579. * [Fix] Add missing types
  1580. * [Fix] Add more priority for config file symbols registered from UCL
  1581. * [Fix] Add sanity checks when compiling regexp maps
  1582. * [Fix] Add spaces instead of newlines to the normalized content
  1583. * [Fix] Add workaround for ancient openssl
  1584. * [Fix] Add workaround for gmime CTE stupidity
  1585. * [Fix] Add workaround for hex digits
  1586. * [Fix] Adjust MISSING_MIMEOLE score
  1587. * [Fix] Adjust body/body_buf when stealing encrypted message
  1588. * [Fix] Adopt lua task API for the new email addresses structure
  1589. * [Fix] Allow for disabling DMARC reporting when Redis is configured
  1590. * [Fix] Always register openphish and phishtank virtual symbols
  1591. * [Fix] Always use shmem on linux
  1592. * [Fix] Another change of newlines policy
  1593. * [Fix] Another d3evolution update
  1594. * [Fix] Another fix for exim workaround
  1595. * [Fix] Another fix for legacy clients
  1596. * [Fix] Another fix for maps scheduling
  1597. * [Fix] Another fix for marking upstreams inactive
  1598. * [Fix] Another fix for postfilters
  1599. * [Fix] Another fix for redis timeouts
  1600. * [Fix] Avoid `table.getn` method as it has been removed in lua 5.3
  1601. * [Fix] Avoid double hashing for images
  1602. * [Fix] Avoid linking with actrie if hyperscan is enabled
  1603. * [Fix] Check copy result when sending message to mirrors
  1604. * [Fix] Cleanup message when assiging body
  1605. * [Fix] Cleanup stack from global vars
  1606. * [Fix] Correctly parse query type
  1607. * [Fix] Disable all symbols if enable_groups is found in settings
  1608. * [Fix] Disable fts as it is completely broken in bloody linux
  1609. * [Fix] Disable multiple autolearn checks
  1610. * [Fix] Disallow updates by default
  1611. * [Fix] Do not abort when cannot load a map
  1612. * [Fix] Do not check recursion for non-DNS SPF record types
  1613. * [Fix] Do not delete uninitialized events
  1614. * [Fix] Do not die if shmem_mkstemp fails
  1615. * [Fix] Do not die when no metrics defined
  1616. * [Fix] Do not even try pcre in case of regexp maps
  1617. * [Fix] Do not greylist messages if redis has failed somehow
  1618. * [Fix] Do not greylist on rejection
  1619. * [Fix] Do not leave temporary maps cached
  1620. * [Fix] Do not output meaningless errors
  1621. * [Fix] Do not send NaN in json
  1622. * [Fix] Don't mix hyperscan and pcre processing within a same task
  1623. * [Fix] Finally rework and simplify redis backend for statistics
  1624. * [Fix] Fix Exim shutdown patch
  1625. * [Fix] Fix JIT compilation for PCRE2 expressions
  1626. * [Fix] Fix JIT usage for PCRE2
  1627. * [Fix] Fix REPL output
  1628. * [Fix] Fix SMTP address parsing machine
  1629. * [Fix] Fix UTF8 mode in PCRE2
  1630. * [Fix] Fix a stupid misprint in word 'phishing'
  1631. * [Fix] Fix accepting the first update when local idx is -1
  1632. * [Fix] Fix adding maps from ucl
  1633. * [Fix] Fix adding upstream to an active queue
  1634. * [Fix] Fix and rescore R_PARTS_DIFFER logic
  1635. * [Fix] Fix body rules in SA plugin
  1636. * [Fix] Fix body start position
  1637. * [Fix] Fix border case in urls detector
  1638. * [Fix] Fix border cases for incremental hashing
  1639. * [Fix] Fix caseless uthash application
  1640. * [Fix] Fix chartable issue with starting digits
  1641. * [Fix] Fix client_ip in users settings
  1642. * [Fix] Fix compilation issue
  1643. * [Fix] Fix conditional learning
  1644. * [Fix] Fix crash on empty maps
  1645. * [Fix] Fix creating of URLs from LUA
  1646. * [Fix] Fix creating of temporary shmem segment
  1647. * [Fix] Fix creation of mmapped statfiles
  1648. * [Fix] Fix descriptors leak on shmem detaching
  1649. * [Fix] Fix detaching of shared memory segments
  1650. * [Fix] Fix detection of URLs in text parts
  1651. * [Fix] Fix directories processing for rspamc
  1652. * [Fix] Fix displaying of rewrite subject in WebUI
  1653. * [Fix] Fix dkim private keys operations
  1654. * [Fix] Fix dkim signing
  1655. * [Fix] Fix dynamic scoring of subject symbols
  1656. * [Fix] Fix email address build
  1657. * [Fix] Fix encrypted proxy requests
  1658. * [Fix] Fix errors counting in upstreams
  1659. * [Fix] Fix errors handling in the proxy
  1660. * [Fix] Fix event bases for IO events
  1661. * [Fix] Fix events handling when scheduling map wacth
  1662. * [Fix] Fix fann rewrite
  1663. * [Fix] Fix files fallback for shmem transfer
  1664. * [Fix] Fix fuzzy adding in webui
  1665. * [Fix] Fix fuzzy storage encrypted mirroring
  1666. * [Fix] Fix fuzzy storage sync replies
  1667. * [Fix] Fix handling of the same words
  1668. * [Fix] Fix inserting values to the sources list
  1669. * [Fix] Fix ipv6 mask application
  1670. * [Fix] Fix issue with missing recipients
  1671. * [Fix] Fix issues with multiple returns from lua
  1672. * [Fix] Fix learning for non-existent backend
  1673. * [Fix] Fix legacy clients support in proxy
  1674. * [Fix] Fix length calculations for shared memory segments
  1675. * [Fix] Fix listening on UDP sockets
  1676. * [Fix] Fix loading of file maps
  1677. * [Fix] Fix long regexp flags (e.g. {sa_body})
  1678. * [Fix] Fix lua compare function init
  1679. * [Fix] Fix maps descriptions
  1680. * [Fix] Fix maps locking
  1681. * [Fix] Fix max_train setup in ANN module
  1682. * [Fix] Fix memory corruption
  1683. * [Fix] Fix memory leak in unsigned maps reading
  1684. * [Fix] Fix misprints for lto usage
  1685. * [Fix] Fix more issues with scripts processing
  1686. * [Fix] Fix next-to-last extension length check
  1687. * [Fix] Fix openssl initialization
  1688. * [Fix] Fix order of arguments
  1689. * [Fix] Fix order of initialization
  1690. * [Fix] Fix parser
  1691. * [Fix] Fix parsing of binary tries
  1692. * [Fix] Fix parsing of braced IPv6 addresses
  1693. * [Fix] Fix parsing of nested braces in SMTP comments
  1694. * [Fix] Fix parsing of rarv5 archives
  1695. * [Fix] Fix periodic scheduling when a map is not modified
  1696. * [Fix] Fix possible FP in TRACKER_ID rule
  1697. * [Fix] Fix post-filters processing
  1698. * [Fix] Fix potential NULL dereference
  1699. * [Fix] Fix processing of <br> and <hr> tags
  1700. * [Fix] Fix processing of addresses in protocol
  1701. * [Fix] Fix processing of messages without received headers
  1702. * [Fix] Fix proxying issue for unconnected sessions
  1703. * [Fix] Fix proxying of the encrypted messages
  1704. * [Fix] Fix race condition with shared memory by refcounts
  1705. * [Fix] Fix ratelimit initialization
  1706. * [Fix] Fix redis set request in replies plugin
  1707. * [Fix] Fix redis timeout events handling
  1708. * [Fix] Fix redis timeouts processing logic
  1709. * [Fix] Fix refcounts in lua_redis
  1710. * [Fix] Fix results checking if no master connection is active
  1711. * [Fix] Fix return value for couple of lua functions
  1712. * [Fix] Fix round-robin selection when upstreams have no weight
  1713. * [Fix] Fix rows calculation in graph
  1714. * [Fix] Fix rspamd_redis_make_request syntax in replies plugin
  1715. * [Fix] Fix scheduling of locked map events
  1716. * [Fix] Fix scores detection
  1717. * [Fix] Fix searching for newline positions
  1718. * [Fix] Fix secure_ip setting in controller
  1719. * [Fix] Fix sending data to graph command
  1720. * [Fix] Fix setting of score for parts differ
  1721. * [Fix] Fix setting of the lua top
  1722. * [Fix] Fix setting path for lua
  1723. * [Fix] Fix setting path for phishtank
  1724. * [Fix] Fix settings application
  1725. * [Fix] Fix shm_open call as described in POSIX
  1726. * [Fix] Fix size of length in fuzzy mirror wire protocol
  1727. * [Fix] Fix smtp grammar issues
  1728. * [Fix] Fix some issues with redis API
  1729. * [Fix] Fix some issues with retries in the proxy
  1730. * [Fix] Fix stack growing
  1731. * [Fix] Fix start of body detection in DKIM
  1732. * [Fix] Fix state on timeout
  1733. * [Fix] Fix stats script
  1734. * [Fix] Fix substring search when there are '\0' in strings
  1735. * [Fix] Fix symbol name for spf soft fail
  1736. * [Fix] Fix symbol type's check
  1737. * [Fix] Fix symbols registration and execution
  1738. * [Fix] Fix the case of multiple values keys
  1739. * [Fix] Fix the default symbol names according to metric
  1740. * [Fix] Fix timeout setup on learning
  1741. * [Fix] Fix timeouts in redis cache processing
  1742. * [Fix] Fix timeouts processing in lua_redis
  1743. * [Fix] Fix upstreams interaction for rspamd proxy
  1744. * [Fix] Fix usage of rdns reply structure
  1745. * [Fix] Fix varargs loop
  1746. * [Fix] Fix whitelists and blacklists in SA rules
  1747. * [Fix] Fix write servers setup for redis
  1748. * [Fix] Fix writing of HTTP messages
  1749. * [Fix] Force rspamd to upgrade fuzzy db on opening
  1750. * [Fix] Free the correct pointer
  1751. * [Fix] Further fixes for lto and static linking
  1752. * [Fix] Further fixes for surbl extensions map
  1753. * [Fix] Further fixes in maps code
  1754. * [Fix] Further improvements to error messages in fuzzy check
  1755. * [Fix] Further tweaks to redis garbadge collection
  1756. * [Fix] Groups are now case insensitive
  1757. * [Fix] Handle log pipe read errors
  1758. * [Fix] Handle nested dependencies in SpamAssassin plugin
  1759. * [Fix] Implement new automata to skip empty lines for dkim signing
  1760. * [Fix] Improve error messages on fuzzy add
  1761. * [Fix] Improve lua redis handling
  1762. * [Fix] Improve phishing module logging
  1763. * [Fix] Improve printing of fuzzy errors
  1764. * [Fix] Improve rrd diagnostic errors
  1765. * [Fix] Improve strcase hash used in uthash
  1766. * [Fix] Include fuzzy key to distinguish storages with different keys
  1767. * [Fix] Include slave cluster name into http request
  1768. * [Fix] Include some more information about archives
  1769. * [Fix] Indicate upstream error on timeout
  1770. * [Fix] Initialize hash tables array to avoid crashes
  1771. * [Fix] Initialize parser scripts properly
  1772. * [Fix] Initialize vars to avoid warnings
  1773. * [Fix] Inverse logic for saving ANN
  1774. * [Fix] Link lpeg to rspamd lua library
  1775. * [Fix] Make extension checks case-insensitive
  1776. * [Fix] Mark expired hashes as not found and not as zero flag
  1777. * [Fix] Match archive name as well
  1778. * [Fix] More and more fixes to redis states
  1779. * [Fix] More fixes about shared memory in proxy
  1780. * [Fix] More fixes for redis refcounts
  1781. * [Fix] More fixes to end of headers detection
  1782. * [Fix] More fixes to events logic
  1783. * [Fix] More fixes to multi-flag fuzzy storage
  1784. * [Fix] More fixes to parts distance calculations
  1785. * [Fix] More guards for redis free
  1786. * [Fix] One more fix in redis destructor
  1787. * [Fix] One more try to fix redis
  1788. * [Fix] PIE is required for static build
  1789. * [Fix] Partial fix for mmap'd statistics tests
  1790. * [Fix] Plug memory leak in proxy
  1791. * [Fix] Properly detect end of headers position
  1792. * [Fix] Properly init and free session structures
  1793. * [Fix] Reduce PRECEDENCE_BULK rule weight
  1794. * [Fix] Reduce the default thresholds for learning
  1795. * [Fix] Remove Type=forking from systemd unit file (#709)
  1796. * [Fix] Remove bad FANN file to save computational resources
  1797. * [Fix] Remove event before closing of fd to avoid race conditions
  1798. * [Fix] Remove parsing of 'from' variable in redis backend
  1799. * [Fix] Remove some bad domains from whitelists
  1800. * [Fix] Repair optional dependencies
  1801. * [Fix] Reset master connection when retransmitting scan request
  1802. * [Fix] Restore ONCE_RECEIVED symbol
  1803. * [Fix] Restore compatibility with old lua API behaviour
  1804. * [Fix] Restore redis runtime state
  1805. * [Fix] Reverse options when received
  1806. * [Fix] Send updates to mirrors only if we have some changes
  1807. * [Fix] Set host attribute properly when making HTTP request from lua
  1808. * [Fix] Set terminated state before calling of async free
  1809. * [Fix] Simplify MISSING_MIMEOLE rule
  1810. * [Fix] Simplify state machine by ignoring multiple spaces
  1811. * [Fix] Skip setting RPATH for static builds
  1812. * [Fix] Slightly reduce weights of rules with high FP rate
  1813. * [Fix] Some fixes to libmagic initialization
  1814. * [Fix] Some more fixes to ratelimit plugin
  1815. * [Fix] Strip '\r\n' properly
  1816. * [Fix] Switch hashes to mumhash
  1817. * [Fix] Treat NaN values properly in graph command
  1818. * [Fix] Try to avoid FP when checking for phished URLs
  1819. * [Fix] Try to avoid recursive events deletions
  1820. * [Fix] Try to fix false positive URL detections in text parts
  1821. * [Fix] Try to fix issue in redis stats backend when task is closed
  1822. * [Fix] Try to fix proxying of stupid spamc protocol to HTTP mirrors
  1823. * [Fix] Try to fix redis crashes
  1824. * [Fix] Try to fix upstreams with one element
  1825. * [Fix] Try to handle multiline history in a more sane way
  1826. * [Fix] Unbreak build on gcc < 4.9
  1827. * [Fix] Update RPM spec/sources (#700)
  1828. * [Fix] Update d3evolution version
  1829. * [Fix] Update mumhash implementation
  1830. * [Fix] Use custom error function for pre and post filters
  1831. * [Fix] Use new postfilters and prefilters API in the plugins
  1832. * [Fix] Use non-blocking mode for systemd sockets
  1833. * [Fix] Use shared memory merely for local backends in the proxy
  1834. * [Fix] Use watchers for spf plugin
  1835. * [Fix] Varioud fixes to the maps code
  1836. 1.2.8:
  1837. * Another fix for exim workaround (#637)
  1838. * Fix unencrypted passwords processing in the controller
  1839. * Fix setting path for lua (#652)
  1840. * Fix usage of rdns reply structure (#654)
  1841. * Use file lock in logger to avoid deadlocks
  1842. * Add `application/octet-stream` mime type for `pdf` extension (by @moisseev)
  1843. * Implement new automata to skip empty lines for dkim signing (#651)
  1844. * Fix parsing of missing classes
  1845. * Clarify some rspamc arguments (by @fatalbanana)
  1846. * Correct suppress spelling
  1847. 1.2.7:
  1848. * Slightly reduce weights of rules with high FP rate
  1849. * Add workround for rspamd-1.3
  1850. * Fix possible FP in TRACKER_ID rule
  1851. * Simplify MISSING_MIMEOLE rule
  1852. * Add workaround for gmime CTE stupidity
  1853. * Fix mime headers processing
  1854. * Fix false positive URL detections in text parts
  1855. * Fix Exim shutdown patch
  1856. * Enable workaround for exim mailbox format
  1857. * Backport shingles static test
  1858. * Fix levenshtein distance calculations
  1859. * Fix max_train setup in ANN module
  1860. * Fix redis structure by adding {NULL, NULL} member
  1861. * Fix build with unmodified LibreSSL opensslv.h
  1862. * Repair optional dependencies
  1863. * Really skip filters in case of pre-result set
  1864. * Restore the intended pre-filters behaviour
  1865. * Fix ipv6 mask application
  1866. 1.2.6:
  1867. * Fix parsing of URLs in texts
  1868. * Fix creating of URLs from LUA
  1869. * Fix some more URL detector issues
  1870. * Fix unit tests
  1871. * Fix JIT compilation for PCRE2 expressions
  1872. * Fix JIT usage for PCRE2
  1873. * Fix UTF8 mode in PCRE2
  1874. * Add workaround for pre-historic compilers (#605)
  1875. * Fix and rescore R_PARTS_DIFFER logic
  1876. * Properly set lua paths for tests
  1877. * Fix SA rawbody processing - exclude top part
  1878. * Store text parts content with newlines stripped
  1879. * Properly support SA body regexps
  1880. * Fix body rules in SA plugin
  1881. * Fix setting of score for parts differ
  1882. * More fixes to parts distance calculations
  1883. - Use hashed words instead of full words for speed
  1884. - Improve levenstein distance calculations and penalise replaces
  1885. - Always return number from 0 to 1
  1886. - Use g_malloc instead of alloca
  1887. * Fix percents output in R_PARTS_DIFFER
  1888. * Plug memory leak in dkim module
  1889. * Plug minor memory leak in regexps creation
  1890. 1.2.5:
  1891. * Plug an important memory leak in headers getting code
  1892. * Remove some bad domains from whitelists
  1893. 1.2.4:
  1894. * Implement new multipattern matcher that uses hyperscan if possible
  1895. * Use mutlipattern for lua_trie code
  1896. * Add utility methods for multipattern
  1897. * Use multipattern in url matcher
  1898. * Add escape functions for hyperscan
  1899. * Allow to optimize lua -> C transition by flattening table args
  1900. * Optimize hot paths in SA plugin
  1901. * Optimize rspamd_re_cache_type_from_string
  1902. * Allow empty tries
  1903. * Fix extraction of URLs from Subject
  1904. * Allow to have different flags for different patterns in multipattern
  1905. * Add common directory for hyperscan cache to config
  1906. * Implement caching for hyperscan multipattern
  1907. * Attach domain part to `R_SUSPICIOUS_URL` (by @moisseev)
  1908. * Allow multipattern scans to be nested for the case of hyperscan
  1909. * Simplify SURBL redirector search code and avoid ac_trie
  1910. * Add two way substring search algorithm
  1911. * Avoid acism usage to find gtube pattern
  1912. * Fix processing of empty headers
  1913. * Allow to disable pthread mutexes on broken platforms
  1914. * Make web interface not send password in query strings (#585) by @fatalbanana
  1915. * Add maximum delay to ratelimit module
  1916. * Backport fix for empty files inclusion from libucl
  1917. * Fix settings id setup
  1918. * Add min_learns option to classifiers
  1919. * Use more clever to utf8 conversion strategy
  1920. * Fix disabling of virtual symbols in the settings
  1921. * Rework settings to work properly in metric-less configuration
  1922. * Set the default limit for classifier
  1923. * Fix ttl based expiration from LRU cache
  1924. * Rework DKIM module to use OpenSSL for digests
  1925. * Fix mailto urls parsing with hyperscan
  1926. * Do not set obscured flag for urls starting with spaces
  1927. * Fix crash on redis learn
  1928. * Fix ratelimit ctime setting
  1929. 1.2.3:
  1930. * New DCC module (by @smfreegard)
  1931. * Rework whitelist module:
  1932. - Now we check different elements for different checks
  1933. - MIME from for DMARC
  1934. - DKIM signature domain for DKIM
  1935. - SMTP from or HELO for SPF
  1936. * Fix regexps results combination (*critical*)
  1937. * Fix issue with expressions processing (*critical*)
  1938. * Optimize strlcpy for aligned input
  1939. * Add support of half-closed connection in lua_tcp
  1940. * Allow to print compact json in client
  1941. * Save required score in history (#581)
  1942. * Allow to attach file descriptors to control commands
  1943. * Allow to send descriptors from workers to main
  1944. * Allow to attach fd when broadcasting to workers
  1945. * Implement log pipe feature for rspamd logs analysis
  1946. * Add `log_helper` worker
  1947. * Add `URIBL_SBL_CSS` (by @smfreegard)
  1948. * Add worker scripts functionality
  1949. * Add on load hooks for rspamd_config
  1950. * Add lua scripts for log_helper worker
  1951. * Add generic maillist detector (#584)
  1952. * Implement FANN autolearn using log_helper worker
  1953. * Rework metrics configuration to allow includes
  1954. * Change default value of forced removal in composite rules
  1955. * Allow to use assembly version of blake2b on x86 cpu
  1956. * Use less precise (but faster) clock if possible
  1957. * Insert redirected URL to the urls list
  1958. * Allow to get and set callback data for rspamd symbols
  1959. * Add binary heap implementation
  1960. * Use binary heap for expire algorithms in the hash
  1961. * Use `least frequent used` expiration strategy
  1962. * Allow to get mime headers from a task
  1963. * Add support for mime headers in `regexp` module
  1964. * Update Exim patches (by @fatalbanana)
  1965. * Allow building rspamd with jemalloc
  1966. * Save multipart boundaries
  1967. * SA plugin changes:
  1968. - Properly handle MIME headers
  1969. - Fix eval:check_for_missing_to_header rule
  1970. - Implement SA compatible body regexps
  1971. - Use sabody rules in SA plugin
  1972. * LUA API changes:
  1973. - Add util.get_ticks function
  1974. - Add util.stat function
  1975. - Add task:get_symbols_numeric method
  1976. - Add method to get number of symbols in the cache
  1977. - Add lua methods to get redirected urls
  1978. - Allow to get callbacks for lua symbols
  1979. - Add config:set_symbol_callback function
  1980. 1.2.2:
  1981. * Use HTTP Content-Type on non mime input if possible
  1982. * Save log level when compressing log messages
  1983. * Further rework of composite rules (add '^' prefix)
  1984. * Add tracking for rspamd expressions
  1985. * Store actions limits in metric result
  1986. * Fix parsing of include/redirect with many records in SPF
  1987. * Add method to disable symbols execution in the cache
  1988. * Allow to disable checks from settings
  1989. * Allow to select settings by id in HTTP query
  1990. * Find URLs with '\r' and '\n' inside href attribute
  1991. * Implement vectored mode for hyperscan (experimental)
  1992. * Improve client connection errors diagnostics
  1993. * Allow to edit new files with signtool
  1994. * Improve hashes performance on 32 bit platforms
  1995. * Fix sorting of limits
  1996. * Remove slow and unused rules `INVALID_EXIM_RECEIVED*`
  1997. * Add expression:process_traced lua method
  1998. * Allow tables in task:insert_result
  1999. * Save trace for SA metas
  2000. * Do not parse broken TLD parts in URLs
  2001. * Investigate many border cases in URLs parser
  2002. 1.2.1:
  2003. * Add list support to `mime types` module configuration (by @moisseev)
  2004. * Allow symbols params to be printed in logs
  2005. * Fix `MIME_BAD_ATTACHMENT` false positives for MDN/DSN
  2006. * Fix crashes on arm32
  2007. * Do not classify message if some class is missing
  2008. * Fix cryptobox cleanup
  2009. * Remove multipart/report from bad mime types (#569)
  2010. * Improve logging for fuzzy hashes
  2011. * Show map URLs in webui
  2012. * Sort symbols in webui
  2013. 1.2.0:
  2014. * New dynamic updates plugin
  2015. * Regular expressions map support
  2016. * Faster radix trie algorithm
  2017. * Faster siphash for AVX2 supporing CPUs (used in fuzzy hashes)
  2018. * PCRE2 support
  2019. * Allow quoted and slashed keys in map
  2020. * Add proper support of DNS resolvers balancing (#552)
  2021. * Rework includes and configuration system for better local changes support
  2022. * New keypairs framework for signing and encryption
  2023. * Added support for dynamic modules and workers
  2024. * Allow to dump configuration with help comments
  2025. * Rework once_received module
  2026. - Fix priority for `good_hosts`
  2027. - If a good host has been found do not add once_received symbols
  2028. - Fix priorities for strict once_received
  2029. - Add ability to whitelist IP addresses
  2030. * Implement support of signed maps for HTTP and file maps
  2031. * Add command to sync fuzzy storage (#533)
  2032. * Rework system of symbols and actions registration
  2033. It is possible now to use priorities when adding symbols to metrics and
  2034. override scores for symbols with lower priority with the scores with
  2035. high priority.
  2036. * Add auth support and db selection for redis stats
  2037. * Improve composite rules application
  2038. * Add ignore_received option
  2039. * Fix critical issue with inconsistent resorting
  2040. * Fix `all` in spf redirects
  2041. * Add punycoded versions for IDN domains (#554)
  2042. * Improve sorting order for symbols cache
  2043. * Add lockless logging for processes management
  2044. * Allow to specify flags for metric symbols
  2045. * Load images height and width from style attribute (#538)
  2046. * Override DNS requests limits for SPF and DKIM
  2047. * Fix resetting symbols to their default values in WebUI
  2048. * Improve configuration agility for redis stats
  2049. * Allow to set db and password for redis in stat_convert
  2050. * Import the latest libucl
  2051. * LUA API changes:
  2052. - Add rspamd_version function to LUA API
  2053. - Add lua_cryptobox module
  2054. - Add lua_map module
  2055. - Add task:set_metric_action lua API method
  2056. - Fix race condition in lua_tcp module
  2057. - Fix a lot of issues in lua_redis module
  2058. - Rework and abstract lua maps API
  2059. - Add util.strlen_utf8 lua function
  2060. - Add lua functions for caseless comparison
  2061. - Allow optional symbols registration
  2062. - Add config:add_map table form method, add regexp maps
  2063. - Add task:has_urls method
  2064. - Add task:has_flag method
  2065. - Add html tags methods to lua_html
  2066. - Add task:get_dns_req
  2067. * Plugins changes:
  2068. - Add support for WLBLEval SA plugin
  2069. - Use caseless comparison in SA and DMARC plugins
  2070. - Allow SA plugin to set scores for rspamd symbols
  2071. - Add regexp maps support to multimap
  2072. - Allow filenames match in multimap
  2073. - Add more filters for the existing map types
  2074. - Fix html images rules to reduce FP rates
  2075. * New rules:
  2076. - LONG_SUBJ - too long subject
  2077. - MIME_BAD_ATTACHMENT - bad attachement type
  2078. - RDNS_NONE - no reverse DNS record for sender's IP
  2079. - Fix MISSING_MIMEOLE rule for modern OE
  2080. * Many other bugfixes, memory leaks plugs thanks to:
  2081. - Coverity scan
  2082. - New gcc-6 warnings
  2083. - valgrind manual iterations
  2084. * Documentation improvements:
  2085. - FAQ list: https://rspamd.com/doc/faq.html
  2086. - Reworked quick start guide
  2087. - Added documentation for all active modules
  2088. * Other changes:
  2089. - Dropped Ubuntu Vivid support
  2090. - Added Ubuntu Xenial support
  2091. - Rework build system for rspamd and rmilter
  2092. 1.1.4:
  2093. * Print traceback on lua errors in lua config
  2094. * Fix leaks in lua error paths
  2095. * Improve 'R_EMPTY_IMAGE' rule
  2096. * Fix metas memoization in SA plugin
  2097. * Properly set `flag` in fuzzy replies
  2098. * Fix arguments order
  2099. * Fix issue with out-of-boundary reading
  2100. * Fix issues found by coverity
  2101. * Same result checking error found by coverity
  2102. * Fix varargs processing (found by coverity)
  2103. * Fix error in printing hex
  2104. * Reduce weights for some hfilter patterns
  2105. * Add aliases for task:get_from_ip:
  2106. - task:get_addr
  2107. - task:get_from_addr
  2108. - task:get_ip
  2109. * Rework once_received module
  2110. - Fix priority for `good_hosts`
  2111. - If a good host has been found do not add once_received symbols
  2112. - Fix priorities for strict once_received
  2113. - Add ability to whitelist IP addresses
  2114. * Fix `MISSING_MIMEOLE` rule for modern OE
  2115. * Treat meta tags as embedded tags (#501)
  2116. 1.1.3:
  2117. * Fix DSN rules when SMTP from is unavailable
  2118. * Fix statconvert routine to avoid lua module usage
  2119. * Set a sane quark for configtest to avoid NULL to be printed in logs
  2120. * Support c11 if available
  2121. * Fix parsing of ip:port strings
  2122. * Add more diagnostic for lua subr errors
  2123. * Fix task:set_from_ip lua method
  2124. * Add basic routines for digital signatures
  2125. * Add tool for digital signatures
  2126. * Add plain open file API method for atomic open
  2127. * Fix parsing nested braces inside logger vars
  2128. * Pre filters now actually skip processing
  2129. * Add pre-filter mode for multimap
  2130. * Switch to apache 2 license
  2131. 1.1.2:
  2132. * Fix stat_cache closing
  2133. * Add checkpoints to sqlite3 learn cache
  2134. * Do not recompile lua generated headers all the time
  2135. * Increase number of messages learned
  2136. * Fix issues with dual stack and hfilter
  2137. * Disable MID checks for hfilter by default
  2138. * Fix cache definitions in multiple classifier and no type
  2139. * Don't crash if learn cache failed to initialize
  2140. * Fix googlegroups support in maillist plugin
  2141. * Rework flags LUA API:
  2142. - Allow to check for a specific flag
  2143. - Add `learn_spam`, `learn_ham` and `broken_headers` flags
  2144. - Unify internal functions
  2145. * Add `BROKEN_HEADERS` rule
  2146. * Add support for forged confirmation headers (by @AdUser)
  2147. * Allow `any`, `mime` and `smtp` for get_from/get_recipients
  2148. * Add mime types checking plugin
  2149. * Add rule to detect spammers attempts to cheat mime parsing
  2150. * Rework parsing of IP addresses in configuration (better IPv6 support)
  2151. * Add `util.parse_mail_address` function to LUA API
  2152. * Add lua sqlite3 module
  2153. * Implement synchronous redis call
  2154. * Ratelimit: avoid possible indexing of nil value (Fixes #498) (by @fatalbanana)
  2155. * Add stat_convert command to convert stats tokens from sqlite3 to redis
  2156. * Implement redis advanced lua api with pipelining
  2157. * Fix memory leak on redis stat (#500)
  2158. * Fix user/language learn count in sqlite statistics (#496) (by @fatalbanana)
  2159. * Fix build with custom pcre
  2160. * Fix fuzzy relearning (#498)
  2161. * Improve planning of asynchronous tasks
  2162. * Show slow rules in log
  2163. * Add warning for slow regexps
  2164. * Add base32 decode/encode routines to lua util
  2165. * Allow converting of learn cache from sqlite to redis
  2166. * Add methods to check if a messages has from/rcpts
  2167. * Improve and fix multimap plugin:
  2168. - Restore 'header' maps
  2169. - Add filters for headers
  2170. - Add 'email:addr', 'email:user', 'email:domain' and 'email:name' filters
  2171. - Add generic regexp filters
  2172. * Disable reload command in rc scripts
  2173. * Improve runtime CPU dispatcher for libcryptobox
  2174. * Add preliminary support of digital signatures via ed25519
  2175. * Add detection for RDRAND support
  2176. * Print configuration of crypto on start
  2177. * A in SPF presumes AAAA lookup as well
  2178. 1.1.1:
  2179. * Fix duplicated XBL symbol
  2180. * Reduce log severity for ratelimit missing servers
  2181. * Fix XBL composite to avoid duplicate symbols
  2182. * Reduce weight of URL_ONLY rule due to FP rate
  2183. * Disable fuzzy hashes from the metadata for now
  2184. * Fix processing of empty messages (#486)
  2185. * Always treat DNS timeouts as temporary fail for SPF
  2186. * Fix issue with SPF double IP stack (#483)
  2187. * Use X-Forwarded-For when checking secure_ip (#488)
  2188. * Fix hash calculation for sqlite stats
  2189. * Fix memory corruption on punycode
  2190. * Fix strings allocation in punycode
  2191. * Fix error message (#491)
  2192. 1.1.0:
  2193. * Incompatible change: sqlite3 and per_user behaviour:
  2194. Now both redis and sqlite3 follows the common principles for per-user
  2195. statistics:
  2196. 1) If per-user statistics is enabled check per-user tokens ONLY
  2197. 2) If per-user statistics is not enabled then check common tokens ONLY
  2198. If you need old behaviour, then you'd need to use separate classifier
  2199. for per-user statistics.
  2200. * Implement redis statistics backend and cache
  2201. * Implement autolearning for statistics
  2202. * Reworked statistics architecture from scratch
  2203. * Add hyperscan (https://github.com/01org/hyperscan) engine for regular
  2204. expressions:
  2205. - add lazy loader for hyperscan databases
  2206. - rework regexp cache to have joint pcre/hyperscan scanning
  2207. - implement hyperscan pre-filter support
  2208. - add compilation guards for bad expressions
  2209. - implement `rspamadm control recompile` command
  2210. - implement hyperscan cache monitoring
  2211. - slides: <https://highsecure.ru/rspamd-hyperscan.pdf>
  2212. * Implement flexible task logging
  2213. * Rework fuzzy worker:
  2214. - it is now possible to run multiple fuzzy workers;
  2215. - implement lazy writing as sqlite3 is bad at concurrent writing;
  2216. - add retries for simple sql commands in fuzzy backend;
  2217. - use fine-grained transactions for fuzzy;
  2218. - implement new multi-pubkeys mode;
  2219. - allow encrypted only storages;
  2220. - rework statistics for fuzzy;
  2221. - add `rspamadm control fuzzystat` command for extended statistics;
  2222. - implement human readable output for the previous command;
  2223. - add condition script for learning fuzzy storage;
  2224. * Various fixes to SPF:
  2225. - fix `redirect` records;
  2226. - fix domains when parsing mx/ptr/a records in includes/redirects;
  2227. - fix issues with multiple addresses in SPF records;
  2228. - ignore SPF results in case of DNS failure;
  2229. - adjust TTL of records when resolving subelements of SPF records;
  2230. - always select `v=spf1` line if it is available
  2231. - do not cache records with DNS failure in subrequests;
  2232. - ignore records with temporary fails during subrequests resolving;
  2233. - fix `RDNS_RC_NOREC` support;
  2234. * Add clang plugin for static analysis:
  2235. - implement static checks for `rspamd_printf` format strings;
  2236. * Add 'allow_raw_input' option for non-mime messages
  2237. * Recognize types using libmagic
  2238. * Fix parsing of IPv6 received headers
  2239. * Add new interface of communication between workers in rspamd
  2240. * Add support for named socketpairs
  2241. * Don't write URLs by default as it is too verbose
  2242. * Set status for HTTP replies
  2243. * Try load `rspamd.conf.override`
  2244. * Implement words decaying for text parts to limit many checks
  2245. * Improve support of SA rules and plugins:
  2246. - add check_for_shifted_date and check_for_missing_to_header eval rules;
  2247. - add 'check_relays_unparseable' support;
  2248. - add `check_for_mime('mime_attachement')` function;
  2249. - use new re_cache interface for all SA rules;
  2250. - add support for `Mail::SpamAssassin::Plugin::MIMEHeader`;
  2251. - add support of 'special' SA headers to `exists` function;
  2252. - fix issue when SA metas contain other metas;
  2253. - fix freemail rules;
  2254. * Many fixes to the URL parser
  2255. * Match any newline character in regexps
  2256. * Fix resolving of upstreams and detection of poor IPv6 configurations
  2257. * Parse upstreams selection algorithm from the configuration line
  2258. * Add `reresolve` command to the control interface
  2259. * Generate fuzzy hashes from task metadata (URLs and headers)
  2260. * Add method to check if IP is local and `local_addrs` option
  2261. * Implement forced timeout for delayed filters
  2262. * Disable fast path of pcre-jit as it seems to be broken
  2263. * Bayes fixes:
  2264. - new normalizer function;
  2265. - really use weights of tokens from the OSB algorithm;
  2266. - restore multiple classifiers support;
  2267. * Rules changes:
  2268. - add `R_SUSPICIOUS_URL` rule that detects obfuscated URL's;
  2269. - improve empty image rule;
  2270. - rework `FORGED_RECIPIENTS` rule;
  2271. - reduce weight of `SUSPICIOUS_RECIPS`;
  2272. - fix `*_NORESOLVE_MX` symbols in hfilter;
  2273. - add `SUBJ_ALL_CAPS` rule with support of UTF8
  2274. - add spamhaus SBL to uribl
  2275. - fix `SUSPICIOUS_RECIPS` and `SORTED_RECIPS` rules
  2276. - remove `R_TO_SEEMS_AUTO` as it generates a lot of FP;
  2277. - add new Message-ID regexp for Thunderbird (by @moisseev);
  2278. * Plugins changes:
  2279. - allow ratelimit plugin to set symbol instead of pre-result
  2280. - support IP DNS black lists for URIBL (e.g spamhaus SBL);
  2281. - drop deprecated SURBL bits (by @fatalbanana)
  2282. - rename `JP_SURBL_MULTI` to `ABUSE_SURBL` (by @fatalbanana)
  2283. - add `SURBL_BLOCKED` (by @fatalbanana)
  2284. - add `CR_SURBL`
  2285. - SURBL: allow fallthrough to default symbol (by @fatalbanana)
  2286. - Settings: fix IP match (by @fatalbanana)
  2287. - SURBL: add missing symbols to metric (by @fatalbanana)
  2288. - allow processing images urls for SURBL
  2289. - unconditionally disable SPF for authenticated users and local networks
  2290. * Rework ratelimit plugin
  2291. - switch to `rates` instead of old and stupid strings to setup;
  2292. - check if a bucket is zero and disable the corresponding limits'
  2293. - turn off all buckets by default;
  2294. - check either `rcpt` or `user` buckets, not all together'
  2295. - document new `rates` and `symbol` options;
  2296. - inform user about what buckets are used in the configuration;
  2297. * Add neural network **experimental** plugin
  2298. * Add a sample script to learn neural network from rspamd logs
  2299. * Add documentation strings support to rspamd:
  2300. - add strings for the main configuration options;
  2301. - document workers options;
  2302. - add internal plugin options;
  2303. - create `rspamadm confighelp` routine;
  2304. - implement human readable output for the previous command;
  2305. - add subtree search support;
  2306. - add keyword search support;
  2307. * Documentation improvements, tutorials section, statistics description
  2308. * Many other minor and major bugfixes not noted here
  2309. 1.0.11:
  2310. * Fix spf redirects
  2311. * Fix domains when parsing mx/ptr/a records in includes/redirects
  2312. * Fix unfolded base64 encoding
  2313. * Fix GError use-after-free
  2314. * Do not rewrite the original url when using redirector
  2315. * Fix parsing of fragment in urls
  2316. * Fix processing of HTML tags
  2317. * Improve empty image rule
  2318. * Avoid long double type
  2319. * Fix tokens weights in OSB algorithm
  2320. * Improve debugging for bayes
  2321. 1.0.10:
  2322. * Fix settings application (#416)
  2323. * Fix another issue with fixed strings
  2324. * Fix hash function invocation
  2325. * Use the proper string for make_dns_request in lua_http
  2326. * Fix scan time output
  2327. * Update webui:
  2328. - fix labels for greylisting
  2329. - fix dimension of scan time
  2330. 1.0.9:
  2331. * Emergency fix in keyed blake2 to fix fuzzy hashes and encrypted password
  2332. * Support passwords longer than 64 symbols
  2333. 1.0.8:
  2334. * Add function to traverse AST atoms
  2335. * Allow dependencies on rspamd symbols for SA metas
  2336. * Fix memory corruption when timeout is removed in fuzzy check
  2337. * Fix encrypted fuzzy add processing
  2338. * Avoid use-after-free in controller session destructor
  2339. * Use session pool instead of task pool in fuzzy check
  2340. * Fix assembly in i386 mode (#413, #412)
  2341. 1.0.7:
  2342. * Plugged memory leaks in internet address object & html parser
  2343. * Fixed static build
  2344. * Fixed multiple sigchld processing
  2345. * Fixed deletion of signal events after event processing loop
  2346. * Fixed build on ARM (#404 - reported by @Gottox)
  2347. * Fixed setting the default mask for SPF.
  2348. * Fixed sanitisation of HTTP query values
  2349. * Fixed parsing of the last header in encrypted HTTP messages
  2350. * Additions and fixes for test suite & benchmarks
  2351. * Added openssl aes-256-gcm support to libcryptobox & HTTP server
  2352. * Implemented support for starting multiple HTTP servers
  2353. * Implemented batch accept in HTTP server
  2354. * Added module to get data from HTTP headers (#285 - reported by @msimerson)
  2355. * Added `rspamadm control` command
  2356. * Added ability to sort counters output.
  2357. * Added ability to specify custom headers for rspamc client
  2358. * Fix architecture detection
  2359. * Converted history storage to the UCL format
  2360. * Allow flexible number of rows in history
  2361. * Fix action badges in WebUI
  2362. * Add universal cryptobox hash API
  2363. * Migrated to the optimized blake2b implementation adopted from Andrew Moon
  2364. * Allow explicit loading of specific modules
  2365. * Always load settings module
  2366. * Allow to add symbols from settings
  2367. * Fix double free in the controller fuzzy learn command
  2368. * Avoid endless loop when cannot open sqlite db
  2369. * Updated libucl
  2370. 1.0.6:
  2371. * Fix build on i386
  2372. * Update CentOS7 service file patch (by @fatalbanana)
  2373. * Fix path to rspamadm in Debian init script (by @fatalbanana)
  2374. * Fix broken '_SC_GETPW_R_SIZE_MAX' on FreeBSD
  2375. * Fix portability issues
  2376. * Use cryptobox chacha for libottery
  2377. * Better support of 32 bit builds
  2378. * Fix header name tokens setup
  2379. * Fix levenstein distance method for words
  2380. * Add workaround for old libevent (#400)
  2381. * Fix microseconds in termination timer
  2382. * Fix some more issues with fixed strings
  2383. * Explicitly test CPU instructions even after CPUID call
  2384. * Do not check out of boundary memory
  2385. * Do not output broken emails
  2386. * Fix unknown symbols registration
  2387. * Handle SIGILL using longjmp
  2388. * Block signals when exiting event loop
  2389. * Fix incorrect allocation size
  2390. * Slightly optimize alignment
  2391. * Restore rspamd -t for compatibility
  2392. * Add more sanity checks for emails
  2393. 1.0.5:
  2394. * Add rspamd control interface:
  2395. - support `stat` command to get runtime stats of rspamd workers
  2396. - support `reload` command to reload runtime elements (e.g. sqlite3 databases)
  2397. * Rework curve25519 library for modular design:
  2398. - add Sandy2x implementation by Tung Chou
  2399. - fix CPU detection for variables loading assembly
  2400. - add testing for curve25519 ECDH
  2401. * New fixed strings library
  2402. * Add `R_SUSPICIOUS_IMAGES` rule
  2403. * Enable mmap in sqlite3
  2404. * Use new strings in the HTTP code
  2405. * Improve google perftools invocation
  2406. * Improve performance profiling in http test
  2407. * Reorganize includes to reduce namespace pollution
  2408. * Allow specific sections printing in configdump command
  2409. * Rework workers signals handlers to be chained if needed
  2410. * Update socketpair utility function
  2411. * Add control_path option for rspamd control protocol
  2412. * Fix ownership when listening on UNIX sockets
  2413. * Rework signals processing in main
  2414. * Remove extra tools from rspamd (they live in rspamadm now)
  2415. * Remove global rspamd_main
  2416. * Add global timeout for the overall task processing (8 seconds by default)
  2417. * Sanitize NULL values for fuzzy backend
  2418. * Store NM between encrypt/decrypt
  2419. * Add textpart:get_words_count method
  2420. * Fix generic DNS request in lua
  2421. * Tune hfilter weights
  2422. * Add support of IPv6 in hfilter
  2423. * Fix parsing of HTTP headers with IP addresses
  2424. * Sync with the recent libucl
  2425. * Various minor bugfixes
  2426. 1.0.4:
  2427. * Add configdump routine to rspamadm
  2428. * Implement retransmits for fuzzy_check plugin
  2429. * Fix events processing for learning anf checking fuzzy hashes
  2430. * Avoid dependency on unneeded and uncompatible glib include
  2431. * Add `historyreset` command to the controller
  2432. * Fix loading of tokenizer config from dump (#389)
  2433. * Add sorting hints for the history
  2434. * Allow custom lua scripts for users/languages extraction (#388)
  2435. * Do not add FORGED_RECIPIENTS when 'To' is missing (#387)
  2436. * Do not add R_UNDISC_RCPT when 'To' is missing (#387)
  2437. * Add encryption to fuzzy check plugin
  2438. * Add encryption for fuzzy storage
  2439. * Add new epoch for encrypted fuzzy request
  2440. * Add encryption for `rspamd.com` storage
  2441. * Remove gmime processing for LDA mode as it is deadly broken
  2442. * Add routine to find end of headers position in mime messages
  2443. * Fix LDA headers folding
  2444. * Init libraries in rspamc client as well to avoid locale issues
  2445. * Avoid collision with locally installed includes
  2446. * Allocate and free memory with the same allocator in rspamadm (#385)
  2447. * Preserve expired fuzzy hashes counter
  2448. * Improvements in webui:
  2449. - Add favicon.ico
  2450. - Rework history table
  2451. - Fix sorting for the history
  2452. - Migrate to bootstrap 3 and jquery 2
  2453. - Fix css bugs
  2454. - Add glyphicons
  2455. - Add reset history
  2456. - Improve history buttons
  2457. - Redraw graph to avoid display issues
  2458. - Webui is now MIT licensed to match licensing policy of rspamd
  2459. 1.0.3:
  2460. * Fix piechart clean slice (#380)
  2461. * Fix controller crashes when GString is reallocated (#381)
  2462. * Correctly set locale before start
  2463. * Set C locale for numeric values
  2464. * Add rspamadm routine:
  2465. - add `pw` command to manage passwords
  2466. - add `help` command for displaying help
  2467. - add `configtest` command to check configuration files
  2468. - add `keypair` command for generating encryption keys
  2469. - add `fuzzy_merge` routine to merge fuzzy sqlite databases
  2470. - add a simple manual page for rspamadm
  2471. * Allow metric registration for composite expressions
  2472. * Add strict mode for configtest
  2473. * Add logger counters
  2474. * Save and show learned messages count (#383)
  2475. * Add `no_stat` flag
  2476. * Add `task:set_flag` and `task:get_flags` (#382)
  2477. * Enable foreign keys in sqlite3
  2478. * Remove orphaned shingles from fuzzy storage
  2479. * Optimize synchronization steps for fuzzy storage
  2480. * Allow delayed conditions registration
  2481. * Add lua API for conditions registering
  2482. 1.0.2:
  2483. * Fix critical bug in webui that prevents password from being sent
  2484. * Rework webui view:
  2485. - Switch to d3.js for graphs
  2486. - Improve piechart look
  2487. - Rework colors for piechart
  2488. - Fix layout for symbols
  2489. - Fix refresh button
  2490. * Add descriptions for whitelist maps
  2491. * Fix build on arm (#379)
  2492. * Fix issue with the last element in the radix trie
  2493. * Add more tests for radix trie algorithm
  2494. * Allow to extract URLs from query strings of other URLs (#361)
  2495. * Initialize rrd fields before writing to file
  2496. * Fix double free if no password has been specified
  2497. 1.0.1:
  2498. * Add writing to rrd from the controller
  2499. * Fixed lots of bugs in rrd code
  2500. * Adopt new DNS API in hfilter plugin (by @AlexeySa)
  2501. * Allow only one controller process to manage rrd file
  2502. * Set event base for fuzzy calls
  2503. * Improve fuzzy IO errors logging
  2504. * Add rra extraction function to rrd library
  2505. * Add graph handler to the controller
  2506. * Cache correct passwords to avoid too high CPU usage when working with webui
  2507. * Controller sockets are owned by router do not export them to task
  2508. * Optimize logging by skipping hash table search if it's empty
  2509. * Fix loading issue whith broken statfiles
  2510. * Print assertions from glib to rspamd logger
  2511. * Load legacy `lua/rspamd.local.lua`
  2512. * Update webui with some fixes to learning and scanning
  2513. 1.0.0:
  2514. * Rework symbols processing:
  2515. - Improve sorting logic for symbols
  2516. - Organize processing into multiple stages
  2517. - Added asynchronous watchers for symbols
  2518. - Added ability to organize dependencies between symbols
  2519. * Fixed URL redirector:
  2520. - Use optimized POE loop
  2521. - Organize dependencies
  2522. - Fix startup
  2523. * New sqlite3 backend:
  2524. - Allow to have per-languages and per-user statistics
  2525. - Allow sqlite3 to be used as statistics backend
  2526. * Store tokenizer configuration within statfiles
  2527. * Improve bayes statistics:
  2528. - Use headers and images metainformation in bayes
  2529. - Suggest using of pre-processed tokens for statistics
  2530. - Fix tokens normalization for OSB algorithm
  2531. * Rewrite url parsing:
  2532. - Fix numerous issues with url extraction and normalization
  2533. - Fix mailto urls
  2534. * Fix settings plugin to allow custom actions scores
  2535. * Improve rbl plugin
  2536. * Allow capturing patterns in rspamd lua regexp library
  2537. * Add GTUBE support
  2538. * Fix spamc legacy support
  2539. * Add DKIM support to RBL module
  2540. * Fix issues with multiple DKIM signatures
  2541. * Fix issue if rspamd cannot create statfiles (#331)
  2542. * Rework parts and task structure:
  2543. - Now text_parts, parts and received are arrays
  2544. - Pre-allocate arrays with some reasonable defaults
  2545. - Use arrays instead of lists in plugins and checks
  2546. - Remove unused fields from task structure
  2547. - Rework mime_foreach callback function
  2548. - Remove deprecated scan_milliseconds field
  2549. * Add ip_score plugin support (not enabled by default):
  2550. - Can check for asn/country and network using DNS lookups
  2551. - Can store and load reputation from redis server
  2552. * Improve PARTS_DIFFER rule to count merely different words
  2553. * New HTML parser:
  2554. - Parses HTML parts using a set of state machines
  2555. - Extracts useful data and exports it to lua functions:
  2556. + Styles
  2557. + Images
  2558. + URLs
  2559. + Colors
  2560. + Structure elements
  2561. - Added HTML rules for some checks
  2562. * New version of LUA DNS API
  2563. * Table versions of many functions in LUA API
  2564. * Improve rspamc client:
  2565. - Print execution time
  2566. - Allow executing of external commands and passing output to them
  2567. - Allow mime output mode when rspamc alters message according to rspamd
  2568. checks and send it to an external command or stdout
  2569. * Allow scanning of local files using HTTP requests
  2570. * Rework configuration system:
  2571. - Rules are now moved from the $CONFDIR to $RULESDIR to avoid ambiguity
  2572. - All modules configurations are now split in $CONFDIR/modules.d/* to
  2573. simplify upgrades
  2574. - Move hfilter to plugins
  2575. - Allow plugins and rules to define default scores to simplify metrics
  2576. setup
  2577. - Include overrides for all modules to honor local/automatic parameters
  2578. - Tune scores for many modules
  2579. * Rework and enable DMARC plugin
  2580. * Add whitelist plugin for SPF/DKIM/DMARC based whitelisting
  2581. * Add some common domains to whitelists shipped with rspamd
  2582. * Rework logging:
  2583. - Now each log entry supports module name and a `tag`. Tag is used to
  2584. identify unique objects (such as tasks) when checking log files
  2585. - It is possible to turn on debugging for the specific modules
  2586. - Systemd logging is fixed
  2587. * Improve spamassassin plugin.
  2588. - Now headers are matched more like SA
  2589. - Improve support of Message-ID
  2590. - Add support of ToCc header type
  2591. - Fix :addr and :name in headers regexps
  2592. * Resurrect rrd support code
  2593. * Save controller stats between restarts
  2594. * Fixed tonns of bugs
  2595. * Added tonns of minor improvements and features
  2596. * Added more unit tests
  2597. * Create functional tests framework
  2598. * Added documentation for missing modules
  2599. * Added rpm/deb repositories and scripts
  2600. * Updated WebUI and libucl externals
  2601. 0.9.10:
  2602. * Do not dereference null pointer on learning.
  2603. * Fix some extreme cases in BAYES.
  2604. * Add a workaround to avoid bad HTML messages breaking.
  2605. * Build with -O2 flags by default.
  2606. * Add constraints to limit DNS requests count per task.
  2607. * Add workaround for SURBL DNS flood.
  2608. * Set error if rspamd cannot learn anything.
  2609. 0.9.9:
  2610. * Don't use RWL_SPAMHAUS_WL (unknown result) for whitelisting (by @fatalbanana)
  2611. * Import updated public suffix list (by @fatalbanana)
  2612. * Remove debug message
  2613. * Fix settings (by @fatalbanana)
  2614. * Remove duplicated symbol registration
  2615. * Use WAL for fuzzy storage
  2616. * RBL fixes (by @fatalbanana):
  2617. - silence errors;
  2618. - yield unknown results from RBLs;
  2619. - fix scoring for DNSWL;
  2620. - fix use of RBL name as symbol;
  2621. - ignore RBL names that would not be yielded;
  2622. * Support captures in regular expressions
  2623. * Add captures support to lua_regexp
  2624. * Support dist on FreeBSD and Darwin
  2625. * Add RCVD_IN_DNSWL_NONE as whitelisting exclusion (by @fatalbanana)
  2626. * Multiple fixes to URL detection:
  2627. - support port definition;
  2628. - fix query and path recognition;
  2629. - fix parsing of multiple slashes in URL;
  2630. - fix parsing query just after port;
  2631. - fix path field in `url:to_table` method;
  2632. - improve support of IP based URLs.
  2633. * Set ignore_whitelists = true for RECEIVED_SPAMHAUS_XBL (by @fatalbanana)
  2634. * Add GTUBE support
  2635. * Ignore User header in SA mode
  2636. 0.9.8:
  2637. * Fix critical bug in bayes classifier (#305)
  2638. * Fix critical bug in RBL module (by @fatalbanana)
  2639. * Fix and rework settings plugin.
  2640. * Fix get_all_opts for a case of non-iterable options.
  2641. * Use tld for redirector's matching.
  2642. 0.9.7:
  2643. * Add whitelist_exception setting to RBL module (by @fatalbanana)
  2644. * Don't use RWL_MAILSPIKE_POSSIBLE or DNSWL_BLOCKED for whitelisting (by
  2645. @fatalbanana)
  2646. * Fix extreme cases in bayes classifier.
  2647. * Fix parsing of urls with '?' at the end of hostname.
  2648. * Update interface.
  2649. * Fix number of issues with webui interaction.
  2650. * Fix saving maps.
  2651. * Allow user@ and @domain matches in multimap.
  2652. * Fix issues with bounces From processing.
  2653. * Fix abs/fabs misuse.
  2654. * Fix builds on suse and arch linux distributions.
  2655. 0.9.6:
  2656. * Fix memory leak if mime cannot be parsed.
  2657. * Fix dkim cache expiration.
  2658. * Fix issues with redirector HTTP response.
  2659. * Fix abnormal connection closing with certains messages with a high score
  2660. (issue #296)
  2661. * Fix redirector installation.
  2662. * Use specific POE loop for some systems.
  2663. * Fix number of issues in URL redirector.
  2664. * Fix selecting URLs for sending to redirector.
  2665. 0.9.5:
  2666. * Avoid double free when extending HTTP message.
  2667. * Fix double free if multiple classifiers are defined.
  2668. * Fix misprint in spamassassin plugin.
  2669. * Fix cpuid invocation on i386.
  2670. * Fix ownership issues for zero-copy decode.
  2671. * Allow __len metamethod on rspamd{text}.
  2672. * Add base64 decoding lua utility.
  2673. * Fix build on FreeBSD
  2674. * Skip spaces at the beginning of mime messages.
  2675. * DBL_ABUSE_REDIR should not have significant weight.
  2676. * Allow to split by lua_regexp rspamd{text} objects.
  2677. * Allow to specify custom stop pattern for lua_tcp.
  2678. 0.9.4:
  2679. * Fix critical bugs in tokenization algorithm
  2680. * Write unit tests for tokenization
  2681. * Add documentation for lua_tcp
  2682. * Switch off legacy tokenization by default.
  2683. * Fix critical bugs in words normalization
  2684. * Add lua bindings to tokenizer.
  2685. * Implement storing of HTTP headers inside task
  2686. * Add lua API to accerss HTTP headers data
  2687. * Implemented base64 encoding suitable for MIME
  2688. * Use caseless hash and equal functions for HTTP request headers.
  2689. * Improve debian architectures support (by @dottedmag)
  2690. 0.9.3:
  2691. * Revert incorrect regexp change that broke the default rules
  2692. * Fix lua_tcp module
  2693. 0.9.2:
  2694. * Fix error on spawning unique workers.
  2695. * Add preliminary version of generic LUA TCP requests API.
  2696. * Use lua 5.1 if luajit is not available (Arm64, PowerPC, s390x etc)
  2697. * Fix fuzzy mime strings with only type.
  2698. * Improve thunderbird sanity checks.
  2699. * Fix critical bug on matching regular expressions.
  2700. * Make hiredis optional dependency.
  2701. * Fix multiple bugs in daemon reloading
  2702. 0.9.1:
  2703. * Restore utf8 validation for regular expressions to avoid crashes
  2704. * Fix symbols displaying in the interface
  2705. * Add symbol groups to the interface
  2706. * Fix maps ID parsing in the controller
  2707. * Add multimap and regexp modules documentation
  2708. * Backport fixes from libucl
  2709. * Fix debian package (by @dottedmag)
  2710. * Rework XXH32 invocations
  2711. 0.9.0:
  2712. * Add support of the fast and secure protocol level encryption:
  2713. - curve25519 is used for key exchange;
  2714. - chacha20/poly1305 cryptobox construction for bulk encryption;
  2715. - zero latency overhead;
  2716. - encrypting and balancing HTTP proxy worker
  2717. * Rework expressions and create new expressions library:
  2718. - aggressive optimizations based on the abstract syntax tree;
  2719. - abstract expressions support (regular expressions, functions, lua modules
  2720. composites and so on)
  2721. - New comparision and '+' operators support
  2722. - New greedy algorithm to minimize execution time of expressions and
  2723. all symbols
  2724. - Dynamic expressions benchmark and reoptimizations
  2725. * Many improvements to the LUA API:
  2726. - reworked logger module allowing to do pretty print of the most of lua
  2727. types (including tables and userdata classes)
  2728. - reworked lua redis and lua HTTP to support more features
  2729. - added opaque type for passing large text chunks without copying
  2730. - new regexp module with many auxiliary functions (e.g. `re:split`)
  2731. * LuaJIT is now the default requirement for rspamd allowing to speed up lua
  2732. execution by a large margin (however, plain lua is still supported)
  2733. * New plugins:
  2734. - spamassassin rules plugin that allows to load and re-use the most of
  2735. SA rules natively
  2736. - DMARC plugin that evaluates SPF and DKIM policies to the domain policies
  2737. - many old plugins has been reworked to implement new features and improve
  2738. stability
  2739. * New aho-corasic trie implementation from @mischasan that allows to load and
  2740. use hundreds of thousands of patterns with no influence on load
  2741. * Support of PCRE JIT and PCRE JIT fast path modes that significantly improves
  2742. the performance of regular expressions if supported by PCRE
  2743. * New URLs parser and extractor:
  2744. - removed legacy code that was useless for url finding
  2745. - reworked algorithms of URL parsing for more precise and accurate results
  2746. - added top-level-domains tree from http://publicsuffix.org
  2747. - improved emails parsing
  2748. - removed many phishing false positives due to TLD tree check
  2749. * New statistics infrastructure:
  2750. - created a separate layer of statistic library
  2751. - improved OSB-Bayes by re-weighting tokens according to the original
  2752. academic paper and `crm114` implementation, which reduced false positives
  2753. rate significantly
  2754. - created learn cache to avoid double learning of statistics and providing
  2755. an efficient way to re-learn class for a message
  2756. - created abstract layers for different statistics backends
  2757. - implemented new tokenization algorithms with fast or secure (siphash)
  2758. hashes to generate statistics features
  2759. * Reworked utf8 tokenization that previously corrupted all UTF8 words (minor
  2760. incompatibility with old fuzzy hashes with utf-8 symbols)
  2761. * SPF module has been completely rewritten to support complex cases of
  2762. `include` and `redirect` within SPF records
  2763. * DKIM module now supports multiple signatures
  2764. * Controller passwords can now be stored encrypted by `PBKDF2-HMAC` in the
  2765. configuration file
  2766. * Many hand-written HTTP clients has been replaced with the common rspamd
  2767. http module
  2768. * New test framework:
  2769. - import lua `telescope` test framework
  2770. - add unit tests for many rspamd modules and routines
  2771. - create a unit test for each possible bug found
  2772. - use luajit ffi for testing C code
  2773. - added preliminary support of functional testing by creating tasks from lua
  2774. * Randomize hash seed to avoid certain hash tables vulnerabilities
  2775. * Documentation improvements:
  2776. - added documentation for the vast majority of rspamd modules
  2777. - added documentation for rspamd protocol
  2778. - added documentation for the most of rspamd LUA extensions
  2779. * Fixed tonns of bugs and memory leaks
  2780. * Added tonns of minor features
  2781. 0.8.3:
  2782. * Various critical fixes in distribution (by @dottedmag and @fatalbanana)
  2783. * Fixed bugs in url detector to parse certain patterns
  2784. * Add default host and helo for a client
  2785. * Some sanity checks for tokenizer and classifier
  2786. * Reiterate on systemd support
  2787. * Fix missing symbol registration
  2788. * Add support of spamc compatible output
  2789. * Filter double-dots in rbl.lua validate_dns (by @fatalbanana)
  2790. * Update ucl submodule due to critical bugfix
  2791. 0.8.2:
  2792. * Create fuzzy db if it does not exist
  2793. * Fix: Centos init script: configtest() (by @AlexeySa)
  2794. * Enable one_shot for RECEIVED_SPAMHAUS_XBL - Fixes #102 (by @fatalbanana)
  2795. * Update Exim patch (by @fatalbanana)
  2796. * Fix processing of unix sockets.
  2797. * Allow applying settings to authenticated users (by @fatalbanana)
  2798. * Make settings priorities work as documented (by @fatalbanana)
  2799. * Fix race condition in symbols planner
  2800. * Add DNSWL_BLOCKED symbol (by @fatalbanana)
  2801. * Make Exim pass usernames to rspamd (by @fatalbanana)
  2802. * Update RBL module (by @fatalbanana):
  2803. - fix indentation;
  2804. - collapse loops;
  2805. - avoid calling for un-needed information;
  2806. - allow disabling RBLs for authenticated users
  2807. * once_received.lua: Fix indentation & add exclusion for authenticated users (by @fatalbanana)
  2808. * hfilter.lua: Add exclusion for authenticated users (by @AlexeySa)
  2809. * Updates to hfilter rules (by @AlexeySa)
  2810. * Set empty <> user or addr for msgs without FROM (by @eneq123)
  2811. * Fix: attempt to index field '?' (a nil value) (by @eneq123)
  2812. * Fix: if not exist Date-header (by @AlexeySa)
  2813. * Add task:get_content() method.
  2814. * rbl.lua: Ignore private IP space (by @fatalbanana)
  2815. * Allow to check radix maps from lua by rspamd{ip}
  2816. * Make local exclusions configurable per-RBL (by @fatalbanana)
  2817. * Add rspamd_config:radix_from_config() (by @fatalbanana)
  2818. * Support emails dnsbl in rbl (by @fatalbanana)
  2819. * Complete rework of url extraction logic
  2820. * Allow customizations for unix sockets. (fixes #182)
  2821. * Set lua path according to rspamd settings.
  2822. * Import lua-functional for plugins stuff.
  2823. * Completely rewrite multimap plugin in functional style.
  2824. * Fix FORGED_MUA_THUNDERBIRD_MSGID (fixes #186)
  2825. * Check IPv6 addresses at dnswl.org and Spamhaus whitelist (by @fatalbanana)
  2826. * Add lowercase utility for utf8 strings.
  2827. * Various fixes to build system
  2828. * Updated debian configuration infrastructure (by @dottedmag)
  2829. 0.8.1:
  2830. * Add sqlite and perl as dependencies for RPM/Debian packages (by @fatalbanana)
  2831. * Remove whitelist.lua from RPM file list (by @fatalbanana)
  2832. * Make Exim pass hostnames to rspamd (by @fatalbanana)
  2833. * Fix building on Fedora (by @fatalbanana)
  2834. * Add toggle for disabling installation of systemd units on Linux (by @fatalbanana)
  2835. * Fix double format rounding that caused output corruption (reported by @fatalbanana)
  2836. * Revert broken change for destructors ordering that led to memory corruption
  2837. * Do not reset symbols case of settings if parsed from lua (reported by @andrejzverev)
  2838. * Fix build on SunOS (by @wiedi)
  2839. * Fix multiple crashes on broken DKIM DNS records
  2840. * Fix critical issue with composites weights removing
  2841. * Fix memory corruption in composites processing code
  2842. * Ignore non-SPF TXT records when parsing SPF includes
  2843. 0.8.0:
  2844. * New fuzzy check logic:
  2845. - use shingles algorithm for fuzzy matching
  2846. - use blake2 instead of md5 for larger output space
  2847. - combine fuzzy and strict matching
  2848. - allow to organize private storages by means of keys
  2849. - preserve compatibility with previous versions
  2850. * New fuzzy storage:
  2851. - use sqlite instead of own memory based hash tables
  2852. - rework commands interface
  2853. - add conversion from the old format
  2854. - add fuzzy match by shignles
  2855. - support old rspamd versions
  2856. * Add lemmatizing for words used in fuzzy hashes that allows to improve match
  2857. quality by using of the first forms of all words
  2858. * Rework language detection
  2859. * Fix several critical bugs, memory leaks and deadlocks:
  2860. - memory leak in HTML nodes parsing
  2861. - deadlock in logger code
  2862. - deadlock in signals processing
  2863. - crashes in fuzzy_storage
  2864. - crashes in tokenizers if the input was empty
  2865. * Import new libucl with several bugfixes and improvements
  2866. * Support listening on ipv6 addresses only
  2867. * Fix macro expansion in SPF module
  2868. * Several bugfixes in DKIM module
  2869. * Add load headers support for mime parts to the lua API
  2870. * Add documentation for:
  2871. - workers in general
  2872. - fuzzy_storage worker
  2873. - fuzzy_check plugin
  2874. - mimepart and textpart lua API modules
  2875. 0.7.6:
  2876. * Apply boundary fix for dkim simple canonization
  2877. * Fix ping command
  2878. * Return nil if header was not found in lua_task
  2879. * Fix hang in upstreams revive logic
  2880. * Decode entitles when normalizing HTML parts
  2881. * Fix logic of finding URLs in HTML parts
  2882. * Do not include \0 into length of text when performing conversion to utf8
  2883. * Fix raw vs parsed reperesentations
  2884. Raw parts are now:
  2885. - decoded b64/qp, but *NOT* converted to utf-8
  2886. Processed parts are now:
  2887. - converted to UTF-8
  2888. - normalized if needed (e.g. HTML tags are stripped)
  2889. * Rework DKIM canonization to line based
  2890. * Fix fuzzy hashes addding
  2891. * Use more specific hash function for fuzzy
  2892. * Fix leaking of iconv descriptors
  2893. * Fix PTR resolving in lua resolver
  2894. * Rework spf module.
  2895. - Copy data to memory pool as cached record might be destroyed causing
  2896. freed memory being passed to the protocol output (use after free)
  2897. - Allow SPF_NEUTRAL policy to be handled separately
  2898. - Add R_SPF_NEUTRAL to the default config
  2899. * Rework `register_symbols` function
  2900. * Allow to disable components of hfilter
  2901. 0.7.5:
  2902. * Fix owner when creating folder /run/rspamd (by @sfirmery)
  2903. * Fix IP validity checks
  2904. * Decode URLs obtained from HTML tags
  2905. * Fix crash with unweighted upstreams
  2906. * Stop processing headers in parts
  2907. * Set sockaddr.sa_family properly when connectig to upstreams
  2908. * Fix reload issues in surbl and fuzzy_check (reported by @citrin)
  2909. * Fix timeouts in redirector
  2910. * Improve lua errors reporting
  2911. * Fix lua closures processing in libucl
  2912. * Rework calling of lua functions from regexp module
  2913. * Choose raw regexp for raw headers
  2914. * Rework conversion to utf since glib one is broken
  2915. * Ignore SGML style tags in html
  2916. * Fix old bug with non-capturing https urls
  2917. * Fix memory corruption on fuzzy reload (reported by @citrin)
  2918. * Fix percents display in rspamc
  2919. * Fix buffer update for DKIM
  2920. * Do not validate utf for raw headers
  2921. 0.7.4:
  2922. * Fix build under *BSD
  2923. * Detect HAN unicode script
  2924. * Implement language detection heuristic for text parts
  2925. * Fix time output in history
  2926. * Improve piechart coloring
  2927. * Fix \r\n conversion in DKIM module (reported by @citrin)
  2928. * Try to detect systems with no IPv6 support
  2929. * Fix multiple/single values in use settings (reported by @citrin)
  2930. * Rework IP addresses in upstreams:
  2931. - Select ipv4/unix addresses if they exist and use ipv6 for ipv6 only
  2932. upstreams (since the support of ipv6 is poor in many OSes and
  2933. environments)
  2934. - Free IP list on upstream destruction
  2935. - Add test cases for addresses selection
  2936. - Allow adding of free form IP addresses to upstreams
  2937. * Fix endiannes in lua_radix search (reported by @citrin)
  2938. * Soft shutdown should also set wanna_die flag (reported by @citrin)
  2939. * Stop use-after-free in event loop termination
  2940. * Fix processing of very short messages in DKIM (reported by @citrin)
  2941. * Detect systems without shared mutexes
  2942. * Fix issues with PTR and MX elements in SPF parser (reported by @citrin)
  2943. 0.7.3:
  2944. * New upstreams code:
  2945. - simplify upstreams API;
  2946. - unify strings parsing in upstreams definition;
  2947. - add configuration options for the upstreams;
  2948. - for failed upstreams re-resolve their addresses;
  2949. - use all resolved addresses for an upstream (round-robin);
  2950. - implement stable hashing and use it by default for upstreams;
  2951. - add unit test for upstreams module.
  2952. * Rework signals processing in all rspamd workers:
  2953. - signals are now processed in the event loop;
  2954. - implement the most common signal handlers for all workers;
  2955. - add callbacks for workers specific signal handlers
  2956. * Fix critical issue with fuzzy storage:
  2957. Fuzzy stroage could not save any hashes on termination due to bugged
  2958. signals handling
  2959. * Fix roll history IP storage
  2960. * Rework ipv4/ipv6 handling in parsing addresses:
  2961. - turn off support of IPV6_V6ONLY socket option;
  2962. - create ipv6 socket prior to ipv4 one to handle systems with v6/v4
  2963. sockets enabled (Linux)
  2964. * Remove CBL as it's wholly included in Spamhaus XBL (by @fatalbanana)
  2965. * Remove nszones.com fake RBL (by @citrin)
  2966. * Fix upstreams interaction for fuzzy_check
  2967. * Verify spf PTR records (reported by @citrin)
  2968. * Fix spf MX records parsing
  2969. * Add compatibility for old libevent (by @yellowman)
  2970. * Sync bugfixes from libucl
  2971. 0.7.2:
  2972. * Convert all maps to the compressed radix trie
  2973. * Allow IPv6 addresses in IP maps
  2974. * Remove dynamic items support from symbols cache
  2975. * Allow hex encoded output of strings
  2976. * Fix bug with control connections count
  2977. * Process fuzzy weight correctly (reported by @fatalbanana)
  2978. * Remove extra reference retain of http connection on error
  2979. * Remove deprecated options from the default config
  2980. * Add `one_shot` attr to metric's symbols
  2981. * Doc: add documentation for metrics
  2982. * Add Upstart job to debian packaging (by @CameronNemo)
  2983. * Config: improve SURBL symbols descriptions (by @citrin)
  2984. * Config: reflect SURBL changes (by @citrin):
  2985. - Outblaze removed, malware moved to separate list:
  2986. http://www.surbl.org/news/internal/MW-malware-sublist-added-to-multi
  2987. * Fix C modules initialization on restart
  2988. * Treat single IP as a single IP in radix lists (reported by @citrin)
  2989. * Do not touch file and core limits if not asked explicitly (reported by @citrin)
  2990. * Improve logging for fuzzy errors
  2991. * Block SIGPIPE for HTTP writing
  2992. * Doc: update manual pages
  2993. * Fix HTTP connection termination
  2994. * Reduce default number of parallel requests to 8
  2995. * Sync with libucl include features
  2996. 0.7.1:
  2997. * Fix typo in stat output.
  2998. * Fix issues with includes crossing with the system includes
  2999. * Restore testing framework
  3000. * Add radix trie test suite
  3001. * Implement new path-compressed radix trie.
  3002. - The performance benefit over the old algorithm is about 1.5 times.
  3003. - Memory usage is significantly lower as well.
  3004. - Now radix trie can accept any IPv4/IPv6 values
  3005. * Various improvements to the memory pools code
  3006. * Fix writing reply to a client when no filters are defined
  3007. * Write base32 encoded fuzzy
  3008. * Fix 'soft reject' action
  3009. * Fix rspamd reload and modules reconfiguration
  3010. * Fix subject rewriting for the default subject
  3011. * Fix states for processing task and pre-filters
  3012. * Fix issues with connection closing
  3013. * Fix crashes in rdns
  3014. * Fix ratelimit pre-filter
  3015. * Update exim patch.
  3016. - Update to the recent exim version
  3017. - Strip extra leading src/ from the patch
  3018. - Remove sendfile since it was broken
  3019. - Fix rspamd spam report for exim
  3020. * Improve documentation
  3021. 0.7.0:
  3022. * Use HTTP protocol for all operatiosn
  3023. * Webui worker is now removed and controller works as webui
  3024. * Allow to serve static files via controller by option `static_dir`
  3025. * Rspamd interface is now a part of rspamd
  3026. * Rspamc client has been rewritten to use HTTP and non-blocking mode
  3027. allowing to start multiple operations simultaneously (see `-n` option)
  3028. * Lua API was completely reworked to satisfy modern standards of LUA:
  3029. * Module `lua-message` was removed
  3030. * Reduced number of superglobals registered by rspamd
  3031. * Many functions has been redesigned
  3032. * Symbols registration is now more convenient
  3033. * Users settings has been rewritten as lua plugin
  3034. * Reworked headers system as gmime's based one misses many headers and is
  3035. very slow to get headers values
  3036. * Reorganized code and removed embedded jannsson by using UCL for all json
  3037. parsing
  3038. * Migrated to `librdns` for DNS resolving that improves concurrency for
  3039. DNS requests significantly
  3040. * Fixed tonns of bugs in MIME processing
  3041. * Improved metrcis and default symbol's weights
  3042. * Added new RBL's
  3043. * Fixed a number of issues in the modules
  3044. * Removed several memory leaks found
  3045. * Fix unicode processing
  3046. * Fix fuzzy checking for unicode parts
  3047. * Significantly improve documentation and especially LUA API docs
  3048. * See migration notes at https://rspamd.com/doc/migration.html
  3049. 0.6.8:
  3050. * Controller now listen for localhost and not for 127.0.0.1 by default
  3051. * Allow FCrDNS-style RBL lookups (by @fatalbanana)
  3052. * Reduce threshold for parts_differ function.
  3053. * Fix hostname lookup for rdns rbl (by @AlexeySa)
  3054. * Fix HFILTER_URL_ONELINE to reduce false positive rate.
  3055. * Fix whitelist module.
  3056. * Allow override system predefined settings without touching system ones
  3057. by .try_include macro (by @andrejzverev)
  3058. * Check for [ip.address]-style HELO and suppress lookups. (by
  3059. @fatalbanana)
  3060. * Optimize hfilter (by @AlexeySa)
  3061. * Fix issue with random numbers generator in dns.
  3062. * Use more clever time values to setup entropy.
  3063. * Synced with the recent libucl.
  3064. 0.6.7:
  3065. * Use ChaCha20 for DNS generator (more secure DNS id)
  3066. * Unknown symbols now has zero weight and not 1.0
  3067. * Fix fuzzy hashes expire time
  3068. * Fix critical issue in statfiles on FreeBSD 9 (and some other platforms)
  3069. * Add .include_map macro to ucl parser
  3070. * Update libucl
  3071. * Fix headers end detection for DKIM module
  3072. * Fix a bug in received headers parser
  3073. * Validate IP addresses before pushing them to lua
  3074. * Start new documentation project
  3075. * Fixed tonns of other minor bugs
  3076. * Start to prepare for 0.7 with HTTP protocol and new settings
  3077. 0.6.6:
  3078. * Removed issue with BUFSIZ limitation in the controller output
  3079. * Simplify logging symbols escaping
  3080. * Adjusted weights for several rules
  3081. * Improve spamhaus rbl support
  3082. * Removed PBL for received headers checks
  3083. * Added hfilter module that performs various HELO and IP checks.
  3084. * Rspamd can now be reloaded by HUP signal
  3085. * Fuzzy storage should expire hashes properly
  3086. * Build system has been reworked for better supportof pkg-config
  3087. * Various minor bugfixes
  3088. 0.6.5:
  3089. * Fixed critical bug in DNS resolver, introduced in 0.6.4
  3090. * Improved multimap and rbl plugins to skip
  3091. * Add dns_sockets option for tuning sockets per server in DNS resolver
  3092. * Improved packages for rspamd
  3093. 0.6.4:
  3094. * Added io channels for DNS request to balance load and reduce id
  3095. collisions chance
  3096. * Fixed a bug in SPF filter that may cause core dump in specific
  3097. circumstances
  3098. * FIxed default config for rbl module
  3099. * It is possible to get a list of rspamc commands with their descriptions
  3100. * Added SORBS bl to the default config
  3101. * 2tld file for surbl module has been significantly extended
  3102. * Perl modules has been removed from the code.
  3103. * Fixed an issue in libucl when parsing macros
  3104. 0.6.3:
  3105. * Fixed issues with DNS:
  3106. - labels decompression algorithm was fixed;
  3107. - added resolve_mx to lua API;
  3108. - fixed modules that use DNS.
  3109. * Lua modules once_received and emails reworked for new resolver API and UCL.
  3110. * Debian package was polished.
  3111. * Fixed a bug in fuzzy_check module that prevents correct processing messages
  3112. without valid parts.
  3113. 0.6.2:
  3114. * Fuzzy check module has been reworked:
  3115. - now fuzzy_check operates with a group of rules, that define which
  3116. servers sre to be checked;
  3117. - it is possible to specify read_only groups to avoid learning errors;
  3118. - turn fuzzy_check to one_shot mode permanently;
  3119. - fuzzy_check module configuration is now incompatible with the previous
  3120. versions.
  3121. * Imported bugfixes from libucl.
  3122. * Fixed whitelist plugin.
  3123. * Fixed statfiles resizing.
  3124. * Improved logging initialization order.
  3125. * Fixed race condition in the controller worker.
  3126. 0.6.1:
  3127. * Critical bugfixes:
  3128. - fixed build system;
  3129. - fixed in_class setting in bayes learning;
  3130. 0.6.0:
  3131. * Use UCL instead xml for configuration (https://github.com/vstakhov/libucl)
  3132. * Fix statistics module normalization
  3133. * Rework the many modules for the new configuration:
  3134. - surbl has incompatible configuration;
  3135. - fuzzy_check has incompatible configuration;
  3136. - multimap has now new configuration;
  3137. - received_rbl is removed and replaced by rbl module.
  3138. * Removed deprecated options:
  3139. - statfile_pool_size;
  3140. - action and required/reject score for a metric.
  3141. * Simplify build system and unify configuration for all platforms.
  3142. * Improved URL detector (reduced false positive rate).
  3143. * Lua 5.2 is now the default and fully supported version.
  3144. * Tons of bugfixes and minor improvements.
  3145. 0.5.6:
  3146. * Fix bug with counters incrementing in rolling history
  3147. * Detect expl and exp2l as some systems do not have it
  3148. * Support input streams without Content-Length
  3149. * Implement counters output via rspamc and controller interface
  3150. * Fix bug with udp sockets in fuzzy storage
  3151. 0.5.5:
  3152. * New bayes normalizator based on inverse chi-square function
  3153. * Various fixes to fuzzy storage
  3154. * Allow update fuzzy storage only from specific IP addresses
  3155. * Better support of IPv6 and address selection algorithms
  3156. * Add CentOS spec file
  3157. 0.5.4:
  3158. * Fixed issues with diff algorithm
  3159. * Added support of RRD statistics
  3160. * Add webui worker for interface interaction
  3161. * Fix a lot of issues with dynamic conf
  3162. * Fix critical memory leak in settings code
  3163. * Improve stability of the system
  3164. 0.5.3:
  3165. * Added dynamic options
  3166. * Added advanced metaclassfication
  3167. * Added RESTfull API for controller
  3168. * Improved hashing algorithms
  3169. * Various fixes for rspamc client:
  3170. - allow interacting with unix sockets
  3171. - librspamdclient major cleanup
  3172. - bayes is now default classifier
  3173. 0.5.2:
  3174. * Added lua bindings for:
  3175. - basic mime parts, that allows checkign attachements for example;
  3176. - DNS resolver;
  3177. * Existing lua bindings now works without task object allowing to use them
  3178. in custom code.
  3179. * Threads system was reworked to avoid global lua interpreter lock.
  3180. * DKIM module now converts all line endings to CRLF how opendkim does.
  3181. * URL detector is now more accurate for text parts.
  3182. * Several critical bugs and memory leaks were fixed.
  3183. 0.5.1:
  3184. * Added lua worker type to handle network connections in lua.
  3185. * Added lua bindings for async_session, IO dispatcher, memory_pool, and
  3186. worker.
  3187. * Composites can now uses other composites in expressions.
  3188. * Fixes for debian package and for FreeBSD >= 9.1
  3189. * Add support of gmime-2.6 if gmime-2.4 is not found.
  3190. * Improve url detection and phishing detection.
  3191. * Add lua mime_part library to get an access to all message part
  3192. attributes (like filename, length, type).
  3193. 0.5.0:
  3194. * Added SMTP lightweight balancing proxy with XCLIENT support.
  3195. * Added lua bindings for upstreams objects and API.
  3196. * New pre-filters are implemented to support initial checking for messages.
  3197. * Added ratelimit plugin that uses redis protocol to store data.
  3198. * Added ipv6 support to spf and some other modules.
  3199. * Unbreak spf plugin.
  3200. * Allow options with the same name be threated as list.
  3201. * DKIM plugin an parsing code was added.
  3202. * Separate build system to put logic in several shared libraries.
  3203. * Many bugfixes.
  3204. 0.3.2:
  3205. * Add error handling for regexps
  3206. * Fix quit command in controller interface
  3207. * Write symbols weights to rspamc output
  3208. * Improve logic of selecting rspamc version
  3209. * Do not try to parse broken DNS replies
  3210. * Add 'raw' flag to FROM_EXCESS_BASE64 rule (requested by citrin)
  3211. * Output message id in rspamc reply
  3212. * Fix inserting composite symbol
  3213. * Fix output of log line
  3214. * Document composites
  3215. * Add logging for fuzzy checks
  3216. * Add logging for learning
  3217. * Improve logic of learning messages - do not learn more than specific threshold
  3218. * Fix inserting results for symbols that were incorrectly (for example more than 1 time) defined in config file
  3219. * Do not output control characters if output is not terminal
  3220. * Fix some logic errors in learning
  3221. * Consider lua plugins errors as fatal configuration errors
  3222. * Fix wirting message id during fuzzy_add command
  3223. * Display weight of symbols correctly
  3224. * Fixes to winnow learning
  3225. * One more try to improve accuracy of winnow algorithm
  3226. * Add bayesian classifier (initial version)
  3227. * Remove normalizer as it is winnow specific thing, so all statistic algorithms now returns value from 0 to 1
  3228. * Some fixes to fuzzy hashes expiration:
  3229. * Fix assertion while look up value in NULL hash (found by cirtin)
  3230. * Fix normalization for systems that have not tanhl function
  3231. * Ignore rfc822 group addresses
  3232. * Move images library to core rspamd
  3233. * Add lua api to access images properties
  3234. * Add post filters to lua API - filters that would be called after all message's processing
  3235. * Add ability to check for specified symbol in task results from lua
  3236. * Add ability to check for metric's results from lua
  3237. * Add ability to learn specified statfile form lua
  3238. * Add ability to extract filename and size of images from lua
  3239. * Fix assertion while extracting internet address
  3240. * Fix races in fuzzy storage
  3241. * Make spf parser case insensitive
  3242. * Add ability to check hashes of selected mime types
  3243. * Add ability to set minimum size in bytes for mime types
  3244. * Add ability to set minimum dimensions for images
  3245. * Assume all text/* content types as text/plain
  3246. * Fix getting data wrapper for gmime24
  3247. * Many fixes to statfile syncronization system
  3248. * Fixed statfile pool initialization and synchronization with disk
  3249. * Prepare 0.3.2
  3250. * Fix Mail::Rspamd::Config for new rspamd features
  3251. * Use Mail::Rspamd::Config in rspamc client
  3252. * Write user's name to rspamd log
  3253. * Prepare rspamd build infrastructure for creating rpm and deb packages
  3254. * Fix depends
  3255. * Add start script for linux systems
  3256. * Fix shared usage of statfiles
  3257. * Add invalidation of statfiles in case of learning, so now statfiles
  3258. * This should fix shared usage of statfile pool by several processes
  3259. * Fix misprint (reported by az)
  3260. * Fix stupid error when all checks can be done in a single pass
  3261. * New trie based url scanner (based on libcamel)
  3262. * Small fixes to rspamd perl client
  3263. * Write fuzzy hashes info to log
  3264. * Add trie interface to lua api
  3265. * Explain sample config and cleanup it
  3266. 0.3.1:
  3267. * Add modules documentation
  3268. * Continue implementing smtp proxy
  3269. * Implement new learning system, now rspamd should be much more intelligent while learning messages
  3270. * Convert statistic sums to use long double for counters
  3271. * Use hyperbolic tangent for internal normalizer
  3272. * In classify normalize result after comparing, not before
  3273. * New symbols sorter
  3274. * Fix strict aliasing while compiling with optimization
  3275. * Fix tanhl detection for platforms that have not implementation of it
  3276. * Remove several compile warnings
  3277. * Add experimental support of dynamic rules to regexp module
  3278. * Document views configuration
  3279. * Several fixes to documentation
  3280. * Add more logic for dynamic rules
  3281. * Add documentation for dynamic rules
  3282. * Add ability to make negations in networks in dynamic rules
  3283. * Clean up cache items correctly
  3284. * Implement basic SMTP dialog:
  3285. * Implement interaction with smtp upstream (with support of XCLIENT)
  3286. * Check messages received via smtp proxy
  3287. * Add support for sendfile in io dispatcher
  3288. * Fix issues with compatibility of worker_task and smtp proxy
  3289. * Proxy DATA command
  3290. * Fix SMTP
  3291. * Change metric logic
  3292. * Completely remove lex/yacc readers for config
  3293. * Make common sense of metric/action and symbols
  3294. * Sync changes with all plugins
  3295. * Incorrectly removed in previous commit
  3296. * Fix misprint (by Andrej Zverev)
  3297. * announce the "password" keyword in usage list
  3298. * Implement initial version of greylisting triplets storage
  3299. * Fix issues with smtp worker
  3300. * Fix QUIT command in SMTP worker
  3301. * Some fixes about new metrics system (may be incomplete)
  3302. * Get weights of symbol from default metric for symbols cache
  3303. * Fix setting task->from/task->rctp in smtp client
  3304. * Copy from and rcpt correctly
  3305. * Some performance improvements to IO dispatcher (do not drain the whole buffer after a single line readed)
  3306. * Fix smtp data input
  3307. * Fix misprint
  3308. * Add limit of maximum allowed smtp session errors
  3309. * New logic of SURBL module:
  3310. * Use system mkstemp(3) on systems where it is available as glib implementation
  3311. * Try to fix memmove issues in io dispatcher
  3312. * Remove debug from SURBL module
  3313. * Rewrite buffered input for line policy (again)
  3314. * Fix issue with links that are ip addresses in numeric form in surbl
  3315. * On Darwin use BSD style sendfile definition
  3316. * Reorganize platform specific knobs in CMakeLists
  3317. * Use gettimeofday on systems that have not clock_getres
  3318. * Use ftime for dns trans id generation on systems without clock_getres
  3319. * Darwin sendfile(2) support
  3320. * TIMEDB->TIMEB
  3321. * More to previous commit
  3322. * Pass env from main() arguments instead of platform specific global environ
  3323. * Fix compatibility issues
  3324. * Fix -lintl detection
  3325. * Init some variables to avoid problems
  3326. * Remove garbadge (gnome terminal sucks)
  3327. * Add more information about why we drop smtp connection
  3328. * Fix mkstemp call
  3329. * Send to upstream QUIT command at the end of session
  3330. * Check return value of each rspamd_dispatcher_write as in case of write errors sessions can be destroyed early
  3331. * Fix states in smtp dialog
  3332. * Use rspamd_snprintf instead of libc one
  3333. * Fix URLS command
  3334. * Fix reconfigure process of surbl module
  3335. * Fix destroying smtp session (unmap memory and do not delete pool early)
  3336. * Delete pool after using its variables
  3337. * Delay timer must be registered in async session to correctly handle connection termination
  3338. * Register dns requests in session too
  3339. * Make session before registering events
  3340. * Remove events in handlers
  3341. * Add ability to set filters for smtp worker for each smtp stage
  3342. * Add very initial version of DNS resolver (many things to be done)
  3343. * Announce weights and sync
  3344. * Fix few typo
  3345. * Understand short names of facility in logging config
  3346. * Add ability to make whitelist for spf checks
  3347. * Misprint != -> ==
  3348. * Handle lua tag in way that it is not required to write additional text:
  3349. * Strip all starting whitespace symbols from xml texts
  3350. * Fix stupid bug in calculating buffer length while reading file maps
  3351. * Add resolv.conf parsing into dns.c
  3352. * Fix microseconds<->milliseconds conversions
  3353. * Take callback argument in Mail::Rspamd::Client for processing files and directories
  3354. * Print results if rspamc is called for a directory
  3355. * Fix stupid error with surbl module reconfig (another one, blame me)
  3356. * Do not show duplicate urls in url header
  3357. * Fix detection of numeric urls (reported by citrin)
  3358. * Write real time of message's scan to log (not only virtual)
  3359. * Fix chartable module in utf mode
  3360. * Fix parsing of some broken urls
  3361. * Add ability to test regexp with 'T' flag
  3362. * Write more code for DNS resolver:
  3363. * Make DNS resolver working
  3364. * Many improvements to rspamd test suite: now it CAN be used for testing rspamd functionality
  3365. * Write DNS resolver tests
  3366. * Fix issues with memory_pool mutexes and with creating of statfiles
  3367. * Forgotten in previous commit
  3368. * Add support for parsing SPF and SRV records
  3369. * Fix PTR parsing
  3370. * Add tests
  3371. * Make SURBL module to use rspamd dns module
  3372. * Several fixes to DNS logic
  3373. * Remove evdns and use only rspamd resolver
  3374. * 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
  3375. * Fix resolving in smtp module
  3376. * Init events before configuring resolver in smtp worker
  3377. * Set resolver inside task
  3378. * Fix reload signal (reported by citrin)
  3379. * Some improvements to redirector
  3380. * Call has_forked method to inform POE about fork
  3381. * Fix lua DNS code
  3382. * Decompress labels in DNS packets more strictly
  3383. * Fix some problems with TXT records
  3384. * Try to fix removing of DNS events
  3385. * Do not insert unparsed RR's into reply
  3386. * Calling callbacks may cause destroying session from which we are calling callback so we MUST call callback as the latest action
  3387. * Fix check_smtp_data function
  3388. * Add ability to make views by recipient
  3389. * Add ability to set metric's action from config file
  3390. * Fix bug with writing garbadge if message has no urls or no messages
  3391. * Fix bug with incorrect behaviour of compare_parts_distance function
  3392. * Add ability to assign several actions to one metric
  3393. * Report action in rspamc protocol
  3394. * Mail::Rspamd::Client and rspamc can now understand Action header too
  3395. * Write action to log as well
  3396. * Make valgrind happy about comparing symbols
  3397. * Add more debug to comparing parts distance function
  3398. * Write action even if message has no symbols
  3399. * Make improvements to HTML entites decoder: now it replaces entities with common characters and
  3400. * Add -d option to force debug output
  3401. * Assume 7bit as default transfer encoding
  3402. * Do not overwrite lua plugins and configs if they already exists in target directory
  3403. * Improve logging
  3404. * Write queue id to log
  3405. * Remove test messages from cmake
  3406. * Reopen log file by USR1 signal
  3407. * Add reopenlog method to FreeBSD rc script
  3408. * Adopt foreach for cmake 2.6
  3409. * Fix to rc script
  3410. * Do not try to resolve names with several dots in a row
  3411. * Fix surbl request formatting for ip addresses
  3412. * Handle cases of broken requests
  3413. * Fix problems with parsing compressed names
  3414. * Fix TXT records parsing
  3415. * Fix expanding spf macros that may fail in rare cases
  3416. * Fix another error with early task destroying
  3417. * Handle empty from header
  3418. * Improve reopenlog command in rc script
  3419. * Strip trailing whitespace characters in Mail::Rspamd::Client
  3420. * Use ungreedy match to strip trailing whitespaces
  3421. * Stupid error in calculation compressed label length
  3422. * Some optimizations to client library
  3423. * Do not compare empty parts
  3424. * Empty and non-empty parts are allways different
  3425. * Save in regexp cache the whole regexp with header name (if exists) and with flags
  3426. * Add rspamd_log variable to lua plugins to access logging functions
  3427. * Each part in rspamd task now can have parent part
  3428. * Check for parts distance only for multipart/alternative subparts
  3429. * Do not check attachements even if they are text (but attached as file)
  3430. * Do not die if write (2) returned ENOSPACE while doing logging, turn on throttling mode instead (1 write try in a second)
  3431. * Add ability to turn on debug for specific symbols
  3432. * Add ability to configure dns timeouts and dns retransmits in config file
  3433. * More debug
  3434. * Fix extracting arguments in lua logger interface
  3435. * Turn off debug_ip during reload if it was disabled by new config
  3436. * Improve lua logging
  3437. * Pre-init symbols cache when rereading config
  3438. * Fix lua representing of invalid ip (nil, not 255.255.255.255)
  3439. * Fix R_TO_SEEMS_AUTO rule (by citrin)
  3440. * Add multimap lua plugin
  3441. * Fix some multimap issues
  3442. * Try to save images hashes to fuzzy storage to stop some annoying spammers
  3443. * Allocate some more bytes for read buffer to avoid incorrect behavoiur
  3444. * Add ability to check dns black lists by multimap module
  3445. * Add multimap documentation
  3446. * Fix labels parsing
  3447. * Another try to save regexps in cache correctly
  3448. * Improve test logs for regexps
  3449. * Fix parsing txt records to avoid reading of uninitialized data
  3450. * Fix error with writing symbols cache file
  3451. * Fix error while working in utf mode when raw regexps was not created properly
  3452. * Do not add extra byte while converting text to utf
  3453. * Add error handling for regexps