From 2f2b6ace050bbabba106c80658068e3d40244bba Mon Sep 17 00:00:00 2001 From: akr Date: Sat, 7 Aug 2010 10:05:37 +0000 Subject: [PATCH] * missing/close.c: undef the macros "getpeername", "getsockname" and "shutdown" to prevent infinite recursion. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@28905 b2dd03c8-39d4-4d8f-98ff-823fe69b080e --- ChangeLog | 5 +++++ missing/close.c | 5 ++++- 2 files changed, 9 insertions(+), 1 deletion(-) diff --git a/ChangeLog b/ChangeLog index f2fb649714..9d0b4bdd81 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,8 @@ +Sat Aug 7 19:04:49 2010 Tanaka Akira + + * missing/close.c: undef the macros "getpeername", "getsockname" and + "shutdown" to prevent infinite recursion. + Sat Aug 7 18:37:39 2010 Tanaka Akira * missing/close.c: undef the macro "close" to prevent infinite diff --git a/missing/close.c b/missing/close.c index 8dc6928ffd..831e75efe1 100644 --- a/missing/close.c +++ b/missing/close.c @@ -5,6 +5,7 @@ #include #include +#undef getpeername int ruby_getpeername(int s, struct sockaddr * name, socklen_t * namelen) @@ -21,6 +22,7 @@ ruby_getpeername(int s, struct sockaddr * name, return s; } +#undef getsockname int ruby_getsockname(int s, struct sockaddr * name, socklen_t * namelen) @@ -37,6 +39,7 @@ ruby_getsockname(int s, struct sockaddr * name, return s; } +#undef shutdown int ruby_shutdown(int s, int how) { @@ -52,12 +55,12 @@ ruby_shutdown(int s, int how) return s; } +#undef close int ruby_close(int s) { int err = errno; errno = 0; -#undef close s = close(s); if (errno == ECONNRESET) { errno = 0;