En ny version av den högpresterande POP3/IMAP4-servern Dovecot 2.3.21, som hanterar flera plattformar, har publicerats och stöder POP3- och IMAP4rev1-protokollen med populÀra tillÀgg som SORT, THREAD och IDLE, samt autentiserings- och krypteringsmekanismer (SASL, TLS, SCRAM). Dovecot upprÀtthÄller full kompatibilitet med klassiska mbox och Maildir, och anvÀnder externa index för att förbÀttra prestandan. Plugins kan anvÀndas för att utöka funktionaliteten (till exempel implementeras kvoter och ACL via plugins). Projektkoden distribueras under LGPL- och MIT-licenserna.
HuvudÀndringar:
- lib-oauth2: TillÄt validering av JWT-tokens med saknat "typ"-fÀlt. FÀltet "typ" anvÀnds inte av vissa nyckelutfÀrdare för att spara utrymme, sÀrskilt Kubernetes. Nu Àr saknat "typ" tillÄtet, men om det finns bör det fortfarande vara "jwt".
- auth: Svaret "Auth" frÄn passdb och userdb kan innehÄlla vÀrdet "event_ =vÀrde" som lÀggs till i inloggningshÀndelsen respektive e-postanvÀndarhÀndelsen.
- lib-master: StÀller in processtiteln i olika initialiseringsstadier för att förtydliga vad processen förvÀntar sig.
- lib-storage: Intervallet mail_temp_scan_interval ökas nu med 0...30 % beroende pÄ anvÀndarnamnets hash för att minska sannolikheten för belastningstoppar.
- lib-storage: Flyttade genomsökningen av tillfÀlliga filer frÄn det att en postlÄda öppnas till det att den stÀngs för att minska fördröjningen som anvÀndarna upplever.
- statistik: Om mÄttenheten anger fÀlt exporteras alla dessa fÀlt som rÀknare för Prometheus i expositionsformat.
- "*-login": Processer kunde krascha om SSL-anslutningen bröts av misstag. - acl: NÀr plugin-programmet laddades berÀknades flaggorna \\HasChildren och \\HasNoChildren felaktigt för postlÄdor som innehÄller '*' och '%' i namnet.
- auth: En krasch intrÀffade nÀr en anslutning till PostgreSQL DBMS misslyckades under start.
- auth: Vid inloggning med ogiltiga lösenord (t.ex. okÀnt schema) returnerade passdb felet "lösenordsmatchning" istÀllet för ett "internt fel".
- auth: Mekanismerna XOAUTH2 och OAUTHBEARER returnerade inte ett protokollspecifikt felmeddelande vid nÄgra fel. Detta hindrade sÀrskilt OIDC-detektering.
- dbox: Om rubriken last_temp_file_scan inte var instÀlld (sÀrskilt efter en dsync-migrering) skulle en temporÀr filsökning alltid utlösas nÀsta gÄng postlÄdan öppnades. Detta kan orsaka en belastningstopp efter migreringar. à tgÀrdat genom att anvÀnda postlÄdekatalogen vid en tidpunkt dÄ rubriken saknas, vilket vanligtvis förskjuter skanningstiden framÄt.
- dict-redis: En krasch intrÀffade vid ÄterstÀllning av transaktioner.
- dsync: NÀr en postlÄda tas bort pÄ fjÀrrsidan, och hierarkinivÄavgrÀnsarna inte matchade, uppstod en oÀndlig loop, vilket resulterade i ett minnesfel.
- dsync: Stegvis dsync misslyckades för mappnamn som slutar pÄ '%' om inte BROKENCHAR var angivet. Dessutom orsakade mappnamn med '%' nÄgon annanstans att varje stegvis dsync i onödan döpte om mappen till ett tillfÀlligt namn och tillbaka. Regression v2.3.19.
- imap-hibernate: Om en IMAP-klient avblockerades och timeoutades med meddelandet "(version mottagen)", lyckades avblockeringen senare och normal drift fortsatte. Detta var förvirrande eftersom imap-hibernate redan hade upptÀckt att klienten hade kopplats bort. Detta kunde undvikas genom att tvinga anslutningen till timeout vid avslutning av vilolÀge.
- imapc: Kraschar nÀr en mapp som visas via ett virtuellt plugin försvinner frÄn lagringsutrymmet.
- imapc: RADERA, EXISTS eller HĂMTA svar med server För en tidigare vald postlĂ„da kan meddelanden behandlas som om de tillhörde den nya, för nĂ€rvarande valda postlĂ„dan. Detta kan resultera i varningar.
- lib-http: Dovecot HTTP-server (doveadm, stats/openmetrics) kunde koppla bort HTTP-klienter innan svaret skickades helt. Detta hÀnde bara pÄ servrar som var upptagna och dÀr kÀrnans socketbuffertar var kraftigt överbelastade.
- lib-http: à tgÀrdade eventuell http-serverkrasch vid tidig klientavbrott. Regression i 2.3.18.
- lib-index: Korrupt indexfil kunde orsaka en krasch. à tgÀrdat: Panik: fil mail-transaction-log-view.c: rad 165 (mail_transaction_log_view_set): assertion failed: (min_file_seq <= max_file_seq).
- lib-index: Att rensa en befintlig cachefil som Àr större Àn 1 GB kan orsaka en krasch. Cachefiler som fortfarande Àr större Àn 1 GB tas nu bort efter rensning. à tgÀrdat: Panik: fil mail-index-util.c: rad 10 (mail_index_uint32_to_offset): assertion failed: (offset < 0x40000000).
- lib-lua: HTTP-klienten kunde inte matcha DNS-namn i e-postprocesser eftersom den förvÀntade sig att sockeln "dns-client" skulle finnas i den aktuella katalogen.
- lib-oauth2: Dovecot skickade client_id och client_secret som POST-parametrar till introspection-servern. Med Basic auth Àr deras anvÀndning dock valfri.
- lib-oauth2: JWT "aud"-validering misslyckades om "aud" saknades i token men konfigurerades i Dovecot.
- lib-oauth2: Kontroll av JWT-tokentyp Àr för strikt.
- lib-oauth2: JWT-tokenpubliken kontrollerades inte mot client_id enligt specifikationen.
- lib-ssl-iostream: AnvÀndning av ssl_require_crl=yes kan orsaka att CRL-kontroll misslyckas för utgÄende SSL/TLS-anslutningar, Àven om det var avsett att endast pÄverka CRL-kontroll pÄ klientsidan. SSL-certifikatv2.3.17 regression.
- lib-sql: MySQL-drivrutinen hade en minneslÀcka nÀr en anslutning misslyckades.
- lib-storage: Diverse korrigeringar för slut pÄ diskutrymme.
- master: InstÀllningen för idle_kill-tjÀnsten fungerade inte korrekt pÄ servrar som Àr upptagna. Det var mycket osannolikt att nÄgon process skulle vara inaktiv tillrÀckligt lÀnge för att avslutas. Dessutom, med ett stort antal processer (t.ex. imap), anvÀnde hanteringskoden för idle_kill en hel del CPU pÄ masterprocessen. Nu kommer varje tidsintervall för idle_kill att spÄra det minsta antalet inaktiva processer och sedan avsluta det antalet.
- mdbox: Kontroll av temporÀra filer utfördes för alltid tomma kataloger.
- mdbox: NÀr e-postmeddelanden skrevs gjordes anropet fdatasync() i fel överordnad katalog. Vid fel kraschade programmet istÀllet för att logga felet.
- notify_status: Plugin kraschar nÀr anvÀndarinitieringen misslyckas. - pop3: Att skicka ett kommando med tecknet ':' orsakade en "assert-crash". Regression i version 2.3.18.
- statistik: à tgÀrdade ett panikfel som uppstod vid Ätkomst till en icke-existerande hÀndelseexportör nÀr ett nytt mÀtvÀrde dynamiskt lades till med kommandot "doveadm stats add". Nu returneras rÀtt fel.
- statistik: Om en process exporterade mÄnga hÀndelser och sedan avslutades, kan nÄgra av de senaste hÀndelserna gÄ förlorade.
- statistik: Felaktiga Prometheus-etikettnamn skapades under vissa histogram group_by-konfigurationer. Prometheus avvisade dessa etiketter.
- vÀlkommen: Plugin-programmet misslyckades med att köras i vissa situationer dÀr en INKORG skapades men inte öppnades, till exempel om GETMETADATA anvÀndes innan INKORGEN öppnades.
KĂ€lla: opennet.ru
