N.Cat | 26 Aug 03:36

[PATCH] RFC2449 "CAPA" support

Since some clients want capabilities to be described (e.g. KMail complains 
that it can't determine UIDL support), I implemented the "CAPA" command as 
per RFC 2449. The capabilities set also includes "pass" (it's identical to 
NGPopper's).

See
http://www.acm.jhu.edu/~trisk/popa3d-1.0-capa.diff

-Trisk

Solar Designer | 26 Aug 15:47

Re: [PATCH] RFC2449 "CAPA" support

On Thu, Aug 25, 2005 at 06:40:06PM -0700, N.Cat wrote:
> Since some clients want capabilities to be described (e.g. KMail complains 
> that it can't determine UIDL support),

I was unaware that such clients existed.  Although adding CAPA support
to popa3d has been on TODO for years, I was not planning on doing that
until popa3d would have to say anything beyond RFC 1939's definitions. (*)

> I implemented the "CAPA" command as per RFC 2449.
> The capabilities set also includes "pass" (it's identical to NGPopper's).

RFC 2449 doesn't define a capability named PASS.  Unless there's a
client which depends on it, I would rather not declare it.

(*) Well, frankly, I was about to add CAPA support into popa3d in 1999,
but then put it on the back burner.  There are also some problems with
RFC 2449 (especially with PIPELINING) that noone has bothered to comment
on (let alone fix them in a subsequent revision of the RFC):

	http://www.imc.org/ietf-pop3ext/mail-archive/msg00083.html

Thanks,

--

-- 
Alexander Peslyak <solar at openwall.com>
GPG key ID: B35D3598  fp: 6429 0D7E F130 C13E C929  6447 73C3 A290 B35D 3598
http://www.openwall.com - bringing security into open computing environments

Was I helpful?  Please give your feedback here: http://rate.affero.net/solar

(Continue reading)

N.Cat | 27 Aug 08:09

Re: [PATCH] RFC2449 "CAPA" support

On Friday 26 August 2005 06:47 am, Solar Designer wrote:
> On Thu, Aug 25, 2005 at 06:40:06PM -0700, N.Cat wrote:
> > Since some clients want capabilities to be described (e.g. KMail
> > complains that it can't determine UIDL support),
>
> I was unaware that such clients existed.  Although adding CAPA support
> to popa3d has been on TODO for years, I was not planning on doing that
> until popa3d would have to say anything beyond RFC 1939's definitions. (*)
>

I think it's a good idea to advertise the capabilities for commands defined as 
optional in RFC 1939. This prevents clients from making incorrect assumptions 
if they don't resort to extensive probing with CAPA unavailable.

> > I implemented the "CAPA" command as per RFC 2449.
> > The capabilities set also includes "pass" (it's identical to NGPopper's).
>
> RFC 2449 doesn't define a capability named PASS.  Unless there's a
> client which depends on it, I would rather not declare it.

Right. That should be unnecessary since the USER tag is supposed to indicate 
support for the PASS command.

> (*) Well, frankly, I was about to add CAPA support into popa3d in 1999,
> but then put it on the back burner.  There are also some problems with
> RFC 2449 (especially with PIPELINING) that noone has bothered to comment
> on (let alone fix them in a subsequent revision of the RFC):
>
> 	http://www.imc.org/ietf-pop3ext/mail-archive/msg00083.html

(Continue reading)

Solar Designer | 1 Sep 18:33

Re: [PATCH] RFC2449 "CAPA" support

On Fri, Aug 26, 2005 at 11:09:30PM -0700, N.Cat wrote:
> The problems with with RFC are unfortunate, since it would be nice for popa3d 
> to be able to present the PIPELINING tag to clients. Would this cause the 
> implementation to be inconsistent with RFC 1939 (by implying PIPELINING is 
> optional)?

Yes, but that wouldn't be an RFC violation, so it's fine.  I am more
concerned of this requirement in RFC 2449:

"If either the client or server uses blocking writes, it MUST not exceed
the window size of the underlying transport layer."

As I had explained, this is both meaningless (on server side) and nearly
impossible to guarantee.  By declaring PIPELINING support without
meeting this requirement, popa3d would be violating the RFC.  By not
declaring PIPELINING support, yet supporting CAPA, popa3d would be
telling clients that it does not support pipelining, which is not true.

--

-- 
Alexander Peslyak <solar at openwall.com>
GPG key ID: B35D3598  fp: 6429 0D7E F130 C13E C929  6447 73C3 A290 B35D 3598
http://www.openwall.com - bringing security into open computing environments

Was I helpful?  Please give your feedback here: http://rate.affero.net/solar


Gmane