> It has always been my understanding of UNIX sockets that they need
>not appear in the filesystem at all; whether inodes and directory
>entries are allocated for them is an implementation detail. The only
>guarantee is that if one process is listen()ing on a socket, and
>another process connect()s to a socket with the same path, they will
>be talking to each other.
Yes, that's in the 4.2 BSD manuals.
> If this is not the desired behavior, at least a mechanism needs to
>be provided which can instruct the kernel not to follow symlinks (like
>the O_EXCL or O_NOFOLLOW flags passed to open(2) on BSD or Linux) when
>binding to a UNIX domain socket.
It would be interesting to make a comparison between the various flavours
of Unix and the various system calls that create non files to see whether
they follow symlinks or not.
On Solaris, only open(O_CREAT) (w/o O_EXCL) and creat() do so;
the following do not follow symbolic links as the last component of
the pathname:
mknod (making pipes or devices)
mkdir
bind
(others?)
(doors are created as files followed by fattach, so the
user has control)
Casper