[#14850] str[re, -1] raises NoMemoryError — nobu.nakada@...
なかだです。
6 messages
2001/10/03
[#14888] perl6 apocalypse 3 — nobu.nakada@...
なかだです。
7 messages
2001/10/04
[#14903] Re: [rubyist:0825] Re: Thread — nobu.nakada@...
なかだです。
8 messages
2001/10/09
[#14909] ext/socket h_addr_list — WATANABE Tetsuya <tetsu@...>
渡辺哲也です。
9 messages
2001/10/11
[#14922] alias $gvar — Koji Arai <JCA02266@...>
新井です。
19 messages
2001/10/14
[#14941] Re: alias $gvar
— matz@... (Yukihiro Matsumoto)
2001/10/16
まつもと ゆきひろです
[#14924] Re: alias $gvar
— nobu.nakada@...
2001/10/14
なかだです。
[#14932] Re: alias $gvar
— nobu.nakada@...
2001/10/15
なかだです。
[#14934] Re: alias $gvar
— Koji Arai <JCA02266@...>
2001/10/15
新井です。
[#14942] [BUG] SEGV: module_eval — Satoru Takabayashi <satoru@...>
こんなことする方が悪いという気がしますが、次のコードを実行す
5 messages
2001/10/16
[#14961] [PATCH] Marshal.load/dump — nobu.nakada@...
なかだです。
9 messages
2001/10/18
[#14962] alias var and trace_var — "K.Kosako" <kosako@...>
新井さんの指摘から、中田さんのパッチで
12 messages
2001/10/19
[#14963] Re: alias var and trace_var
— nobu.nakada@...
2001/10/19
なかだです。
[#14965] Re: alias var and trace_var
— "K.Kosako" <kosako@...>
2001/10/19
nobu.nakada@nifty.ne.jpさんの
[#14967] Re: alias var and trace_var
— nobu.nakada@...
2001/10/19
なかだです。
[#14971] Re: alias var and trace_var
— "K.Kosako" <kosako@...>
2001/10/22
nobu.nakada@nifty.ne.jpさんの
[#14984] [PATCH] stack overflow while GC marking. — nobu.nakada@...
なかだです。
7 messages
2001/10/23
[#14987] tracer.rb — keiju@... (Keiju ISHITSUKA)
けいじゅ@日本ラショナルソフトウェアです.
5 messages
2001/10/23
[#14998] TCPSocket.gethostbyname で Segmentation fault — tomohiko machida <machida@...>
はじめまして。
4 messages
2001/10/25
[#15001] finalizer problem — keiju@... (Keiju ISHITSUKA)
けいじゅ@日本ラショナルソフトウェアです.
3 messages
2001/10/25
[#15006] Re: eval.c (rb_stack_check): prohibit recursive raising error — WATANABE Hirofumi <eban@...>
わたなべです。
13 messages
2001/10/26
[#15008] Re: eval.c (rb_stack_check): prohibit recursive raising error
— Shugo Maeda <shugo@...>
2001/10/26
前田です。
[#15207] Re: eval.c (rb_stack_check): prohibit recursive raising error
— nobu.nakada@...
2001/11/19
なかだです。
[#15209] Re: eval.c (rb_stack_check): prohibit recursive raising error
— matz@... (Yukihiro Matsumoto)
2001/11/19
まつもと ゆきひろです
[#15210] Re: eval.c (rb_stack_check): prohibit recursive raising error
— nobu.nakada@...
2001/11/19
なかだです。
[#15211] Re: eval.c (rb_stack_check): prohibit recursive raising error
— matz@... (Yukihiro Matsumoto)
2001/11/19
まつもと ゆきひろです
[#15212] Re: eval.c (rb_stack_check): prohibit recursive raising error
— nobu.nakada@...
2001/11/19
なかだです。
[#15214] Re: eval.c (rb_stack_check): prohibit recursive raising error
— matz@... (Yukihiro Matsumoto)
2001/11/19
まつもと ゆきひろです
[ruby-dev:14912] Re: ext/socket h_addr_list
From:
WATANABE Tetsuya <tetsu@...>
Date:
2001-10-12 02:29:27 UTC
List:
ruby-dev #14912
渡辺哲也です。
In message "[ruby-dev:14909] ext/socket h_addr_list"
on 01/10/11, WATANABE Tetsuya writes:
|TCPSocket.gethostbyname(hostname)
|
|で、一つのホストが複数の IP address を持って
|いる場合、うまくとれないようです。
とりあえずのテスト用パッチです。IPv6 は、テスト
環境がないのでつめ込みませんでした。
Socket.gethostbyname(hostname) も、よく読んだら
同様の複数の IP address に対応できるコードだっ
たので、同じようなコードを入れてみました。
もし、必要になったら試してみてください。
------------------------------
--- socket.c.org Thu Oct 4 20:37:49 2001
+++ socket.c Thu Oct 11 22:02:29 2001
@@ -992,9 +992,15 @@
{
struct sockaddr_in *sin;
sin = (struct sockaddr_in *)&addr;
- h = gethostbyaddr((char *)&sin->sin_addr,
- sizeof(sin->sin_addr),
- sin->sin_family);
+ if (rb_obj_is_kind_of(host, rb_cInteger) ||
+ RSTRING(host)->ptr == 0 ||
+ (RSTRING(host)->ptr[0] == '<' && strcmp(RSTRING(host)->ptr, "<broadcast>") == 0)) {
+ h = gethostbyaddr((char *)&sin->sin_addr,
+ sizeof(sin->sin_addr),
+ sin->sin_family);
+ } else {
+ h = gethostbyname(RSTRING(host)->ptr);
+ }
break;
}
#ifdef INET6
@@ -1783,9 +1789,15 @@
{
struct sockaddr_in *sin;
sin = (struct sockaddr_in *)&addr;
- h = gethostbyaddr((char *)&sin->sin_addr,
- sizeof(sin->sin_addr),
- sin->sin_family);
+ if (rb_obj_is_kind_of(host, rb_cInteger) ||
+ RSTRING(host)->ptr == 0 ||
+ (RSTRING(host)->ptr[0] == '<' && strcmp(RSTRING(host)->ptr, "<broadcast>") == 0)) {
+ h = gethostbyaddr((char *)&sin->sin_addr,
+ sizeof(sin->sin_addr),
+ sin->sin_family);
+ } else {
+ h = gethostbyname(RSTRING(host)->ptr);
+ }
break;
}
#ifdef INET6
------------------------------