diff options
| author | matz <matz@b2dd03c8-39d4-4d8f-98ff-823fe69b080e> | 2004-11-04 12:27:57 +0000 |
|---|---|---|
| committer | matz <matz@b2dd03c8-39d4-4d8f-98ff-823fe69b080e> | 2004-11-04 12:27:57 +0000 |
| commit | 5bf4842c96260416fb7dcfe637ae87be28c5dda9 (patch) | |
| tree | 4249b9622223c3d0390ba702f81eb872d972a987 /ext/socket | |
| parent | d3abb42d971bc925d396201d0aea2d0755f7eec2 (diff) | |
| download | ruby-5bf4842c96260416fb7dcfe637ae87be28c5dda9.tar.gz ruby-5bf4842c96260416fb7dcfe637ae87be28c5dda9.tar.xz ruby-5bf4842c96260416fb7dcfe637ae87be28c5dda9.zip | |
* string.c (str_gsub): string modify check no longer based on
tmplock. [ruby-dev:24706]
git-svn-id: http://svn.ruby-lang.org/repos/ruby/trunk@7202 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
Diffstat (limited to 'ext/socket')
| -rw-r--r-- | ext/socket/socket.c | 12 |
1 files changed, 7 insertions, 5 deletions
diff --git a/ext/socket/socket.c b/ext/socket/socket.c index 4cc9adc07..cbd3dd86c 100644 --- a/ext/socket/socket.c +++ b/ext/socket/socket.c @@ -1303,8 +1303,7 @@ static VALUE unixsock_connect_internal(arg) struct unixsock_arg *arg; { - return (VALUE)ruby_connect(arg->fd, arg->sockaddr, sizeof(*arg->sockaddr), - 0); + return (VALUE)ruby_connect(arg->fd, arg->sockaddr, sizeof(*arg->sockaddr), 0); } static VALUE @@ -1984,18 +1983,21 @@ sock_connect(sock, addr) VALUE sock, addr; { OpenFile *fptr; - int fd; + int fd, n; StringValue(addr); rb_str_modify(addr); GetOpenFile(sock, fptr); fd = fileno(fptr->f); - if (ruby_connect(fd, (struct sockaddr*)RSTRING(addr)->ptr, RSTRING(addr)->len, 0) < 0) { + rb_str_locktmp(addr); + n = ruby_connect(fd, (struct sockaddr*)RSTRING(addr)->ptr, RSTRING(addr)->len, 0); + rb_str_unlocktmp(addr); + if (n < 0) { rb_sys_fail("connect(2)"); } - return INT2FIX(0); + return INT2FIX(n); } static VALUE |
