* ext/socket/raddrinfo.c (rsock_unix_sockaddr_len): return

sizeof(sa_familiy_t) if path is empty.  see "Autobind Feature" in
  unix(7) for details.

* ext/socket/lib/socket.rb (unix_socket_abstract_name?): treat an
  empty path as an abstract name.

* test/socket/test_unix.rb: related test.

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@38994 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
This commit is contained in:
shugo 2013-01-31 04:59:31 +00:00
parent 1ff38a5bbf
commit 4ccfb2743f
4 changed files with 46 additions and 4 deletions

View file

@ -819,7 +819,7 @@ class Socket < BasicSocket
private
def unix_socket_abstract_name?(path)
/linux/ =~ RUBY_PLATFORM && /\A\0/ =~ path
/linux/ =~ RUBY_PLATFORM && /\A(\0|\z)/ =~ path
end
end