Cyrus 2.4 and RFC5256 (SORT and THREAD Extensions)
cyrus-dev at edla.org
Thu Sep 30 07:55:41 EDT 2010
Sorry but Cyrus 2.4 does not seem to conform to RFC 5256 as stated in
Here is an excerpt from RFC5256 (Chapter 7.Internationalization Considerations)
As stated in the introduction, the rules of I18NLEVEL=1 as described
in [IMAP-I18N] MUST be followed; that is, the SORT and THREAD
extensions MUST collate strings according to the i;unicode-casemap
Here is an excerpt from draft-ietf-imapext-sort-19 which indeed is the
actual implementation in Cyrus.
If the server does not support the [IMAP-I18N] COMPARATOR extension, the
collation algorithm used is the "en;ascii-casemap" collation
described in [COMPARATOR].
This "slight" change was introduced [sic] in
draft-ietf-imapext-sort-20 and discussed here
Actually in Cyrus 2.4 cache items are stored in ascii. RFC 5256
require them to be UTF-8 to be sorted as required.
That probably implies in Cyrus code :
- store cache items in UTF-8
- increment CACHE_VERSION
- check everything that will be broken by UTF-8 (actual sort
code probably is)
More information about the Cyrus-devel