Subject: RE: New driver

From: Jacques Exelrud <[email-masked]>
Date: Thu, 12 Sep 2002 10:28:27 -0300

> -----Original Message-----
> From: Mark Crispin [mailto:[email-masked]]On Behalf Of Mark
> Crispin
> Sent: Wednesday, September 11, 2002 17:37
> To: Jacques Exelrud
> Cc: 'IMAP'
> Subject: re: New driver
> 
> 
> On Wed, 11 Sep 2002 16:41:28 -0300, Jacques Exelrud wrote:
> > 	Not sure if this is the correct place to post this 
> question, if not
> > please direct me to the correct address.
> 
> The correct place for such questions is the comp.mail.imap newsgroup.
> 

	Will try to post future questions there.

> Assuming that you are talking about the UW IMAP server, you 

	Sorry, I forgot to mention that.

> can also use
> 	[email-masked]
> 

	Now I'm subscribed to this list. Which one is the preferred place to
send questions ? The List or the newsgroup ?

> > 	The company I work for wish to develop an IMAP 
> interface to one of
> > it's products. I'm planning doing this by developing a 
> driver to plug into
> > the IMAP server. What I'm planning to develop is both a new 
> authentication
> > mechanism and a new mailbox format. I'm not sure if this is 
> the correct
> > approach or if I still need to create something else.
> 
> Assuming that you are talking about the UW IMAP server, you 
> will need to write
> both a "mailbox driver" for your mailbox format, and an 
> "authentication
> driver" for your authentication mechanism.
> 

	That what I said. I was unsure if this would be enough or something
extra would be needed.

> Let's say that your mailbox format is called foo, and your 
> authentication
> mechanism is called bar.  You will write a mailbox driver in
> 	imap-????/src/osdep/unix/foo.[ch]
> and add it to the c-client library by adding
> 	EXTRADRIVERS=foo
> to the make command.  You will also write an authentication driver in
> 	imap-????/src/osdep/unix/auth_bar.[ch]
> and add it to the c-client library by adding:
> 	EXTRAAUTHENTICATORS=bar
> to the make command.  So, if you are building on modern 
> Linux, the resulting
> make command will be something like:
> 	make lnp EXTRADRIVERS=foo EXTRAAUTHENTICATORS=bar
> 
> To see what should go into mailbox and authentication 
> drivers, look at one of
> the existing ones to use as a model.  For example, consider
> 	imap-????/src/osdep/unix/mbx.[ch]
> for a model for the mailbox driver, and
> 	imap-????/src/c-client/auth_gss.[ch]
> for a model for the authentication driver.
> 

	:) I was planning on using mbx as a "template" for the mailbox but
hadn't decided what to use as template for authentication. Will take a look
at gss.

	First I hope that I'm not saying anything foolish based on the fact
that I just started analyzing UW's source files...

	Checking the UW sources mbx.c is 48K big and auth_gss.c is 13K. gss
seems to be this size based solely on gss needs as only 2 entry points are
implemented. mbx on the other hand has many  entry points implemented but
many (some?) mbx functionality is implemented by the dummy driver. I suppose
that dummy is some kind of common code when the mailbox is file system
based. Can you point me to some base code where the mailbox is implemented
somewhere else like a database or using some networking protocol ? Haven't
checked the provided drivers for pop3 or nntp. Would one of the be a good
choice for base code ?

	Thanks in advance,
	Jacques