On Tue, Dec 01, 2009 at 05:39:55PM -0600, Timo Sirainen wrote:
> Just thought I'd mention that I probably won't be answering mails very 
> actively this week while I'm in San Antonio (and I was kind of busy last week 
> too). Hopefully I'll get back to answering/bugfixing next week..
> 
> I also started writing developers documentation to 
> http://wiki.dovecot.org/Design. Comments welcome. Some things I had planned 
> next:
> 
>  - istream internals
>  - lib-storage API docs
>  - ..?

Hello Timo,

Just an idea talking about writing documentation :

When I looked at the authentication code (using LDAP) back in the 1.1 version,
it took me some time to understand the function call cascading, especially with
the "callback"/"context" mechanism which I found clever but hard to follow. 

I came to the understanding (hope I was right) that you were using some kind of
layered architecture, which went something like this :

  "low level" < ldap_request level < passdb_ldap_request level < auth_request 
level < auth_request_handler level < auth_client_connection level < "high level"

where :

     . passdb_ldap_request == passwd checking
     . auth_request == parameters (user, password, state) and internal 
management of the request
     . auth_request_handler == building of the answer of the request
     . auth_client_connecion == sending to the authentication client 
(imap-login)

...

  . callback : a pointer in a lower level to a function in an higher level

  . context : what links "objects" of those layers eachother

I was thinking that, if my understanding is correct, some overview from you of
such an architecture would be of great help for those who want to understand
the code.

Thanks.

-- 
Thomas Hummel       | Institut Pasteur
<hum...@pasteur.fr> | Pôle informatique - systèmes et réseau

Reply via email to