On 2008-01-16 at 20:07 -0600, Don Porter wrote:
> Could someone tell me what these error codes mean (or where I might
> look them up)? I am assuming it isn't the generic errno 13
> (Permission Denied), as it seems to be reading the contents of
> /etc/exim4/passwd.client correctly.
exim-4.<whichever>/src/macros.h which shows that 13 (at least in my
version of Exim) is:
#define CANCELLED 13 /* Authentication cancelled */
This can happen because you have an expansion condition on the
authenticator which was forced to fail or because the Base 64 decoding
failed (bad data from the server).
Run exim with -d+auth+expand to debug authentication and string
expansion.
To debug manually, then simplifying PLAIN a lot to ignore SASLprep
UTF-8 normalisation and authorisation ids, the PLAIN auth is just a
base64 encoding of an ASCII NUL, your usercode, another ASCII NUL and
then the password.
If your usercode is fred and your password is sekret, then do:
$ perl -MMIME::Base64 -le '$u="fred"; $p="sekret";
print encode_base64("\0$u\0$p")'
This yields:
AGZyZWQAc2VrcmV0
So to authenticate, you'd type:
AUTH PLAIN AGZyZWQAc2VrcmV0
or optionally omit the base64 on the first attempt, get a 334
continuation prompt, then supply the authentication data.
-Phil