[#23480] [BUG] numeric.c (flo_to_s) broken? — "H.Yamamoto" <ocean@...2.ccsnet.ne.jp>

山本です。

19 messages 2004/05/08
[#23482] Re: [BUG] numeric.c (flo_to_s) broken? — "H.Yamamoto" <ocean@...2.ccsnet.ne.jp> 2004/05/08

山本です。

[#23483] Re: [BUG] numeric.c (flo_to_s) broken? — "H.Yamamoto" <ocean@...2.ccsnet.ne.jp> 2004/05/08

山本です。

[#23484] Re: [BUG] numeric.c (flo_to_s) broken? — "H.Yamamoto" <ocean@...2.ccsnet.ne.jp> 2004/05/08

山本です。

[#23485] Re: [BUG] numeric.c (flo_to_s) broken? — "H.Yamamoto" <ocean@...2.ccsnet.ne.jp> 2004/05/08

山本です。たびたびすみません。

[#23486] Re: [BUG] numeric.c (flo_to_s) broken? — "H.Yamamoto" <ocean@...2.ccsnet.ne.jp> 2004/05/08

山本です。

[#23499] Re: [BUG] numeric.c (flo_to_s) broken? — "H.Yamamoto" <ocean@...2.ccsnet.ne.jp> 2004/05/14

山本です。

[#23488] Re: [ruby-cvs] ruby, ruby/ext, ruby/lib, ruby/lib/test/unit/ui/console, ruby/test, ruby/test/drb, ruby/test/ruby, ruby/test/soap/calc: * ext/extmk.rb (extmake): skip uncompiled extensions. — MIYAMUKO Katsuyuki <k-miyamuko@...>

みやむこです。

18 messages 2004/05/11
[#23527] Re: [ruby-cvs] ruby, ruby/ext, ruby/lib, ruby/lib/test/unit/ui/console,ruby/test, ruby/test/drb, ruby/test/ruby, ruby/test/soap/calc: * ext/extmk.rb(extmake): skip uncompiled extensions. — nobu.nakada@... 2004/05/17

なかだです。

[#23537] Re: [ruby-cvs] ruby, ruby/ext, ruby/lib, ruby/lib/test/unit/ui/console,ruby/test, ruby/test/drb, ruby/test/ruby, ruby/test/soap/calc: * ext/extmk.rb(extmake): skip uncompiled extensions. — MIYAMUKO Katsuyuki <k-miyamuko@...> 2004/05/18

みやむこです。

[#23538] Re: [ruby-cvs] ruby, ruby/ext, ruby/lib, ruby/lib/test/unit/ui/console,ruby/test,ruby/test/drb, ruby/test/ruby, ruby/test/soap/calc: * ext/extmk.rb(extmake):skip uncompiled extensions. — nobu.nakada@... 2004/05/19

なかだです。

[#23539] Re: [ruby-cvs] ruby, ruby/ext, ruby/lib, ruby/lib/test/unit/ui/console,ruby/test,ruby/test/drb, ruby/test/ruby, ruby/test/soap/calc: * ext/extmk.rb(extmake):skip uncompiled extensions. — MIYAMUKO Katsuyuki <k-miyamuko@...> 2004/05/19

みやむこです。

[#23543] Re: [ruby-cvs] ruby, ruby/ext, ruby/lib, ruby/lib/test/unit/ui/console,ruby/test,ruby/test/drb,ruby/test/ruby, ruby/test/soap/calc: * ext/extmk.rb(extmake):skip uncompiledextensions. — nobu.nakada@... 2004/05/19

なかだです。

[#23555] Re: [ruby-cvs] ruby, ruby/ext, ruby/lib, ruby/lib/test/unit/ui/console,ruby/test,ruby/test/drb,ruby/test/ruby, ruby/test/soap/calc: * ext/extmk.rb(extmake):skip uncompiledextensions. — MIYAMUKO Katsuyuki <k-miyamuko@...> 2004/05/21

みやむこです。

[#23557] Re: [ruby-cvs] ruby, ruby/ext, ruby/lib, ruby/lib/test/unit/ui/console,ruby/test,ruby/test/drb,ruby/test/ruby,ruby/test/soap/calc: * ext/extmk.rb(extmake):skip uncompiledextensions. — nobu.nakada@... 2004/05/21

なかだです。

[#23559] Re: [ruby-cvs] ruby, ruby/ext, ruby/lib, ruby/lib/test/unit/ui/console,ruby/test,ruby/test/drb,ruby/test/ruby,ruby/test/soap/calc: * ext/extmk.rb(extmake):skip uncompiledextensions. — MIYAMUKO Katsuyuki <k-miyamuko@...> 2004/05/21

みやむこです。

[#23492] ruby 1.8.1 (2004-05-13) has 7 failures and 3 errors — akira yamada <akira@...>

19 messages 2004/05/13

[#23533] Ruby2.0 spec summary around parameters and variables — SASADA Koichi <ko1@...>

 ささだです。

22 messages 2004/05/17
[#23563] Re: Ruby2.0 spec summary around parameters and variables — Minero Aoki <aamine@...> 2004/05/22

青木です。

[#23564] Re: Ruby2.0 spec summary around parameters and variables — matz@... (Yukihiro Matsumoto) 2004/05/22

まつもと ゆきひろです

[#23568] Re: Ruby2.0 spec summary around parameters and variables — Minero Aoki <aamine@...> 2004/05/22

青木です。

[#23569] Re: Ruby2.0 spec summary around parameters and variables — matz@... (Yukihiro Matsumoto) 2004/05/22

まつもと ゆきひろです

[#23572] keyword argments (Ruby2.0 spec) — Hidetoshi NAGAI <nagai@...>

永井@知能.九工大です.

14 messages 2004/05/23
[#23578] Re: keyword argments (Ruby2.0 spec) — matz@... (Yukihiro Matsumoto) 2004/05/23

まつもと ゆきひろです

[#23615] console freezed on test/drb/drbtest.rb : test_06_timeout (bcc32) — "H.Yamamoto" <ocean@...2.ccsnet.ne.jp>

山本です。

11 messages 2004/05/25
[#23625] Re: console freezed on test/drb/drbtest.rb : test_06_timeout (bcc32) — "H.Yamamoto" <ocean@...2.ccsnet.ne.jp> 2004/05/26

山本です。

[ruby-dev:23463] [OSX?] socket.c ipaddr()

From: Masatoshi SEKI <m_seki@...>
Date: 2004-05-04 19:48:19 UTC
List: ruby-dev #23463
咳といいます。

OSXでUDPSocket#recvfromが次のようにgetnameinfo()で失敗することがあります。

recvfrom': getnameinfo: nodename nor servname provided, or not known 
(SocketError)

咳の環境で再現させるスクリプトを示します。
# 逆引きできるかどうかが問題だと参考にならなかも…

require 'socket'

PORT = 12345

BasicSocket.do_not_reverse_lookup = ARGV.shift

s1 = UDPSocket.open
s1.bind('', PORT)

s2 = UDPSocket.open
s2.setsockopt(Socket::SOL_SOCKET, Socket::SO_BROADCAST, true)

s2.send('hello', 0, 'localhost', PORT)
p s1.recvfrom(5)

s2.send('hello', 0, '<broadcast>', PORT)
p s1.recvfrom(5)

do_not_reverse_lookupがfalseのときにエラーになるようです。

   error = getnameinfo(sockaddr, SA_LEN(sockaddr), hbuf, sizeof(hbuf),
                       NULL, 0, 0);

がerrorを返し、例外となるようです。
次のような作戦で回避できそうです。

* 逆引きがエラーになったら数値なIPアドレスの文字列を採用する作戦

逆引きのgetnameinfo()がエラーを返しても例外を発生させるべきだとすると
作戦負けですね。

ruby-1.9とruby-1.8それぞれのパッチを示します。

Index: socket.c
===================================================================
RCS file: /src/ruby/ext/socket/socket.c,v
retrieving revision 1.119
diff -u -w -r1.119 socket.c
--- socket.c    6 Apr 2004 04:13:24 -0000       1.119
+++ socket.c    4 May 2004 19:36:27 -0000
@@ -751,21 +751,21 @@
         break;
      }

+    addr1 = Qnil;
      if (!norevlookup) {
         error = getnameinfo(sockaddr, SA_LEN(sockaddr), hbuf, 
sizeof(hbuf),
                             NULL, 0, 0);
-       if (error) {
-           raise_socket_error("getnameinfo", error);
-       }
+       if (! error) {
         addr1 = rb_str_new2(hbuf);
      }
+    }
      error = getnameinfo(sockaddr, SA_LEN(sockaddr), hbuf, sizeof(hbuf),
                         pbuf, sizeof(pbuf), NI_NUMERICHOST | 
NI_NUMERICSERV);
      if (error) {
         raise_socket_error("getnameinfo", error);
      }
      addr2 = rb_str_new2(hbuf);
-    if (norevlookup) {
+    if (addr1 == Qnil) {
         addr1 = addr2;
      }
      port = INT2FIX(atoi(pbuf));


ruby-1.8だとこんな感じ。

Index: socket.c
===================================================================
RCS file: /src/ruby/ext/socket/socket.c,v
retrieving revision 1.108.2.4
diff -u -w -r1.108.2.4 socket.c
--- socket.c    6 Apr 2004 04:22:05 -0000       1.108.2.4
+++ socket.c    4 May 2004 19:37:23 -0000
@@ -705,21 +705,21 @@
         family = rb_str_new2(pbuf);
         break;
      }
+    addr1 = Qnil;
      if (!do_not_reverse_lookup) {
         error = getnameinfo(sockaddr, SA_LEN(sockaddr), hbuf, 
sizeof(hbuf),
                             NULL, 0, 0);
-       if (error) {
-           rb_raise(rb_eSocket, "getnameinfo: %s", 
gai_strerror(error));
-       }
+       if (! error) {
         addr1 = rb_str_new2(hbuf);
      }
+    }
      error = getnameinfo(sockaddr, SA_LEN(sockaddr), hbuf, sizeof(hbuf),
                         pbuf, sizeof(pbuf), NI_NUMERICHOST | 
NI_NUMERICSERV);
      if (error) {
         rb_raise(rb_eSocket, "getnameinfo: %s", gai_strerror(error));
      }
      addr2 = rb_str_new2(hbuf);
-    if (do_not_reverse_lookup) {
+    if (addr1 == Qnil) {
         addr1 = addr2;
      }
      port = INT2FIX(atoi(pbuf));


In This Thread

Prev Next