[dovecot] Re: bincimap
On Tue, Feb 04, 2003 at 02:54:47PM +0100, Andreas Aardal Hanssen wrote:
I can change the words in the FAQ if you feel offended by it, but you'll have to address points individually. I never made remarks about your personal code conventions, and I never claimed that my server "focuses on security" in the extent that Dovecot does.
If you want to discuss our different designs, please do it seriously, point for point, and don't just troll around like this.
Sorry, I just got a bit disappointed after reading the the web page first. Your lines of code comparisions just seemed to imply that your server does everything that others would but with only a fraction of code. There was also something about Dovecot's design being too complex, so I thought you might have solved those problems more elegantly.
When you write something from scratch, I think it's a good idea to design it so that it's superior to existing implementations in at least some ways, not just make a clone with slightly different coding style. If all you wanted was a clone with some changes (and better maintainer), forking the project would be much smaller job.
Well, here's some design thoughts:
Maildir implementation could be hidden behind a class to access it. That would keep the ugly details hidden from the rest of the code, as well as allow easily implementing other mail storages.
Restricting yourself to only plaintext authentication doesn't sound very good plan.
Separating the pre-login process from post-login process would probably be a good idea to keep their functionality completely separated. It would also be easier to audit the pre-login code if you knew exactly what there is. After logging in, you could just exec() the post-login process.
Don't use sprintf().
Actually I don't get why you guys CC'd me personally on this. If you have anything in particular you want to discuss you can post it to the mailing list.
I just thought you'd rather want to see it now than months later in google. I know I would. I didn't think it was really relevant to your mailing list, but if you say so..
On Tue, 4 Feb 2003, Timo Sirainen wrote:
Sorry, I just got a bit disappointed after reading the the web page first. Your lines of code comparisions just seemed to imply that your server does everything that others would but with only a fraction of code.
Well, it doesn't claim to support other than Maildir, but it does claim to be a full IMAP4rev1 implementation.
When you write something from scratch, I think it's a good idea to design it so that it's superior to existing implementations in at least some ways
Are you suggesting that Andreas hasn't done this?
just make a clone with slightly different coding style. If all you wanted was a clone with some changes (and better maintainer), forking the project would be much smaller job.
Who would want a clone of Courier IMAP? :-)
Separating the pre-login process from post-login process would probably be a good idea to keep their functionality completely separated. It would also be easier to audit the pre-login code if you knew exactly what there is. After logging in, you could just exec() the post-login process.
Agreed. Given that qmail-pop3d was an inspiration, I'm surprised this hasn't been done.
You might look at http://www.untroubled.org/mailfront/imapfront.html for a pre-existing pre-login imapd. Doesn't handle STARTTLS though.
Timo, my preferred way to run network servers is to have tcpserver running under supervise, and logging to multilog. bincimap is designed to run this way. I don't know how dovecot executes - there's no mention of either init.d or inetd in the documentation AFAICT. Can dovecot be used in a supervise/tcpserver/multilog environment, and if so, how?
-- Charlie Brady Lead Product Developer Network Server Solutions Group Mitel Networks Corporation http://www.mitel.com/smallbusiness Phone: +1 (613) 592 5660 or 592 2122 Fax: +1 (613) 592 1175
On Mon, 2003-02-17 at 05:01, Charlie Brady wrote:
Timo, my preferred way to run network servers is to have tcpserver running under supervise, and logging to multilog. bincimap is designed to run this way. I don't know how dovecot executes - there's no mention of either init.d or inetd in the documentation AFAICT. Can dovecot be used in a supervise/tcpserver/multilog environment, and if so, how?
I haven't looked too deeply into daemontools, but CVS supports logging into /dev/stderr (it was before closed or used for other purposes) which I've heard is enough for multilog.
I don't think it could be made to run with tcpserver without changes. Dovecot is executed by running a master binary (imap-master before, dovecot in CVS) which creates rest of the required processes (authentication, pre-auth imap, post-auth imap)
participants (2)
-
Charlie Brady
-
Timo Sirainen