Versioni e re e ndryshme për shërbimin e korrespondencës me performancë të lartë POP3/IMAP4 Dovecot 2.3.21 është publikuar, duke mbështetur protokollet POP3 dhe IMAP4rev1 me zgjerime të njohura si SORT, THREAD dhe IDLE, si dhe mekanizma autenticiteti dhe enkriptimi (SASL, TLS, SCRAM). Dovecot ruan plotesisht përputhshmëri me mbox klasike dhe Maildir, duke aplikuar indekse të jashtme për të rritur performancën. Për zgjerimin e funksionalitetit mund të përdoren plugina (p.sh., përmes plugina janë realizuar kuota dhe ACL). Kodi i projektit shpërndahet nën licencat LGPL dhe MIT.
Ndryshimet kryesore:
- lib-oauth2: Verifikimi i JWT-tokens me fushën "typ" të munguar tani është i lejuar. Fusha "typ" nuk përdoret nga disa emetues kyç për të kursyer hapësirë, veçanërisht, kubernetes. Tani mungesa e "typ" lejohet, por nëse është e pranishme, gjithsesi duhet të jetë "jwt".
- auth: Përgjigjja "Auth" nga passdb dhe userdb mund të përmbajë vlerën "event_<name>=value", e cila do të shtohet në ngjarjen e hyrjes në sistem dhe ngjarjen e përdoruesit të postës përkatësisht.
- lib-master: Vendos titullin e procesit në faza të ndryshme të inicializimit për të sqaruar çfarë pret procesi.
- lib-storage: Intervali mail_temp_scan_interval tani rritet me 0âŠ30% nĂ« varĂ«si tĂ« hash-it tĂ« emrit tĂ« pĂ«rdoruesit, pĂ«r tĂ« zvogĂ«luar probabilitetin e skenave tĂ« ngarkesĂ«s.
- lib-storage: Skanimi i dosjes përkohësisht është zhvendosur nga hapja e kutisë postare në momentin e mbylljes së saj, për të zvogëluar vonesën, e cila ndjehet nga përdoruesit.
- stats: Nëse në metrikë janë specifikuar fusha, të gjitha këto fusha eksportohen si numërues për prometheus në formatin exposition.
- «*-login»: Proceset mund tĂ« pĂ«rfundonin papritur nĂ« rast tĂ« ndĂ«rprerjes sĂ« pakujdesshme tĂ« lidhjes SSL. â acl: GjatĂ« ngarkimit tĂ« pluginit, flamujt \\HasChildren dhe \\HasNoChildren llogariteshin gabimisht pĂ«r kutitĂ« postare qĂ« pĂ«rmbanin tĂ« emĂ«rtohet â*â dhe â%â.
- auth: Ndodhi një dështim gjatë lidhjes së dështuar me DBMS PostgreSQL gjatë fillimit.
- auth: Gjatë hyrjes në sistem me fjalëkalime të gabuara (p.sh., me një skemë të panjohur) në passdb vendosej një gabim "përputhje fjalëkalimi" në vend të "gabimi të brendshëm".
- auth: Mekanizmat XOAUTH2 dhe OAUTHBEARER nuk jepnin një mesazh gabimi specifik për protokollin në rast të ndonjë gabimi. Kjo pengonte veçanërisht zbulimin e OIDC.
- dbox: Nëse titulli last_temp_file_scan nuk ishte vendosur (veçanërisht pas migrimit dsync), atëherë kur hapej përsëri kutia e postës, gjithmonë fillonte skanimi i skedarëve temporarë. Kjo mund të shkaktonte një rritje të ngarkesës pas migrimeve. Kjo u rregullua duke përdorur atime të direktorit të kutisë së postës në mungesë të titullit, që zakonisht e zhvendos kohën e skanimit në të ardhmen.
- dict-redis: Gjatë rrotullimit të transaksioneve ndodhi një dështim.
- dsync: Kur fshihej kutia e postës në anën e largët, kur ndarësit e niveleve të hierarkisë nuk përputheshin, ndodhte një cikël i pafund, duke shkaktuar dështim të memories.
- dsync: Dsynci inkremental nuk u ekzekutua për emrat e dosjeve që përfundonin me '%' nëse nuk ishte vendosur vlera BROKENCHAR. Po ashtu, emrat e dosjeve me '%' në vende të tjera shkaktonin që për çdo dsync inkremental, dosja të rinovohej pa nevojë në një emër të përkohshëm dhe pastaj të kthehej përsëri. Regression v2.3.19.
- imap-hibernate: Nëse gjatë zhbllokimit të klientit IMAP ndodhte një skadim me mesazhin "(version received)", atëherë zhbllokimi mund të përfundonte me sukses më vonë dhe të vazhdonte punën normale. Kjo shkaktonte konfuzion, sepse imap-hibernate tashmë kishte regjistruar se klienti ishte çaktivizuar. Këtë mund ta shmangim duke detyruar lidhjen të përfundojë nga skadimi i përfundimit të gjumit.
- imapc: Shembja gjatë zhdukjes nga depo e një dosjeje, e cila shfaqej përmes një plugini virtual.
- imapc: Pjesët e përgjigjeve EXPUNGE, EXISTS ose FETCH nga serverë për kutinë e postës që ishte zgjedhur më parë mund të përpunoheshin sikur i takonin një kutie të re postash, e cila ishte zgjedhur në atë moment. Kjo mund të çonte në shfaqjen e paralajmërimeve.
- lib-http: HTTP-serveri Dovecot (doveadm, stats/openmetrics) mund të ndalte klientët HTTP deri në dërgimin përfundimtar të përgjigjes. Kjo ndodhte vetëm në serverët e ngarkuar, ku buffers e soketëve të kernels ishin mbingarkuar shumë.
- lib-http: Rregulluar një rënien e mundshme të http-serverit në rastin e çaktivizimit të herët të klientit. Regression në 2.3.18.
- lib-index: Dëmtimi i skedarit të indeksit mund të shkaktonte një mbyllje të papritur. Rregulluar: Panic: file mail-transaction-log-view.c: line 165 (mail_transaction_log_view_set): assertion failed: (min_file_seq <= max_file_seq).
- lib-index: Pastrimi i skedhës së ekzistueshme të keƥit mbi 1 GB mund të kishte shkaktuar dështim. Tani, pas pastrimit, skedhat e keƥit që ende tejkalojnë 1 GB, fshihen. Zgjidhur: Panic: file mail-index-util.c: line 10 (mail_index_uint32_to_offset): assertion failed: (offset < 0x40000000).
- lib-lua: Klienti HTTP nuk mund tĂ« identifikonte emrat DNS nĂ« proceset postare, pasi priste qĂ« socket-i âdns-clientâ tĂ« ishte nĂ« katalogun aktual.
- lib-oauth2: Dovecot dërgonte client_id dhe client_secret si parametra POST te serveri i introspecionit. Megjithatë, me autentifikimin Basic, përdorimi i tyre është opcional.
- lib-oauth2: Validimi i JWT âaudâ nuk u krye nĂ«se âaudâ mungonte nĂ« token, por ishte konfiguruar nĂ« Dovecot.
- lib-oauth2: Kontrolli shumë i rreptë i llojit të çelësit JWT.
- lib-oauth2: Audience e tokenit JWT nuk u kontrollua për përputhshmëri me client_id, siç kërkon specifikimi.
- lib-ssl-iostream: Përdorimi i parametrit ssl_require_crl=yes mund të shkaktonte dështime në verifikimin e CRL për lidhjet SSL/TLS që ikin, ndonëse supozohej se ndikon vetëm në verifikimin CRL për klientët. certifikatat SSL. v2.3.17 regresion.
- lib-sql: Driver-i MySQL lejonte një rrjedhje të memories gjatë lidhjes së dështuar.
- lib-storage: Rregullime të ndryshme në rast të mungesës së hapësirës në disk.
- master: Konfigurimi idle_kill i shërbimit nuk punonte siç duhet në serverët e ngarkuar. Ishte shumë e pamundur që ndonjë proces të qëndronte i palëvizur mjaftueshëm gjatë për ta vrarë. Për më tepër, me numrin e madh të proceseve (p.sh. imap), kodi i përpunimit të idle_kill përdorte mjaft CPU në procesin kryesor. Tani çdo interval kohe idle_kill do të monitorojë numrin e minim të proceseve të palëvizura dhe më pas do ta vriste këtë numër.
- mdbox: Kontrollet e skedave përkohore u kryen për katalogët gjithmonë të zbrazët.
- mdbox: gjatë shkrimit të letrave, thirrja fdatasync() u krye në katalogun e gabuar prind. Gjithashtu, gjatë dështimit, ndodhi rënia në vend që të shkruhej një gabim në regjistër.
- notify_status: Shtesa dĂ«shtoi gjatĂ« inicializimit tĂ« pĂ«rdoruesit. â pop3: DĂ«rgimi i komandĂ«s me simbolin â:â çoi nĂ« dĂ«shtimin âassert-crashâ. Regresion nĂ« publikimin 2.3.18.
- stats: U eliminua panika qĂ« ndodhi kur u qas nĂ« njĂ« eksportues ngjarjesh qĂ« nuk ekzistonte gjatĂ« shtimit dinamik tĂ« njĂ« metrie tĂ« re me komandĂ«n âdoveadm stats addâ. Tani kthehet njĂ« gabim korrekt.
- stats: Nëse procesi eksportoi shumë ngjarje dhe më pas përfundoi, disa nga ngjarjet e fundit mund të ishin humbur.
- stats: Emrat e paqartë të etiketave Prometheus u krijuan në konfigurata të caktuara histogram group_by. Prometheus i refuzoi këto etiketa.
- welcome: Plugin-i nuk u ekzekutua në disa situata kur INBOX u krijua, por nuk u hap, për shembull, nëse para hapjes së INBOX u përdor GETMETADATA.
Burimi: opennet.ru
