En ny version av den plattformsoberoende högpresterande POP3/IMAP4-servern Dovecot 2.3.21 har publicerats, som stöder protokollen POP3 och IMAP4rev1 med populÀra tillÀgg, sÄsom SORT, THREAD och IDLE, samt autentiserings- och krypteringsmekanismer (SASL, TLS, SCRAM). Dovecot bibehÄller fullstÀndig kompatibilitet med klassiska mbox och Maildir genom att anvÀnda externa index för att öka prestandan. För att utöka funktionaliteten kan plugins anvÀndas (till exempel implementeras kvoter och ACL via plugins). Projektets kod distribueras under licenserna LGPL och MIT.
Huvudsakliga förÀndringar:
- lib-oauth2: Kontroll av JWT-token tillÄts nu utan fÀltet "typ". FÀltet "typ" anvÀnds inte av vissa nyckelutfÀrdare för att spara utrymme, sÀrskilt kubernetes. Nu tillÄts avsaknad av "typ", men om det finns sÄ mÄste det fortfarande vara "jwt".
- auth: Svaret "Auth" frÄn passdb och userdb kan innehÄlla vÀrdet "event_=value", vilket kommer att lÀggas till hÀndelsen för inloggning respektive hÀndelsen för e-postanvÀndaren.
- lib-master: SÀtter processens rubrik vid olika initieringssteg för att tydligt förklara vad processen förvÀntar sig.
- lib-storage: Intervallen mail_temp_scan_interval ökar nu med 0âŠ30% beroende pĂ„ hash av anvĂ€ndarnamnet för att minska risken för belastningstoppar.
- lib-storage: Skanning av temporÀra filer flyttades frÄn att ske vid öppnandet av postlÄdan till vid stÀngning för att minska fördröjningen som upplevs av anvÀndarna.
- stats: Om fÀlten anges i statistiken, exporteras alla dessa fÀlt som rÀknare för prometheus i exposition-format.
- "*-login": Processerna kunde krascha vid en ovarsam avslutning av SSL-anslutningen. â acl: Vid laddning av plugin berĂ€knades flaggorna \\HasChildren och \\HasNoChildren felaktigt för postlĂ„dor som innehöll '*' och '%'.
- auth: En krasch intrÀffade vid ett misslyckat anslutning till PostgreSQL-databasen vid start.
- auth: Vid inloggning med felaktiga lösenord (till exempel med en okÀnd schemat) genererades istÀllet för "intern fel" ett meddelande om "password mismatch" i passdb.
- auth: Mekanismerna XOAUTH2 och OAUTHBEARER gav inte ett protokollspecifikt felmeddelande vid nÄgra fel. Detta försvÄrade sÀrskilt upptÀckten av OIDC.
- dbox: Om rubriken last_temp_file_scan inte har angetts (sÀrskilt efter dsync-migrering), sÄ startades alltid en skanning av tillfÀlliga filer nÀsta gÄng postlÄdan öppnades. Detta kunde orsaka en belastningstoppar efter migrationer. Detta har ÄtgÀrdats genom att anvÀnda atime för postlÄdans katalog nÀr rubriken saknas, vilket vanligtvis flyttar skanningstiden framÄt.
- dict-redis: Det uppstod ett fel vid ÄterstÀllning av transaktioner.
- dsync: Vid borttagning av postlÄda pÄ den avlÀgsna sidan, nÀr avgrÀnsarna för hierarkiska nivÄer inte matchade, uppstod en oÀndlig loop som ledde till minnesutflöde.
- dsync: Inkrementell dsync utfördes inte för mappnamn som slutade pĂ„ â%â om inte vĂ€rdet BROKENCHAR var instĂ€llt. Mappnamn med â%â pĂ„ andra stĂ€llen ledde ocksĂ„ till onödig omnamning av mappen till ett temporĂ€rt namn och tillbaka vid varje inkrementell dsync. Regression v2.3.19.
- imap-hibernate: Om det uppstod timeout nÀr IMAP-klientens upplÄsning skedde med meddelandet "(version received)", kunde upplÄsningen senare slutföras framgÄngsrikt och fortsÀtta vanlig drift. Detta ledde till förvirring eftersom imap-hibernate redan hade registrerat att klienten var frÄnkopplad. Detta kan undvikas genom att lÄta anslutningen avslutas vid timeout för hybernationens avslutande.
- imapc: Krasch vid borttagning av en mapp som visades via den virtuella plugin.
- imapc: Svar EXPUNGE, EXISTS eller FETCH med servern för den tidigare valda postlÄdan kunde behandlas som om de tillhörde den nya postlÄdan som valdes just nu. Detta kunde leda till att varningar framkom.
- lib-http: HTTP-servern Dovecot (doveadm, stats/openmetrics) kunde koppla bort HTTP-kunder före fullstÀndig skickning av svaret. Detta intrÀffade endast pÄ belastade servrar dÀr kÀrnans socketbuffrar var kraftigt överfyllda.
- lib-http: Möjlig krasch av http-servern vid tidig avkoppling av kunden har ÄtgÀrdats. Regression i 2.3.18.
- lib-index: Skada pÄ indexfilen kunde leda till krasch. à tgÀrdat: Panic: file mail-transaction-log-view.c: line 165 (mail_transaction_log_view_set): assertion failed: (min_file_seq <= max_file_seq).
- lib-index: Rensning av befintlig cachefil större Àn 1 GB kan ha lett till ett fel. Nu raderas cachefiler som fortfarande överskrider 1 GB efter rensning. à tgÀrdat: Panic: file mail-index-util.c: line 10 (mail_index_uint32_to_offset): assertion failed: (offset < 0x40000000).
- lib-lua: HTTP-klienten kunde inte bestÀmma DNS-namn i postprocesserna, eftersom den förvÀntade att socketen 'dns-client' skulle finnas i den aktuella katalogen.
- lib-oauth2: Dovecot skickade client_id och client_secret som POST-parametrar till introspektionstjÀnsten. Vid Basic auth Àr deras anvÀndning dock valfri.
- lib-oauth2: Validering av JWT 'aud' utfördes inte om 'aud' saknades i token, men var konfigurerad i Dovecot.
- lib-oauth2: För strÀng typkontroll av JWT-nycklar.
- lib-oauth2: MÄlgruppen för JWT-token kontrollerades inte mot client_id, vilket specificationen krÀver.
- lib-ssl-iostream: AnvÀndningen av parametern ssl_require_crl=yes kan ha lett till fel vid CRL-kontroll för utgÄende SSL/TLS-anslutningar, trots att det var tÀnkt att den endast skulle pÄverka CRL-kontrollen för klienter. SSL-certifikat. v2.3.17 regression.
- lib-sql: MySQL-drivrutinen tillÀt minneslÀckor vid misslyckade anslutningar.
- lib-storage: Olika korrigeringar vid brist pÄ diskutrymme.
- master: Konfigurationen av idle_kill-tjÀnsten fungerade inte som den skulle pÄ belastade servrar. Det var mycket osannolikt att nÄgon process var inaktiv tillrÀckligt lÀnge för att bli dödad. Dessutom, vid ett stort antal processer (t.ex. imap) anvÀnde idle_kill-koden en hel del CPU pÄ huvudprocessen. Nu kommer varje idle_kill-tidsintervall att spÄra det minsta antalet inaktiva processer och sedan döda detta antal.
- mdbox: Kontroll av temporÀra filer utfördes för alltid tomma kataloger.
- mdbox: Vid skrivning av meddelanden gjordes anropet till fdatasync() i fel överordnad katalog. Dessutom intrÀffade ett fall av krasch istÀllet för att skriva ett fel i loggen vid ett misslyckande.
- notify_status: Pluginet kraschar vid misslyckad anvĂ€ndarinitiering. â pop3: Att skicka kommandot med tecknet ':' ledde till ett 'assert-crash' fel. Regression i version 2.3.18.
- stats: Paniken som uppstod vid Ätkomst till en icke-existerande evenemangs-exportör vid dynamisk tillÀggning av en ny mÀtvÀrde via kommando 'doveadm stats add' ÄtgÀrdades. Nu returneras ett korrekt fel.
- statistik: Om processen har exporterats mÄnga hÀndelser och sedan avslutats, kan nÄgra av de senaste hÀndelserna ha gÄtt förlorade.
- statistik: Felaktiga namn pÄ Prometheus-mÀrkningar skapades vid vissa konfigurationer av histogram group_by. Prometheus avvisade dessa mÀrken.
- vÀlkommen: Plugin fungerade inte i vissa situationer nÀr INBOX skapades men inte öppnades, till exempel om GETMETADATA anvÀndes innan INBOX öppnades.
KĂ€lla: opennet.ru
