On Thu, 2007-01-11 at 21:30 -0700, Rick Widmer wrote:
> 
> Joshua Megerman wrote:
> 
> >>For example, vchkpw-imap would set the type to imap.  vchkpw-smtp would
> >>set it to smtp, etc.   This seems like a trivial change, and would only
> >>require a softlink back to vchkpw to enable.  Am I thinking straight, or
> >>am I way offbase?
> >>
> > 
> > It's not an unreasonable way of doing things, although vchkpw will try to
> > figure out what the connection type is based on argv[1] if the port is
> > unknown.  Maybe the best solution is to eliminate the default setting of
> > LocalPort to 110 if TCPLOCALPORT isn't set, allowing vchkpw to look for
> > "true" (smtp)  or "imap" (imap) in argv[1].  I would think that if the
> > local port variable isn't set, we should leave it as an unknown, and not
> > force it to 110 (thus forcing a pop connection down the line).
> > 
> > Anyone else?
> 
> I'd be very nervous about changing the default action.  I've already 
> learned my lesson (the hard way) about making tiny changes to existing 
> functionality - even when you think it shouldn't matter to anyone 
> else... it probably does.

That would be my feeling as well - I would prefer to just add
functionality that does not interfere with anything existing, and
especially not change anything existing.

> It seems to me that since vchkpw uses TCPLOCALPORT to determine how it 
> is called, and Dovecot wants to use vchkpw for password checking, then 
> Dovecot should handle setting the environment variables properly. 
> Possibly it is a matter of the way Dovecot is being started that is 
> hiding the environment variable.  Maybe you can set the environment 
> variable before calling vchkpw.
> 
> You are running on a standard imap port, right?

Yep - Dovecot (which also provides POP, though I'm not sure if it's a seperate 
binary like Courier) has some sort of 'native' vpopmail auth built in.  I found
that while it does work to authenticate, at minimum the lastauth data isn't 
updated.
So it doesn't appear to be complete.

> If Dovecot has a constant value passed into argv[1] I would be willing 
> to add that to the guessing code in vchkpw, but I don't like the idea of 
> adding _another_ block of testing for argv[0].
> 
> I believe the best answer is to have the right port in TCPLOCALPORT when 
> you call vchkpw.

I agree - I didn't realize there was a TCPLOCALPORT variable to set that
would specify that - that seems like an easy fix.  I'll check with the
dovecot list. 

Thanks for your help!

Rick


> Rick
> 
> 
> 
> 

Reply via email to