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
--
Roberto De Ioris
http://unbit.it_______________________________________________
nginx mailing list
nginx@nginx.org
http://nginx.org/mailman/listinfo/nginx
Attachments:
open |
download -
nginx_unix_abstract.patch
(1.8 KB)