[vox-tech] Squirrel Mail Authentication Problems

Mike Simons vox-tech@lists.lugod.org
Sun, 23 Mar 2003 13:14:05 -0500


On Sun, Mar 23, 2003 at 01:14:23AM -0800, Ryan wrote:
> In /var/log/messages I see this line:
> 
> Mar 22 06:54:33 the45 authdaemon: authdaemon: s_connect() failed: No
> such file or directory
> 
> So it looks like the authdaemon isn't working correctly.

Ryan,

  I agree, that error message looks like authdaemon having problems.  The 
error message isn't particularly useful... the next thing I would do is
figure out what file s_connect is trying to open by:
===
strace -o /tmp/trace -s 1024 `pgrep authdaemon`
===

  Then try to do a imap log in, make sure that a new error appears in the
/var/log/messages, then stop the strace.  Open up the /tmp/trace and search
for "s_connect.*failed", then start scanning up from there maybe 100 to
2000 lines, to see what files the process was working with... you should 
see file names for any system calls.
  Investigate why any files it's using are missing...


  A second thing I would do is a google search in web and groups for

s_connect "No such file or directory"

to see if anyone else has reported this.


  Last thing would be grepping the source for s_connect to see what it
does, and why it would print a failed error message.


> What imapd do you use? I am using courier only because that is what SM
> recommends.

  I don't actually use IMAP, but looking over the package lists both of
these would be the first I would try:
  uw-imapd or courier-imap

> Do you know how to access the courier log?

Another thing you can do to track down what log files are in use by these
processes is:
===
for l in `pgrep authdaemon`; do echo $l; ls -l /proc/$l/fd/*; done
===

change "authdaemon" to the name of the courier process you want to check.
the things on the right of the '->' will be the files that the process
has open... it should be obvious which are log files.

    TTFN,
      Mike Simons

  If you get some problems with 'pgrep' not being installed on your
system... just replace that part of the command with a list of process
ids you want to check.