ĂshtĂ« publikuar njĂ« version i ri i serverit tĂ« shumĂ«platformshĂ«m me performancĂ« tĂ« lartĂ« POP3/IMAP4 Dovecot 2.3.21, qĂ« mbĂ«shtet protokollet POP3 dhe IMAP4rev1 me zgjerime tĂ« njohura si SORT, THREAD dhe IDLE, si dhe mekanizmat e autentifikimit dhe enkriptimit (SASL, TLS, SCRAM). Dovecot ruan tĂ«rĂ«sisht kompatibilitetin me formate klasike mbox dhe Maildir, duke pĂ«rdorur indekse tĂ« jashtme pĂ«r tĂ« rritur performancĂ«n. PĂ«r tĂ« zgjeruar funksionalitetin, mund tĂ« pĂ«rdoren plugins (p.sh., pĂ«rmes plugins, janĂ« realizuar kuota dhe ACL). Kodet e projektit shpĂ«rndahen nĂ«n licencat LGPL dhe MIT.
Ndryshimet kryesore:
- lib-oauth2: Lejohet kontrolli i token-eve JWT pa fushën "typ". Fusha "typ" nuk përdoret nga disa emitorë çelesh për të kursyer hapësirë, veçanërisht, kubernetes. Tani mungesa e "typ" lejohet, por nëse është e pranishme, ajo duhet të jetë gjithsesi "jwt".
- auth: Përgjigja "Auth" nga passdb dhe userdb mund të përmbajë vlerën "event_=value", e cila do të shtohet në ngjarjen e logimit dhe ngjarjen e përdoruesit të postës respektivisht.
- lib-master: Përcakton titullin e procesit në faza të ndryshme të inicializimit, për të sqaruar se çfarë pret procesi.
- lib-storage: Intervali mail_temp_scan_interval tani rritet nga 0âŠ30% nĂ« varĂ«si tĂ« hash-it tĂ« emrit tĂ« pĂ«rdoruesit, pĂ«r tĂ« ulur mundĂ«sinĂ« e shpĂ«rthimeve tĂ« ngarkesĂ«s.
- lib-storage: Skanimi i skedarit të përkohshëm është zhvendosur nga momenti i hapjes së kutisë postare në momentin e mbylljes së saj, për të ulur vonesën e përjetuar nga përdoruesit.
- stats: Nëse në metrikë janë përcaktuar fushat, të gjitha këto fusha eksportohen si numëratorë për prometheus në formatin exposition.
- "*-login": Proceset mund tĂ« pĂ«rfundonin pa paralajmĂ«rim nĂ« rast tĂ« ndĂ«rprerjes sĂ« pasigurt tĂ« lidhjes SSL. â acl: GjatĂ« ngarkimit tĂ« plugin-it, flagjet \\HasChildren dhe \\HasNoChildren nuk llogariteshin saktĂ« pĂ«r kutitĂ« postare qĂ« pĂ«rmbanin nĂ« emrin e tyre â*â dhe â%â.
- auth: Ndodhi një gabim gjatë lidhjes dështake me DBMS PostgreSQL gjatë nisjes.
- auth: Gjatë identifikimit me fjalëkalime të gabuara (p.sh., me një skemë të panjohur) në passdb, në vend të "gabimit të brendshëm" tregohej gabimi "mismatch fjalëkalimi".
- auth: Mekanizmat XOAUTH2 dhe OAUTHBEARER nuk e japin një mesazh gabimi specifik për protokollin në rast të çfarëdo gabimesh. Kjo veçanërisht pengoi zbulimin e OIDC.
- dbox: Nëse titulli last_temp_file_scan nuk ishte vendosur (veçanërisht pas migrimit dsync), hapja e mëtejshme e kutiçkës së postës do të jepte gjithmonë skanimin e skedarëve të përkohshëm. Kjo mund të shkaktonte një rritje të ngarkesës pas migrimeve. Kjo u rregullua duke përdorur atime-n e katalogut të kutive të postës në mungesë të titullit, i cili zakonisht e zhvendos kohën e skanimit në të ardhmen.
- dict-redis: Ndodhi një dështim gjatë rikthimit të transaksioneve.
- dsync: Kur hiqej kutia e postës në anën e largët, kur ndarësit e niveleve të hierarkisë nuk përputheshin, ndodhi një cikël i pafund që çoi në daljen nga memorie.
- dsync: Dsync incremental nuk u ekzekutua pĂ«r emrat e dosjeve qĂ« pĂ«rfundonin me â%â, nĂ«se nuk ishte vendosur vlera BROKENCHAR. Gjithashtu, emrat e dosjeve qĂ« pĂ«rmbanin â%â nĂ« vende tĂ« tjera shkaktonin ribĂ«rjen e panevojshme tĂ« dosjes me njĂ« emĂ«r tĂ« pĂ«rkohshĂ«m dhe pas kĂ«saj me emrin origjinal gjatĂ« çdo dsync incremental. Regresi v2.3.19.
- imap-hibernate: Nëse gjatë çeljes së klientit IMAP kishte një skadim me mesazhin «(version received)», më vonë çelja mund të kishte përfunduar me sukses dhe të vazhdonte punën normale. Kjo shkaktonte konfuzion, pasi imap-hibernate kishte regjistruar tashmë se klienti ishte çaktivizuar. Kjo mund të evitohet duke i bërë lidhjes të përfundojë për shkak të skadimit të hibernimit.
- imapc: Rrëzimi kur fasha e ruajtur zhduket, e cila shfaqet përmes plugin-it virtual.
- imapc: Përgjigjet EXPUNGE, EXISTS ose FETCH me server për një kuti postare të zgjedhur më parë mund të përpunoheshin siç nëse i përkisnin një kutie postare të re, të zgjedhur në atë moment. Kjo mund të shkaktonte shfaqjen e paralajmërimeve.
- lib-http: Serveri HTTP Dovecot (doveadm, stats/openmetrics) mund të çaktivizonte klientët HTTP para se të dërgonte një përgjigje të plotë. Kjo ndodhte vetëm në serverë të ngarkuar, ku buferat e soketeve të bërthamës ishin tepër të mbingarkuar.
- lib-http: Rregulluar një mundësi për të rënë poshtë të serverit http në rastin e çaktivizimit të hershëm të klientit. Rregresion në 2.3.18.
- lib-index: Dëmtimi i skedarit të indeksit mund të ketë çuar në mbyllje emergjente. Rregulluar: Panic: skedari mail-transaction-log-view.c: rreshti 165 (mail_transaction_log_view_set): pohimi dështohet: (min_file_seq <= max_file_seq).
- lib-index: Pastrimi i një skedari cache ekzistues më të madh se 1 GB mund të ketë shkaktuar një dështim. Tani pas pastrimit, skedarët e cache të cilët ende tejkalojnë 1 GB fshihen. Rregulluar: Panic: skedari mail-index-util.c: rreshti 10 (mail_index_uint32_to_offset): pohimi dështohet: (offset < 0x40000000).
- lib-lua: Klienti HTTP nuk mundi të përcaktojë emrat DNS në proceset e postës, pasi priste që soketi «dns-client» të ishte në katalogun e tanishëm.
- lib-oauth2: Dovecot dërgoi client_id dhe client_secret si parametra POST në serverin e introspeksionit. Sidoqoftë, në Basic auth përdorimi i tyre është opsional.
- lib-oauth2: Validimi i JWT «aud» nuk u ekzekutua nëse «aud» mungonte në token, por ishte konfiguruar në Dovecot.
- lib-oauth2: Kontrolli i tipit të çelësit JWT ishte shumë i rreptë.
- lib-oauth2: Audienca e token-it JWT nuk u verifikua në përputhje me client_id, siç kërkon spesifikimi.
- lib-ssl-iostream: Përdorimi i parametrin ssl_require_crl=yes mund të ketë shkaktuar dështime në verifikimin e CRL për lidhjet e daljes SSL/TLS, ndonëse supozohej se ai ndikon vetëm në verifikimin e CRL për klientët. certifikatave SSL. v2.3.17 regresion.
- lib-sql: Drejtori MySQL lejonte rrjedhje memories gjatë një lidhjeje të dështuar.
- lib-storage: Rregullime të ndryshme në rast të mungesës së hapësirës në disk.
- master: Konfigurimi i shërbimit idle_kill nuk funksiononte siç duhet në serverat e ngarkuar. Ishte shumë e pamundur që ndonjë proces të kishte ngecur mjaft gjatë për t'u vrarë. Për më tepër, me një numër të madh procesesh (p.sh., imap), kodi i trajtimit të idle_kill përdorte një sasi të madhe CPU në procesin kryesor. Tani çdo interval kohor të idle_kill do të monitorojë numrin më të vogël të proceseve të ngadalta dhe pastaj do të vrasë këtë numër.
- mdbox: Kontrolli i skedarëve temporarë ishte bërë për katalogë gjithmonë të zbrazët.
- mdbox: Gjatë regjistrimit të mesazheve, thirrja fdatasync() u ekzekutua në katalogun e gabuar prind. Gjithashtu, gjatë një dështimi ndodhte ndalesa përpara se të regjistrohej një gabim në regjistrin.
- notify_status: Plagini dĂ«shtonte papritur gjatĂ« inicializimit tĂ« dĂ«shtuar tĂ« pĂ«rdoruesit. â pop3: DĂ«rgimi i komandĂ«s me simbolin â:â çonte nĂ« dĂ«shtim âassert-crashâ. Regresion nĂ« lĂ«shimin 2.3.18.
- stats: Panicja e shkaktuar nga kërkesat për eksportues të ngjarjeve që nuk ekzistojnë kur shtohej një metrikë e re me komandën «doveadm stats add» është eliminuar. Tani jepet një gabim i saktë.
- stats: Nëse procesi eksportoi shumë ngjarje dhe më pas u mbyll, disa nga ngjarjet e fundit mund të ishin humbur.
- stats: Emrat e gabuar të etiketave Prometheus krijoheshin nën konfigurata të caktuara të histogram group_by. Prometheus i refuzonte këto etiketa.
- welcome: Plugini nuk funksiononte në disa raste kur INBOX krijohej, por nuk hapej, për shembull, nëse përpara hapjes së INBOX përdorej GETMETADATA.
Burimi: opennet.ru
