From 2c6730c6b3f90f4343c9f53d3d260356391f0981 Mon Sep 17 00:00:00 2001 From: Aman Gupta Date: Mon, 10 Aug 2009 21:03:18 -0700 Subject: [PATCH] Simplify t_get_sock_opt, fix whitespace and use SO_ERROR in test to make it pass on OSX --- ext/rubymain.cpp | 14 +++++++------- tests/test_get_sock_opt.rb | 4 ++-- 2 files changed, 9 insertions(+), 9 deletions(-) diff --git a/ext/rubymain.cpp b/ext/rubymain.cpp index 46c989e32..6f9e9ede1 100644 --- a/ext/rubymain.cpp +++ b/ext/rubymain.cpp @@ -524,15 +524,15 @@ t_get_sock_opt static VALUE t_get_sock_opt (VALUE self, VALUE signature, VALUE lev, VALUE optname) { - int fd = evma_get_file_descriptor (NUM2ULONG (signature)); - int level = NUM2INT(lev), option = NUM2INT(optname); - socklen_t len; - char *buf = ALLOCA_N(char, len); + int fd = evma_get_file_descriptor (NUM2ULONG (signature)); + int level = NUM2INT(lev), option = NUM2INT(optname); + socklen_t len; + char buf[128]; - if (getsockopt(fd, level, option, buf, &len) < 0) - rb_sys_fail("get_sock_opt"); + if (getsockopt(fd, level, option, buf, &len) < 0) + rb_sys_fail("getsockopt"); - return rb_str_new(buf, len); + return rb_str_new(buf, len); } /******************** diff --git a/tests/test_get_sock_opt.rb b/tests/test_get_sock_opt.rb index 4394da5c2..3b6d1a5bb 100644 --- a/tests/test_get_sock_opt.rb +++ b/tests/test_get_sock_opt.rb @@ -20,8 +20,8 @@ def test_get_sock_opt EM.run do EM.connect 'google.com', 80, Module.new { define_method :connection_completed do - val = get_sock_opt Socket::SOL_SOCKET, Socket::SO_REUSEADDR - test.assert_equal "\01\0\0\0", val + val = get_sock_opt Socket::SOL_SOCKET, Socket::SO_ERROR + test.assert_equal "\0\0\0\0", val EM.stop end }