mirror of
https://github.com/ruby/ruby.git
synced 2022-11-09 12:17:21 -05:00
* ext/socket/socket.c (sock_sockaddr): Socket#gethostbyname()
should give us packed address, not struct sockaddr. [ruby-core:03053] git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@6515 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
This commit is contained in:
parent
0f1db9d8a4
commit
2c7c9e82df
5 changed files with 40 additions and 8 deletions
|
@ -13,6 +13,12 @@ Thu Jun 24 01:25:21 2004 Shugo Maeda <shugo@ruby-lang.org>
|
||||||
* version.h: added declarations of ruby_version,
|
* version.h: added declarations of ruby_version,
|
||||||
ruby_release_date, ruby_platform.
|
ruby_release_date, ruby_platform.
|
||||||
|
|
||||||
|
Thu Jun 24 01:07:15 2004 Yukihiro Matsumoto <matz@ruby-lang.org>
|
||||||
|
|
||||||
|
* ext/socket/socket.c (sock_sockaddr): Socket#gethostbyname()
|
||||||
|
should give us packed address, not struct sockaddr.
|
||||||
|
[ruby-core:03053]
|
||||||
|
|
||||||
Wed Jun 23 22:19:10 2004 Dave Thomas <dave@pragprog.com>
|
Wed Jun 23 22:19:10 2004 Dave Thomas <dave@pragprog.com>
|
||||||
|
|
||||||
* ext/socket/socket.c (sock_s_gethostbyaddr): Work around problem
|
* ext/socket/socket.c (sock_s_gethostbyaddr): Work around problem
|
||||||
|
|
|
@ -2095,7 +2095,24 @@ sock_sockaddr(addr, len)
|
||||||
struct sockaddr *addr;
|
struct sockaddr *addr;
|
||||||
size_t len;
|
size_t len;
|
||||||
{
|
{
|
||||||
return rb_str_new((char*)addr, len);
|
char *ptr;
|
||||||
|
|
||||||
|
switch (addr->sa_family) {
|
||||||
|
case AF_INET:
|
||||||
|
ptr = (char*)&((struct sockaddr_in*)addr)->sin_addr.s_addr;
|
||||||
|
len = sizeof(((struct sockaddr_in*)addr)->sin_addr.s_addr);
|
||||||
|
break;
|
||||||
|
#ifdef INET6
|
||||||
|
case AF_INET6:
|
||||||
|
ptr = (char*)&((struct sockaddr_in6*)addr)->sin6_addr.s6_addr;
|
||||||
|
len = sizeof(((struct sockaddr_in6*)addr)->sin6_addr.s6_addr);
|
||||||
|
break;
|
||||||
|
#endif
|
||||||
|
default:
|
||||||
|
rb_raise(rb_eSocket, "unknown socket family:%d", addr->sa_family);
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
return rb_str_new(ptr, len);
|
||||||
}
|
}
|
||||||
|
|
||||||
static VALUE
|
static VALUE
|
||||||
|
|
14
io.c
14
io.c
|
@ -644,7 +644,7 @@ rb_io_set_pos(io, offset)
|
||||||
|
|
||||||
GetOpenFile(io, fptr);
|
GetOpenFile(io, fptr);
|
||||||
pos = io_seek(fptr, NUM2OFFT(offset), SEEK_SET);
|
pos = io_seek(fptr, NUM2OFFT(offset), SEEK_SET);
|
||||||
if (pos != 0) rb_sys_fail(fptr->path);
|
if (pos < 0) rb_sys_fail(fptr->path);
|
||||||
clearerr(fptr->f);
|
clearerr(fptr->f);
|
||||||
|
|
||||||
return OFFT2NUM(pos);
|
return OFFT2NUM(pos);
|
||||||
|
@ -671,7 +671,7 @@ rb_io_rewind(io)
|
||||||
OpenFile *fptr;
|
OpenFile *fptr;
|
||||||
|
|
||||||
GetOpenFile(io, fptr);
|
GetOpenFile(io, fptr);
|
||||||
if (io_seek(fptr, 0L, 0) != 0) rb_sys_fail(fptr->path);
|
if (io_seek(fptr, 0L, 0) < 0) rb_sys_fail(fptr->path);
|
||||||
clearerr(fptr->f);
|
clearerr(fptr->f);
|
||||||
if (io == current_file) {
|
if (io == current_file) {
|
||||||
gets_lineno -= fptr->lineno;
|
gets_lineno -= fptr->lineno;
|
||||||
|
@ -1937,7 +1937,7 @@ rb_io_close_read(io)
|
||||||
fptr->mode &= ~FMODE_READABLE;
|
fptr->mode &= ~FMODE_READABLE;
|
||||||
fptr->f = fptr->f2;
|
fptr->f = fptr->f2;
|
||||||
fptr->f2 = 0;
|
fptr->f2 = 0;
|
||||||
if (n != 0) rb_sys_fail(fptr->path);
|
if (n < 0) rb_sys_fail(fptr->path);
|
||||||
|
|
||||||
return Qnil;
|
return Qnil;
|
||||||
}
|
}
|
||||||
|
@ -1981,7 +1981,7 @@ rb_io_close_write(io)
|
||||||
n = fclose(fptr->f2);
|
n = fclose(fptr->f2);
|
||||||
fptr->f2 = 0;
|
fptr->f2 = 0;
|
||||||
fptr->mode &= ~FMODE_WRITABLE;
|
fptr->mode &= ~FMODE_WRITABLE;
|
||||||
if (n != 0) rb_sys_fail(fptr->path);
|
if (n < 0) rb_sys_fail(fptr->path);
|
||||||
|
|
||||||
return Qnil;
|
return Qnil;
|
||||||
}
|
}
|
||||||
|
@ -2381,7 +2381,7 @@ rb_fopen(fname, mode)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
#ifdef USE_SETVBUF
|
#ifdef USE_SETVBUF
|
||||||
if (setvbuf(file, NULL, _IOFBF, 0) != 0)
|
if (setvbuf(file, NULL, _IOFBF, 0) < 0)
|
||||||
rb_warn("setvbuf() can't be honoured for %s", fname);
|
rb_warn("setvbuf() can't be honoured for %s", fname);
|
||||||
#endif
|
#endif
|
||||||
#ifdef __human68k__
|
#ifdef __human68k__
|
||||||
|
@ -2424,7 +2424,7 @@ rb_fdopen(fd, mode)
|
||||||
}
|
}
|
||||||
|
|
||||||
#ifdef USE_SETVBUF
|
#ifdef USE_SETVBUF
|
||||||
if (setvbuf(file, NULL, _IOFBF, 0) != 0)
|
if (setvbuf(file, NULL, _IOFBF, 0) < 0)
|
||||||
rb_warn("setvbuf() can't be honoured (fd=%d)", fd);
|
rb_warn("setvbuf() can't be honoured (fd=%d)", fd);
|
||||||
#endif
|
#endif
|
||||||
return file;
|
return file;
|
||||||
|
@ -3278,7 +3278,7 @@ rb_io_reopen(argc, argv, file)
|
||||||
rb_sys_fail(fptr->path);
|
rb_sys_fail(fptr->path);
|
||||||
}
|
}
|
||||||
#ifdef USE_SETVBUF
|
#ifdef USE_SETVBUF
|
||||||
if (setvbuf(fptr->f, NULL, _IOFBF, 0) != 0)
|
if (setvbuf(fptr->f, NULL, _IOFBF, 0) < 0)
|
||||||
rb_warn("setvbuf() can't be honoured for %s", RSTRING(fname)->ptr);
|
rb_warn("setvbuf() can't be honoured for %s", RSTRING(fname)->ptr);
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
|
|
@ -19,6 +19,7 @@ find.rb
|
||||||
generator.rb
|
generator.rb
|
||||||
logger.rb
|
logger.rb
|
||||||
matrix.rb
|
matrix.rb
|
||||||
|
net
|
||||||
observer.rb
|
observer.rb
|
||||||
optionparser.rb
|
optionparser.rb
|
||||||
pathname.rb
|
pathname.rb
|
||||||
|
|
8
lib/net/.document
Normal file
8
lib/net/.document
Normal file
|
@ -0,0 +1,8 @@
|
||||||
|
ftp.rb
|
||||||
|
http.rb
|
||||||
|
https.rb
|
||||||
|
imap.rb
|
||||||
|
pop.rb
|
||||||
|
smtp.rb
|
||||||
|
smtps.rb
|
||||||
|
telnet.rb
|
Loading…
Add table
Reference in a new issue