diff options
| author | Tomoyuki Sahara <[email protected]> | 2013-06-21 09:14:53 +0900 |
|---|---|---|
| committer | Tomoyuki Sahara <[email protected]> | 2013-06-21 09:14:53 +0900 |
| commit | 216e32751e79781ba3eb6319d7513b80a32c537e (patch) | |
| tree | 7256645e40ba17f8f63f5e492e4705b8f22094ae /src | |
| parent | 35defaf1c937408f8e5d817f25a24dbc75a64c99 (diff) | |
| download | mruby-216e32751e79781ba3eb6319d7513b80a32c537e.tar.gz mruby-216e32751e79781ba3eb6319d7513b80a32c537e.zip | |
Socket.gethostname always fails.
Diffstat (limited to 'src')
| -rw-r--r-- | src/socket.c | 9 |
1 files changed, 6 insertions, 3 deletions
diff --git a/src/socket.c b/src/socket.c index e8f1f6135..7966b9c83 100644 --- a/src/socket.c +++ b/src/socket.c @@ -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; } |
