diff --git a/imapclient/cmds.go b/imapclient/cmds.go index 68888e4..4b2a88d 100644 --- a/imapclient/cmds.go +++ b/imapclient/cmds.go @@ -150,10 +150,6 @@ func (c *Conn) AuthenticateSCRAM(method string, h func() hash.Hash, username, pa func (c *Conn) CompressDeflate() (untagged []Untagged, result Result, rerr error) { defer c.recover(&rerr) - if _, ok := c.CapAvailable[CapCompressDeflate]; !ok { - c.xerrorf("server does not implement capability %s", CapCompressDeflate) - } - untagged, result, rerr = c.Transactf("compress deflate") c.xcheck(rerr) diff --git a/imapserver/server.go b/imapserver/server.go index 80102f8..366e988 100644 --- a/imapserver/server.go +++ b/imapserver/server.go @@ -174,7 +174,9 @@ var authFailDelay = time.Second // After authentication failure. // TLS. The client should not be selecting PLUS variants on non-TLS connections, // instead opting to do the bare SCRAM variant without indicating the server claims // to support the PLUS variant (skipping the server downgrade detection check). -const serverCapabilities = "IMAP4rev2 IMAP4rev1 ENABLE LITERAL+ IDLE SASL-IR BINARY UNSELECT UIDPLUS ESEARCH SEARCHRES MOVE UTF8=ACCEPT LIST-EXTENDED SPECIAL-USE CREATE-SPECIAL-USE LIST-STATUS AUTH=SCRAM-SHA-256-PLUS AUTH=SCRAM-SHA-256 AUTH=SCRAM-SHA-1-PLUS AUTH=SCRAM-SHA-1 AUTH=CRAM-MD5 ID APPENDLIMIT=9223372036854775807 CONDSTORE QRESYNC STATUS=SIZE QUOTA QUOTA=RES-STORAGE METADATA SAVEDATE WITHIN NAMESPACE COMPRESS=DEFLATE LIST-METADATA MULTIAPPEND REPLACE" +const serverCapabilities = "IMAP4rev2 IMAP4rev1 ENABLE LITERAL+ IDLE SASL-IR BINARY UNSELECT UIDPLUS ESEARCH SEARCHRES MOVE UTF8=ACCEPT LIST-EXTENDED SPECIAL-USE CREATE-SPECIAL-USE LIST-STATUS AUTH=SCRAM-SHA-256-PLUS AUTH=SCRAM-SHA-256 AUTH=SCRAM-SHA-1-PLUS AUTH=SCRAM-SHA-1 AUTH=CRAM-MD5 ID APPENDLIMIT=9223372036854775807 CONDSTORE QRESYNC STATUS=SIZE QUOTA QUOTA=RES-STORAGE METADATA SAVEDATE WITHIN NAMESPACE LIST-METADATA MULTIAPPEND REPLACE" + +// disabled: COMPRESS=DEFLATE, has interoperability issues. The flate reader (inflate) still blocks on partial flushes, preventing progress. type conn struct { cid int64 diff --git a/rfc/index.txt b/rfc/index.txt index 23b770d..17d83ee 100644 --- a/rfc/index.txt +++ b/rfc/index.txt @@ -189,7 +189,7 @@ https://www.iana.org/assignments/message-headers/message-headers.xhtml 4551 Yes Obs (RFC 7162) IMAP Extension for Conditional STORE Operation or Quick Flag Changes Resynchronization 4731 Yes - IMAP4 Extension to SEARCH Command for Controlling What Kind of Information Is Returned 4959 Yes - IMAP Extension for Simple Authentication and Security Layer (SASL) Initial Client Response -4978 Yes - The IMAP COMPRESS Extension +4978 Roadmap - The IMAP COMPRESS Extension 5032 Yes - WITHIN Search Extension to the IMAP Protocol 5092 Roadmap - IMAP URL Scheme 5161 Yes - The IMAP ENABLE Extension