mirror of
https://github.com/mjl-/mox.git
synced 2025-07-14 19:34:36 +03:00
implement IMAP extension COMPRESS=DEFLATE, rfc 4978
to compress the entire IMAP connection. tested with thunderbird, meli, k9, ios mail. the initial implementation had interoperability issues with some of these clients: if they write the deflate stream and flush in "partial mode", the go stdlib flate reader does not return any data (until there is an explicit zero-length "sync flush" block, or until the history/sliding window is full), blocking progress, resulting in clients closing the seemingly stuck connection after considering the connection timed out. this includes a coy of the flate package with a new reader that returns partially flushed blocks earlier. this also adds imap trace logging to imapclient.Conn, which was useful for debugging.
This commit is contained in:
3
vendor/modules.txt
vendored
3
vendor/modules.txt
vendored
@ -19,6 +19,9 @@ github.com/mjl-/autocert
|
||||
# github.com/mjl-/bstore v0.0.6
|
||||
## explicit; go 1.19
|
||||
github.com/mjl-/bstore
|
||||
# github.com/mjl-/flate v0.0.0-20250221133712-6372d09eb978
|
||||
## explicit; go 1.21
|
||||
github.com/mjl-/flate
|
||||
# github.com/mjl-/sconf v0.0.7
|
||||
## explicit; go 1.12
|
||||
github.com/mjl-/sconf
|
||||
|
Reference in New Issue
Block a user