[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

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: