[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: LISTEXT to IESG?




Arnt Gulbrandsen wrote:


The thing that gets me the extended data item syntax. That syntax seems to be flexibility waiting for a task, hoping to be flexible enough for whatever the task may turn out to be. In other words, a solution looking for a problem.

Well, I had a similar discussion with Philip and Mark regarding generic syntax defined in draft-melnikov-imap-ext-abnf-08.txt and Marks position is that documents should provide guidance for future extensions.


The generic syntax for extensions defined in LIST-EXTENDED is the same as in draft-melnikov-imap-ext-abnf-08.txt. This helps to insure consistency between extensions to different commands and thus can minimize the number of different parsers people have to write.

I'd rather let each future extension define its own syntax,

Each future extension should define own syntax which ideally should conform to the generic syntax specified in LIST-EXTENDED ("ideally should conform" because it might turn out that the generic syntax is not flexible enough. However I don't think this is very likely.)


and forbid the server from adding extended data items unsolicited (ie. striking the third sentence on page 8 of draft -15

Ok, let me talk about this for a bit. The sentence you are referring to reads:


The server MAY return data in the extended fields that was not solicited by the client.

This sentence might need some clarification.

Firstly, there are 2 types of "solicited" fields: fields explicitly requested in the extended LIST command and fields implicitly requested by enabling some feature on the server (I can't think of such LIST field at the moment, but CONDSTORE defines a similar behavior when FETCH MODSEQ items are enabled on SELECT or other condstore-enabling command).

Secondly, IMAP has philosophy that any data can send by an IMAP server at any time and an IMAP client MUST be able to cope with that. This "MAY return" refers to this part. In general the server has no reason to return such data, unless it is explicitly or implicitly asked for it.

). The general syntax could be:

... [ SP 1*(extended-data-item-name SP extended-data-item) ]

The -name would be an nstring, the -item's syntax specified by the IANA registration of the -name. If a client knows the name, it can parse the item. If not, it can't. Full stop.

I know I've muttered about this before. Sorry for sounding like a broken record.