Need advice: mailbox-based \Seen flag

Ken Murchison murch at
Sat Sep 1 14:05:42 EDT 2007

I had some time while waiting for paint to dry, so I whipped up this 
quick patch for shared seen state, based on our previous discussions. 
It uses a "/vendor/cmu/cyrus-imapd/sharedseen" mailbox annotation, 
stored as a mailbox option in the index header, to enable/disable shared 
seen state, and stores the shared seen state in "anyone.seen".  Note 
that this patch is completely untested, although it compiles against 
CVS.  I also didn't consider replication yet.

Feel free to try this and see if it has the intended behavior.  Remember 
that the 's' ACL right controls whether a person can change the \Seen 
flag on a message.

Boris Lytochkin wrote:
> Hello!
> I need an advice in implementing per-mailbox \Seen flag (or 'shared'
> \Seen flag in per-user basis).
> For now I want to implement it this way:
> 1) add a new mailbox attribute, say 'sharedseen'
> 2) switch path for .seen file in imap/seen_*.c:seen_getpath() if
>    'sharedseen' flag is set on mailbox.
> 3) changes in replication module?
> So, setting 'sharedseen' attribute to mailbox will cause using
> per-mailbox seen-file.
> What are weak points of this implementation?
> Is there more correct way to make per-mailbox \Seen flag?

Kenneth Murchison
Systems Programmer
Project Cyrus Developer/Maintainer
Carnegie Mellon University
-------------- next part --------------
A non-text attachment was scrubbed...
Name: sharedseen.diff
Type: text/x-patch
Size: 6534 bytes
Desc: not available
Url : 

More information about the Cyrus-devel mailing list