On Wed, 6 Dec 2006, Chris Lightfoot wrote:
> On Wed, Dec 06, 2006 at 10:40:58PM +0100, Leonardo Boselli wrote:
> > On Wed, 6 Dec 2006, Stanislaw Halik wrote:
> > > On Wed, Dec 06, 2006, Leonardo Boselli wrote:
> > > Looks like the exim process can't read passwd or passwords moved to
> > > shadow. Try `exim -be with that lookup line.'
> >
> > /etc/passwd is root:root 644, no shadow.
> >
> > leo@dipolo:~$ /usr/sbin/exim4 -be
> > > server_condition = "${if
> > crypteq{$2}{${lookup{$1:2}lsearch{/etc/passwd}{$value}fail}}{yes}{no}}"
> >
> > return:
> >
> > Failed: "lookup" failed and "fail" requested
> >
> > even substituting $1 and $2 vith real user:password pair !!!
>
> if you run exim4 with -d, what strings does it show being
> generated in the expansion of the condition?
What he said.
I've not been following this closely, so I may be missing the point, but
four things occur to me:-
1) You have 'lookup{$1:2}' - should that be 'lookup{$1:$2}' ?
2) The search key will (unless I've misunderstood) have a colon in it; I
can imagine that will cause problems. From section 9.3 of the spec: "In
most lsearch files, keys are not required to contain colons or #
characters, or white space. However, if you need this feature, it is
available. If a key begins with a doublequote character, it is terminated
only by a matching quote (or end of line), and ..." Off the top of my
head, I'd guess you'd need to search just on $1, then use ${extract to get
the p/w field. Definitely not tested!!
3) more recent versions of Exim use $auth1 etc instead of $1 etc (though I
think the old form still works?)
4) you say it used to work - if so, none of the above can possibly be
relevant!!