[前][次][番号順一覧][スレッド一覧]

ruby-changes:16629

From: naruse <ko1@a...>
Date: Tue, 13 Jul 2010 13:16:36 +0900 (JST)
Subject: [ruby-changes:16629] Ruby:r28623 (trunk): * missing/close.c: keep original errno.

naruse	2010-07-13 13:15:30 +0900 (Tue, 13 Jul 2010)

  New Revision: 28623

  http://svn.ruby-lang.org/cgi-bin/viewvc.cgi?view=rev&revision=28623

  Log:
    * missing/close.c: keep original errno.

  Modified files:
    trunk/ChangeLog
    trunk/missing/close.c

Index: ChangeLog
===================================================================
--- ChangeLog	(revision 28622)
+++ ChangeLog	(revision 28623)
@@ -1,3 +1,7 @@
+Tue Jul 13 12:04:57 2010  NARUSE, Yui  <naruse@r...>
+
+	* missing/close.c: keep original errno.
+
 Mon Jul 12 01:58:56 2010  Marc-Andre Lafortune  <ruby-core@m...>
 
 	* lib/csv.rb: Fix unused variable warnings.
Index: missing/close.c
===================================================================
--- missing/close.c	(revision 28622)
+++ missing/close.c	(revision 28623)
@@ -8,12 +8,15 @@
 ruby_getpeername(int s, struct sockaddr * name,
          socklen_t * namelen)
 {
+    int err = errno;
     errno = 0;
     s = getpeername(s, name, namelen);
     if (errno == ECONNRESET) {
 	errno = 0;
 	s = 0;
     }
+    else if (errno == 0)
+	errno = err;
     return s;
 }
 
@@ -21,35 +24,44 @@
 ruby_getsockname(int s, struct sockaddr * name,
          socklen_t * namelen)
 {
+    int err = errno;
     errno = 0;
     s = getsockname(s, name, namelen);
     if (errno == ECONNRESET) {
 	errno = 0;
 	s = 0;
     }
+    else if (errno == 0)
+	errno = err;
     return s;
 }
 
 int
 ruby_shutdown(int s, int how)
 {
+    int err = errno;
     errno = 0;
     s = shutdown(s, how);
     if (errno == ECONNRESET) {
 	errno = 0;
 	s = 0;
     }
+    else if (errno == 0)
+	errno = err;
     return s;
 }
 
 int
 ruby_close(int s)
 {
+    int err = errno;
     errno = 0;
     s = close(s);
     if (errno == ECONNRESET) {
 	errno = 0;
 	s = 0;
     }
+    else if (errno == 0)
+	errno = err;
     return s;
 }

--
ML: ruby-changes@q...
Info: http://www.atdot.net/~ko1/quickml/

[前][次][番号順一覧][スレッド一覧]