Subject: Re: list-extensions
From: Timo Sirainen <[email-masked]>
To: [email-masked]
Date: Sat, 30 Jun 2007 01:54:40 +0300
List-Id: <ietf-imapext.imc.org>

Hmm. I think I'm stuck with my implementation until I gain some clarity.

Back to my first mail:

> 3 list (subscribed recursivematch) "" *
> * LIST (\Subscribed) "." "INBOX"
> * LIST () "." "mail" ("CHILDINFO" ("SUBSCRIBED"))
> * LIST () "." "mail.foo" ("CHILDINFO" ("SUBSCRIBED"))
> * LIST (\Subscribed) "." "mail.foo.bar" ("CHILDINFO" ("SUBSCRIBED"))
> * LIST (\Subscribed) "." "mail.foo.bar.baz"
> 3 OK List completed.

Are those non-\Subscribed LIST entries required? The examples in the
draft are pretty confusing after all, because they seem to work
differently than how standard LIST works.

> C: D03 LIST (RECURSIVEMATCH SUBSCRIBED) "" "*2"
>       S: * LIST () "/" "foo2" ("CHILDINFO" ("SUBSCRIBED"))
>       S: * LIST (\Subscribed) "/" "foo2/bar2"
>       S: * LIST () "/" "baz2" ("CHILDINFO" ("SUBSCRIBED"))
>       S: * LIST (\Subscribed) "/" "baz2/bar2"
>       S: * LIST (\Subscribed) "/" "baz2/bar22"
>       S: * LIST (\Subscribed) "/" "baz2/bar222"
>       S: * LIST (\Subscribed) "/" "eps2" ("CHILDINFO" ("SUBSCRIBED"))
>       S: * LIST (\Subscribed) "/" "qux2/bar2"
>       S: D03 OK done
> 
>         and the server may also include
> 
>       S: * LIST (\NonExistent) "/" "qux2" ("CHILDINFO" ("SUBSCRIBED"))

So are the "foo2" and "baz2" replies required? If they are, why isn't
"quz2"? Why is it a special case just because it doesn't exist?

> C: D03 LIST (RECURSIVEMATCH SUBSCRIBED) "" "*"
>       S: * LIST () "/" "foo2" ("CHILDINFO" ("SUBSCRIBED"))
>       S: * LIST (\Subscribed) "/" "foo2/bar1"
>       S: * LIST (\Subscribed) "/" "foo2/bar2"
>       S: * LIST () "/" "baz2" ("CHILDINFO" ("SUBSCRIBED"))
>       S: * LIST (\Subscribed) "/" "baz2/bar2"
>       S: * LIST (\Subscribed) "/" "baz2/bar22"
>       S: * LIST (\Subscribed) "/" "baz2/bar222"
>       S: * LIST (\Subscribed) "/" "eps2" ("CHILDINFO" ("SUBSCRIBED"))
>       S: * LIST (\Subscribed) "/" "eps2/mamba"
>       S: * LIST (\Subscribed) "/" "qux2/bar2"
>       S: D03 OK done
> 
>         the LIST responses for mailboxes "foo2", "baz2" and "eps2" still
>         have the CHILDINFO extended data item, even though this
>         information is redundant and the client can determine it by
>         itself.

So they are required, also with "*" (Cyrus doesn't show) and not just
with "*2" (Cyrus shows)? If they're only required with "*2", why?

RFC 3501 treats '%' specially with LSUB. I don't see any such special
casing with list-extensions. So:

x list (subscribed recursivematch) "" box%
x list (subscribed recursivematch) "" box
x list (subscribed recursivematch) "" box*

If box has a subscribed child mailbox, these all reply with:

* LIST () "/" box (CHILDINFO (SUBSCRIBED))

Right?