METADATA help
Marco
falon at ruparpiemonte.it
Thu Apr 30 06:41:34 EDT 2020
Oh, I have found the solution!
It seems that in the annotation_definitions file the *name* of the
third-party annotation MUST be down-case.
The RFC5464 says:
"Except as noted otherwise, all alphabetic characters are case-
insensitive. The use of upper or lower case characters to define
token strings is for editorial clarity only. Implementations MUST
accept these strings in a case-insensitive fashion."
So this could be a bug...
Interesting this: if I define a downcase name in the file, then the
GET/SETMETADATA works case insensitive as expected. But if the name in
annotation file is uppercase, the imap metadata commands return NIL or
Permission denied.
Kind Regards
Marco
Il 28/04/2020 12:49, Marco ha scritto:
> Hello,
>
> I have some problems in Cyrus 3.0.13 with user defined metadata.
>
> Let suppose I define in imapd.conf
>
> annotation_definitions: /etc/annoIMAP.conf
>
> and annoIMAP.conf is:
>
> /vendor/example/partition/comune.prova.it,server,string,backend,value.priv,lrswipkxtea
>
>
> With this configuration all works fine with the old annotatemore
> "standard". I can set and read annotations.
>
> But time will crawl, so I have to adopt the new METADATA standard
> (RFC5464) to manage these values.
>
> If I try
>
> a SETMETADATA "" (/private/vendor/example/partition/comune.prova.it
> "prova1")
> a NO Permission denied
>
> I have to do this to set the value:
>
> a SETANNOTATION "" "/vendor/example/partition/comune.prova.it"
> ("value.priv" "prova1")
> a OK Completed
>
>
> Now, with
>
> a GETMETADATA "" "/private/*"
> * METADATA "" ("/private/vendor/example/partition/comune.prova.it"
> "prova1" "/private/vendor/cmu/cyrus-imapd/squat" NIL
> "/private/vendor/cmu/cyrus-imapd/expire" NIL
> "/private/vendor/cmu/cyrus-imapd/usercounters" "3 0 0 0 0 0 0 0 0 0 0"
> "/private/vendor/cmu/cyrus-imapd/usermodseq" "0" "/private/comment" NIL
> "/private/admin" NIL)
>
> but if I ask only my user defined metadata:
> a GETMETADATA "" "/private/vendor/example/partition/comune.prova.it"
> * METADATA "" ("/private/vendor/example/partition/comune.prova.it" NIL)
>
> the server tell me NIL in place of "prova1".
>
> I would ask an help with this protocol:
>
> - I would like to know why SETMETADATA fails with "Permission denied" in
> above example.
>
> - Then I have to know why a wildcard query show me the "prova1" value in
> "/private/vendor/example/partition/comune.prova.it", but when I query
> only the value of "/private/vendor/example/partition/comune.prova.it"
> the answer is NIL.
>
> Other detail:
> name : Cyrus IMAPD
> version : 3.0.13-6.el8
> vendor : Project Cyrus
> support-url: https://www.cyrusimap.org
> os : Linux
> os-version : 4.18.0-147.8.1.el8_1.x86_64
> environment: Built w/Cyrus SASL 2.1.27
> Running w/Cyrus SASL 2.1.27
> Built w/OpenSSL 1.1.1c FIPS 28 May 2019
> Running w/OpenSSL 1.1.1c FIPS 28 May 2019
> Built w/zlib 1.2.11
> Running w/zlib 1.2.11
> CMU Sieve 3.0
> NET-SNMP
> mmap = shared
> lock = fcntl
> nonblock = fcntl
> idle = idled
>
>
> Thank you very much
> Kind Regards
>
> Marco
> ----
> Cyrus Home Page: http://www.cyrusimap.org/
> List Archives/Info: http://lists.andrew.cmu.edu/pipermail/info-cyrus/
> To Unsubscribe:
> https://lists.andrew.cmu.edu/mailman/listinfo/info-cyrus
>
More information about the Info-cyrus
mailing list