eculp writes:

# ls -l /var/run/authdaemond/
total 2
-rw-r--r--  1 root  courier  6 Oct 19 09:03 pid
-rw-------  1 root  courier  0 Oct 19 09:03 pid.lock
srwxrwxrwx  1 root  courier  0 Oct 19 09:03 socket.tmp

Thanks for your help. Now I have to try and understand what "/var/run/authdaemond/socket: Cross-device link" means.

Well, I can tell you what the message means, however I don't know what the explanation itself means.

This is the error code EXDEV, being returned for a failed system call. In this particular case, the system call must be rename().

The relevant code from authdaemond.c:

       strcpy(skun.sun_path, AUTHDAEMONSOCK);
       strcat(skun.sun_path, ".tmp");
       unlink(skun.sun_path);
       if (bind(fd, (const struct sockaddr *)&skun, sizeof(skun)) ||
               listen(fd, SOMAXCONN) ||
               chmod(skun.sun_path, 0777) ||
               rename(skun.sun_path, AUTHDAEMONSOCK) ||
               fcntl(fd, F_SETFL, O_NONBLOCK) < 0)
       {
               perror(AUTHDAEMONSOCK);
               close(fd);
               return (-1);
       }

Fairly rote stuff for creating a filesystem domain socket.

AUTHDAEMONSOCK gets defined in authdaemonrc.h, which is generated by the makefile:

       echo "#define AUTHDAEMONVAR \"@authdaemon...@\"" >>authdaemonrc.h
       echo "#define AUTHDAEMONPID AUTHDAEMONVAR \"/pid\"" >>authdaemonrc.h
       echo "#define AUTHDAEMONSOCK AUTHDAEMONVAR \"/socket\"" >>authdaemonrc.h

authdaemonvar is set by the configure script. On your platform, your configure script sets it to /var/run/authdaemond, apparently.

authdaemond creates AUTHDAEMONVAR/socket.tmp, then renames it to AUTHDAEMONVAR/socket. The rename operation is failing with this error code. That's why your ls shows the socket.tmp flotsam left in the directory. The rename() operation failed.

You can look up what EXDEV means for yourself. The only remaining piece of the puzzle is how rename(AUTHDAEMONVAR/socket.tmp, AUTHDAEMONVAR/socket) could possibly result in the EXDEV error. This is a new one to me. The only thing I'm sure of, is once you figure out what the problem is, the explanation should be a fascinating read.

Attachment: pgpwG7iQkFLRg.pgp
Description: PGP signature

------------------------------------------------------------------------------
Nokia and AT&T present the 2010 Calling All Innovators-North America contest
Create new apps & games for the Nokia N8 for consumers in  U.S. and Canada
$10 million total in prizes - $4M cash, 500 devices, nearly $6M in marketing
Develop with Nokia Qt SDK, Web Runtime, or Java and Publish to Ovi Store 
http://p.sf.net/sfu/nokia-dev2dev
_______________________________________________
courier-users mailing list
[email protected]
Unsubscribe: https://lists.sourceforge.net/lists/listinfo/courier-users

Reply via email to