mirror of
https://github.com/ruby/ruby.git
synced 2022-11-09 12:17:21 -05:00
merges r28623 from trunk into ruby_1_9_2.
-- * missing/close.c: keep original errno. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/branches/ruby_1_9_2@28636 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
This commit is contained in:
parent
b66bd2cc35
commit
4e9b6e308b
2 changed files with 16 additions and 0 deletions
|
@ -1,3 +1,7 @@
|
|||
Tue Jul 13 12:04:57 2010 NARUSE, Yui <naruse@ruby-lang.org>
|
||||
|
||||
* missing/close.c: keep original errno.
|
||||
|
||||
Thu Jul 8 00:15:50 2010 Yusuke Endoh <mame@tsg.ne.jp>
|
||||
|
||||
* gem_prelude.rb: provide workaround for gem activation. Currently,
|
||||
|
|
|
@ -8,12 +8,15 @@ int
|
|||
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 @@ int
|
|||
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;
|
||||
}
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue