Avaldatud on uus versioon multi-platvormilisest ning kĂ”rge jĂ”udlusega POP3/IMAP4 serverist Dovecot 2.3.21, mis toetab POP3 ja IMAP4rev1 protokolle koos populaarsete laiendustega nagu SORT, THREAD ja IDLE ning autentimise ja krĂŒpteerimise mehhanismidega (SASL, TLS, SCRAM). Dovecot sĂ€ilitab tĂ€ieliku ĂŒhilduvuse klassikaliste mbox ja Maildir vormingutega, rakendades vĂ€list indeksit jĂ”udluse tĂ”stmiseks. Funktsionaalsuse laiendamiseks on vĂ”imalik kasutada pluginaid (nĂ€iteks on kvood ja ACL realiseeritud pluginate kaudu). Projekti kood on litsentsitud LGPL ja MIT all.
Peamised muudatused:
- lib-oauth2: Lubatud on JWT-tokenite kontrollimine ilma 'typ' vĂ€ljata. 'typ' vĂ€li ei ole mĂ”nede vĂ”tmeemitite poolt kasutusel ruumi sÀÀstmiseks, eelkĂ”ige kuberneteses. NĂŒĂŒd on 'typ' puudumine lubatud, kuid kui see on olemas, peab see olema 'jwt'.
- auth: passdb ja userdb 'Auth' vastus vĂ”ib sisaldada vÀÀrtust 'event_=value', mis lisatakse vastavalt sisselogimise ja postkastikasutaja sĂŒndmustele.
- lib-master: Seab protsessi pealkirja erinevatel initsialiseerimise etappidel, et selgitada, mida protsess ootab.
- lib-storage: mail_temp_scan_interval intervall suureneb nĂŒĂŒd 0...30% sĂ”ltuvalt kasutajanime hash'ist, et vĂ€hendada koormuse tĂ”usude tĂ”enĂ€osust.
- lib-storage: Ajutise faili skaneerimine on viidud postkasti avamise asemel selle sulgemise hetkele, et vÀhendada kasutajate kogetavat viivitust.
- stats: Kui metrics mÀÀratleb vÀljad, eksporditakse kÔik need vÀljad prometheusele loendurite kujul eksponeerimise formaadis.
- â*-loginâ: Protsessid vĂ”isid ootamatult sulguda, kui SSL-ĂŒhendus katkestati ebatavaliselt. â acl: Plugina laadimise ajal arvutati mĂ€rgid \\HasChildren ja \\HasNoChildren valesti postkastide puhul, mille nimis sisalduvad â*â ja â%â.
- auth: PostgreSQL andmebaasi ĂŒhenduse ebaĂ”nnestumisel kĂ€ivitamise ajal tekkis tĂ”rge.
- auth: Vale parooliga sisselogimisel (nt tundmatu skeemi korral) andis passdb 'internaalne viga' asemel veateate 'password mismatch'.
- auth: XOAUTH2 ja OAUTHBEARER mehhanismid ei andnud protokolli spetsiifilisi veateateid mistahes vigade korral. See segas eriti OIDC tuvastamist.
- dbox: Kui last_temp_file_scan pealkiri ei olnud seadistatud (eriti pÀrast dsync-migreerimist), siis jÀrgmisel postkasti avamisel kÀivitati alati ajutiste failide skaneerimine. See vÔis pÔhjustada koormuse piiki pÀrast migratsioone. Parandatud postkasti katalooge atime kasutades pealkirja puudumise korral, mis tavaliselt nihutab skaneerimise aega tulevikku.
- dict-redis: Tehingute tagasi kerimisel toimus tÔrge.
- dsync: Postkasti kustutamisel kaugemas lĂ”pus, kui hierarhia taseme eraldajad ei kattunud, tekkis lĂ”pmatu tsĂŒkkel, mis viis mĂ€lukoormuseni.
- dsync: Inkrementaalne dsync ei toimunud kaustade nimede puhul, mis lĂ”ppesid sĂŒmboliga â%â, kui BROKENCHAR vÀÀrtust ei olnud seadistatud. Samuti viisid kaustade nimed, milles â%â esines mujal, igal inkrementaalsel dsync'il tarbetu kausta ĂŒmbernimetamiseni ajutiseks nimeks ja tagasi. Regresseerumine versioonis v2.3.19.
- imap-hibernate: Kui IMAP-klienti avades tekkis ajutine katkestus sĂ”numiga â(version received)â, siis hiljem saaks avamine edukalt lĂ”pule viidud ja jĂ€tkata normaalset tööd. See tekitas segadust, kuna imap-hibernate oli juba fikseerinud, et klient oli vĂ€lja lĂŒlitatud. Selle saab vĂ€ltida, sundides ĂŒhendust lĂ”ppema hĂŒbriidreĆŸiimi lĂ”ppemise aja möödumisel.
- imapc: Kukkumine, kui virtuaalsest pluginast oli kadunud kataloog.
- imapc: Vastused EXPUNGE, EXISTS vÔi FETCH serverilt varem valitud postkasti kohta vÔidi töödelda selliselt, nagu kuuluksid need uuele postkastile, mis on hetkel valitud. See vÔis kaasa tuua hoiatusi.
- lib-http: Dovecot'i HTTP-server (doveadm, stats/openmetrics) vĂ”is katkestada HTTP-kliente enne vastuse tĂ€ielikku saatmist. See juhtus ainult koormatud serveritel, kus tuum soketite puhvrid olid tugevalt ĂŒlekoormatud.
- lib-http: Parandatud vÔimalik kukkumine http-serveris kliendi varajase katkestamise korral. Regresseerumine versioonis 2.3.18.
- lib-index: Indeksifaili kahjustamine vÔis pÔhjustada kokkuvarisemise. Parandatud: Panic: file mail-transaction-log-view.c: line 165 (mail_transaction_log_view_set): assertion failed: (min_file_seq <= max_file_seq).
- lib-index: Olemasoleva vahemĂ€lu faili, mille suurus ĂŒletas 1 GB, kustutamine vĂ”is pĂ”hjustada tĂ”rke. NĂŒĂŒd, pĂ€rast vahemĂ€lu kustutamist, eemaldatakse failid, mille suurus ĂŒletab endiselt 1 GB. Parandatud: Panic: file mail-index-util.c: line 10 (mail_index_uint32_to_offset): assertion failed: (offset < 0x40000000).
- lib-lua: HTTP klient ei suutnud mÀÀrata DNS nimesid posti protsessides, kuna ootas, et 'dns-client' sokket asub praeguses kataloogis.
- lib-oauth2: Dovecot saatis client_id ja client_secret introspektsiooni serverisse POST parameetritena. Kuid Basic auth puhul on nende kasutamine valikuline.
- lib-oauth2: JWT 'aud' valideerimist ei tehtud, kui 'aud' puudus tokenis, kuid see oli Dovecotis seadistatud.
- lib-oauth2: Liialt range JWT vĂ”tme tĂŒĂŒbi kontroll.
- lib-oauth2: JWT tokeni auditooriumi vastavust client_id-le ei kontrollitud, nagu spetsifikatsioon ette nÀeb.
- lib-ssl-iostream: ssl_require_crl=yes parameetri kasutamine vĂ”is pĂ”hjustada CRL-i kontrollimise tĂ”rkeid vĂ€ljaminevates SSL/TLS ĂŒhendustes, kuigi eeldati, et see mĂ”jutab CRL-i kontrollimist vaid kliendi jaoks. SSL-sertifikaadid. v2.3.17 regressioon.
- lib-sql: MySQL draiver lubas mĂ€lu leket ebaĂ”nnestumise korral ĂŒhendamisel.
- lib-storage: Erinevad parandused, kui diskil ruum otsa sai.
- master: idle_kill teenuse seadistus ei töötanud korralikult kĂ”rgete koormustega serverites. Oli vĂ€ga ebatĂ”enĂ€oline, et mĂ”ni protsess pĂŒsis piisavalt kaua, et tapetud saada. Lisaks, kui protsesse oli palju (nt imap), kasutas idle_kill koodi korralikult palju CPU-d peaprotsessis. NĂŒĂŒd jĂ€lgib iga idle_kill ajavahemik kĂ”ige vĂ€hem jĂ”udeolekust protsesse ja tapab selle koguse.
- mdbox: Ajutiste failide kontrollimine toimus alati tĂŒhi kataloogides.
- mdbox: Kirjade kirjutamise ajal viidi fdatasync() kutsumine lÀbi vale vanema katalooge. Samuti toimus tÔrke korral kokkuvarisemine, mitte vea logimine.
- notify_status: Plugin lĂ”petab töö ebaĂ”nnestunud kasutaja initsialiseerimise korral. â pop3: KĂ€skude saatmine ':' sĂŒmboliga viis 'assert-crash' tĂ”rkeni. 2.3.18 vĂ€ljaandes toimunud regressioon.
- stats: Parandatud paanikat, mis tekkis, kui pöörduti mitteeksisteeriva sĂŒndmuste eksportija poole uue mÔÔtme dĂŒnaamilise lisamise korral kĂ€suga 'doveadm stats add'. NĂŒĂŒd antakse Ă”ige viga.
- statistika: Kui protsess eksportis palju sĂŒndmusi ja pĂ€rast seda lĂ”petati, vĂ”isid mĂ”ned viimased sĂŒndmused kaduma minna.
- statistika: Vigased Prometheuse sildid loodi teatavate histogrammi group_by konfiguratsioonide korral. Prometheus lĂŒkkas need sildid tagasi.
- tervitus: Plugin ei töötanud teatud olukordades, kui INBOX loodi, kuid seda ei avatud, nÀiteks kui INBOX-i avamise eel kasutati GETMETADATA-d.
Allikas: opennet.ru
