Exim AUTH problems
I'm attempting to set up SMTP authentication using exim. I can get it to
work if i dont check for null values, but when i try to add some extra
logic to do that i get an error that I dont quite understand, and so It
isnt really helpful in debugging this issue.
note: i'm only working on the AUTH PLAIN facility ATM
original config:
plain:
driver = plaintext
public_name = PLAIN
server_condition = ${if eq{$2}{${lookup mysql{SELECT password FROM
user WHERE username='$1'}{$value}fail}}{1}{0}}
server_set_id = $1
original result (excerpt from: exim -d9 -bs):
plain authenticator:
$1 = david@0x44.org
$2 = hackme
expanded string: 1
SMTP>> 235 Authentication succeeded
235 Authentication succeeded
null checking config:
plain:
driver = plaintext
public_name = PLAIN
server_condition = ${if !eq{$1}{} and{ !eq{$2}{}} and
{eq{$2}{${lookup mysql{SELECT password FROM user WHERE
username='$1'}{$value}fail}}}{1}{0}}
server_set_id = $1
null checking result (exerpt from exim -d9 -bs):
plain authenticator:
$1 = david@0x44.org
$2 = hackme
expanded string: nd{ !eq{hackme and {eq{hackme}{hackme}}{1}{0}}
SMTP>> 435 Unable to authenticate at present: nd{ !eq{hackme and
{eq{hackme}{hackme}}{1}{0}}
435 Unable to authenticate at present: nd{ !eq{hackme and
{eq{hackme}{hackme}}{1}{0}}
LOG: 0 MAIN REJECT
Authentication failed for : 435 Unable to authenticate at present: nd{
!eq{hackme and {eq{hackme}{hackme}}{1}{0}}
what does the nd{ * signify? it looks like its the last part of "and".
if that is the case, why is the expanded string truncated at that point?
i'm a bit confused. if anyone can unconfuse me or just help me help
myself, that would be great.
davidc
Reply to: