Re: What to use in place of abstract unix sockets?

From: Gleb Popov <arrowd_at_freebsd.org>
Date: Sat, 11 Dec 2021 09:59:15 UTC
On Fri, Dec 10, 2021 at 12:09 PM Daniel O'Connor <darius@dons.net.au> wrote:

>
>
> > On 10 Dec 2021, at 18:23, Gleb Popov <arrowd@freebsd.org> wrote:
> > > What can I do to make this software work for FreeBSD? Simply using
> regular
> > > UDS instead of abstract ones doesn't work for obvious reasons - the
> > > "client" can't find the socket file.
> >
> > If the parent knows where the child will chroot it could create a unix
> domain socket under that directory somewhere.
> >
> > Same problem as above - there should be a single socket on the erver
> side.
>
> I just did a quick test with nc and you can hard link unix domain sockets
> so you could bind it in the parent then hard link it for each child.
>
> Seems pretty kludgy though :)
>

This is actually a nice suggestion, as it is simple to try out. However, it
doesn't work, the link() call fails with

EXDEV: Cross-device link

This might be because the chroot's target directory is an nullfs mount. Am
I right that it isn't possible to create hard links that span nullfs mount
points?