Date: Thu, 20 Jun 2002 19:06:05 -0700 From: Terry Lambert <tlambert2@mindspring.com> To: Jason Andresen <jandrese@mitre.org> Cc: "Brandon D. Valentine" <bandix@geekpunk.net>, Darren Pilgrim <dmp@pantherdragon.org>, Evan Dower <evantd@hotmail.com>, freebsd-hackers@freebsd.org Subject: Cyrus vs. UW IMAP (was: Re: I Volunteer) Message-ID: <3D128A0D.9599F9CF@mindspring.com> References: <20020619012553.J12752-100000@dallben.homeportal.2wire.net> <3D11E8F7.14C12D96@mitre.org>
next in thread | previous in thread | raw e-mail | index | archive | help
Jason Andresen wrote: > "Brandon D. Valentine" wrote: > > On Tue, 18 Jun 2002, Darren Pilgrim wrote: > > >It's not exactly FreeBSD, but how about rewriting pine and uw-imap? > > >Last I heard they could use a little work. > > > > It would have to be a complete reimplementation thanks to the retarded > > pine license. Besides, pine has been surpassed and it's called mutt. > > uw-imap has also been quite surpassed, it's called cyrus. > > I thought the strength of uw-imap was that it was fairly easy to > configure for a machine with local users. The same certainly > couldn't be said for Cyrus. Heck, I nearly slit my own wrists > out of frustration trying to get Cyrus working. Doesn't help > that its online documentation is poo either. The online documentation sucks, but once you understand that you have to use an admin program (cyradm) that has to be able to authenticate to the server in order to manage it, it's not very hard at all. The main problem with UW-IMAP is that it has some serious bugs; not only are there security bugs, but there are tons of bugs in the user libraries -- which is what most people are using for web based mail clients, and other programs... like "Pine". The main problem is that there are a lot of instances where it is possible to result in calling unintialized function pointers when you attempt to access a mailbox provider type. The easiest way to see this is to make the function pointer containing struct into a pure virtual base class, each provider into a implementation class for that base class, and then pass around pointers to the provider class coerced to the virtual base class. You'll see all sorts of errors reported by the compiler about the use of a member of a class that can't be, or for which there is not a member function defined. A long time ago, I did this exercise for a commercial company, and found no less than 150 instances where this type of problem existed in the UW IMAP code. My personal recommendation, having contributed patches to both server maintainers, and used both servers in a commercia setting, is that the Cyrus IMAP server is far and away the better code base. -- Terry To Unsubscribe: send mail to majordomo@FreeBSD.org with "unsubscribe freebsd-hackers" in the body of the message
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?3D128A0D.9599F9CF>