Skip site navigation (1)Skip section navigation (2)
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>