Support abstract namespace AF_UNIX sockets.
Linux has a notion of abstract
AF_UNIX sockets. This should be supported both for the control and socks port, as they are convenient and useful, as long as they are used correctly.
Benefits:
- Easier to bundle.
sun_path
length limitations are dumb, being able to use an abstract identifier is simpler. - No need to mess around with creating a directory, arguing over what permissions the directory and the socket file has.
- The socket goes away when the last reference to the socekt is closed, removing the need to unlink it.
Downsides:
- There is no access control, at all. Primarily relevant for the ControlPort, but that has separate mechanisms for restricting access.
- Not wildly useful for sandboxes, since most sandboxing approaches will unshare/create a new IPC namespace.
- Non-portable.
(0.2.0.3-alpha was the first time we supported AF_UNIX at all)