Socket.gethostname always fails.

This commit is contained in:
Tomoyuki Sahara
2013-06-21 09:14:53 +09:00
parent 35defaf1c9
commit 216e32751e
2 changed files with 11 additions and 3 deletions
+6 -3
View File
@@ -560,14 +560,17 @@ static mrb_value
mrb_socket_gethostname(mrb_state *mrb, mrb_value cls)
{
mrb_value buf;
size_t bufsize;
#ifdef HOST_NAME_MAX
buf = mrb_str_buf_new(mrb, HOST_NAME_MAX+1);
bufsize = HOST_NAME_MAX + 1;
#else
buf = mrb_str_buf_new(mrb, 256);
bufsize = 256;
#endif
if (gethostname(RSTRING_PTR(buf), RSTRING_LEN(buf)) != 0)
buf = mrb_str_buf_new(mrb, bufsize);
if (gethostname(RSTRING_PTR(buf), bufsize) != 0)
mrb_sys_fail(mrb, "gethostname");
mrb_str_resize(mrb, buf, strlen(RSTRING_PTR(buf)));
return buf;
}
+5
View File
@@ -128,3 +128,8 @@ end
#assert('TCPSocket.new') do
#assert('TCPSocket#close') do
#assert('TCPSocket#write') do
assert('Socket.gethostname') do
assert_true(Socket.gethostname.is_a? String)
end