Hi all,
attached there is an updated patch for adding support for unix socket in
abstract namespace.
As requested by Igor, the syntax is now
unix:\0foobar
instead of
unix:@foobar
The only relevant note is this part of code:
- if (saun->sun_path[0] != ‘\0’) {
-
u->addrs[0].socklen = sizeof(struct sockaddr_un);
- }
- else {
-
u->addrs[0].socklen = sizeof(saun->sun_family) + len;
- }
it looks like using
u->addrs[0].socklen = sizeof(saun->sun_family) + len;
is not reliable in all os (NetBSD and OpenBSD in my tests did not work)
so
i think
an exception (as i did) is more “secure”.
Probably, as linux is the only os supporting abstract namespace, we
could
use:
#ifdef linux
u->addrs[0].socklen = sizeof(saun->sun_family) + len;
#else
u->addrs[0].socklen = sizeof(struct sockaddr_un);
#endif