[#2810] [BUG] IO#eof? when Thread using — keiju@... (Keiju ISHITSUKA)

けいじゅ@日本ラショナルソフトウェアです.

31 messages 1998/06/08
[#2826] Re: [BUG] IO#eof? when Thread using — matz@... (Yukihiro Matsumoto) 1998/06/10

まつもと ゆきひろです

[#2827] Re: [BUG] IO#eof? when Thread using — keiju@... (石塚圭樹 ) 1998/06/10

けいじゅ@日本ラショナルソフトウェアです.

[#2828] Re: [BUG] IO#eof? when Thread using — matz@... (Yukihiro Matsumoto) 1998/06/10

まつもと ゆきひろです

[#2829] Re: [BUG] IO#eof? when Thread using — keiju@... (石塚圭樹 ) 1998/06/10

けいじゅ@日本ラショナルソフトウェアです.

[#2831] Re: [BUG] IO#eof? when Thread using — matz@... (Yukihiro Matsumoto) 1998/06/10

まつもと ゆきひろです

[#2841] Re: [BUG] IO#eof? when Thread using — keiju@... (石塚圭樹 ) 1998/06/10

けいじゅ@日本ラショナルソフトウェアです.

[#2842] Re: [BUG] IO#eof? when Thread using — matz@... (Yukihiro Matsumoto) 1998/06/10

まつもと ゆきひろです

[#2843] Re: [BUG] IO#eof? when Thread using — keiju@... (石塚圭樹 ) 1998/06/10

けいじゅ@日本ラショナルソフトウェアです.

[#2845] Re: [BUG] IO#eof? when Thread using — matz@... (Yukihiro Matsumoto) 1998/06/11

まつもと ゆきひろです

[#2846] Re: [BUG] IO#eof? when Thread using — keiju@... (石塚圭樹 ) 1998/06/11

けいじゅ@日本ラショナルソフトウェアです.

[#2847] Re: [BUG] IO#eof? when Thread using — matz@... (Yukihiro Matsumoto) 1998/06/11

まつもと ゆきひろです

[#2848] Re: [BUG] IO#eof? when Thread using — keiju@... (石塚圭樹 ) 1998/06/11

けいじゅ@日本ラショナルソフトウェアです.

[#2849] Re: [BUG] IO#eof? when Thread using — matz@... (Yukihiro Matsumoto) 1998/06/11

まつもと ゆきひろです

[#2854] experimental release 1.1b9_25 — matz@... (Yukihiro Matsumoto)

まつもと ゆきひろです

23 messages 1998/06/11
[#2870] Re: experimental release 1.1b9_25 — Takahiro Maebashi <maebashi@...> 1998/06/15

前橋です。

[#2911] experimental release 1.1b9_26 — matz@... (Yukihiro Matsumoto)

まつもと ゆきひろです

33 messages 1998/06/18
[#2912] Re: experimental release 1.1b9_26 — WATANABE Hirofumi <watanabe@...> 1998/06/18

わたなべです.

[#2913] Re: experimental release 1.1b9_26 — matz@... (Yukihiro Matsumoto) 1998/06/18

まつもと ゆきひろです

[#2916] Re: experimental release 1.1b9_26 — Takahiro Maebashi <maebashi@...> 1998/06/18

前橋です。

[#2917] Re: experimental release 1.1b9_26 — matz@... (Yukihiro Matsumoto) 1998/06/18

まつもと ゆきひろです

[#2940] experimental release 1.1b9_27 — matz@... (Yukihiro Matsumoto)

まつもと ゆきひろです

21 messages 1998/06/19

[#2965] feature freeze for 1.1c — matz@... (Yukihiro Matsumoto)

まつもと ゆきひろです

25 messages 1998/06/22

[#3056] experimental release 1.1b9_28 — matz@... (Yukihiro Matsumoto)

subject says all.

28 messages 1998/06/26
[#3104] Re: experimental release 1.1b9_28 — Takahiro Maebashi <maebashi@...> 1998/06/30

前橋です。

[#3086] Re: Enumerable#reverse ([ruby-list:8579]) — gotoken@... (GOTO Kentaro)

ごとけんです

19 messages 1998/06/29
[#3120] Re: Enumerable#reverse ([ruby-list:8579]) — keiju@... (Keiju ISHITSUKA) 1998/06/30

けいじゅ@日本ラショナルソフトウェアです.

[#3130] Re: Enumerable#reverse ([ruby-list:8579]) — gotoken@... (GOTO Kentaro) 1998/06/30

ごとけんです

[#3146] [REQ] trace_func — keiju@... (Keiju ISHITSUKA)

けいじゅ@日本ラショナルソフトウェアです.

15 messages 1998/06/30
[#3190] Re: [REQ] trace_func — matz@... (Yukihiro Matsumoto) 1998/07/02

まつもと ゆきひろです

[#3807] Re: [REQ] trace_func — keiju@... (石塚圭樹 ) 1998/12/14

けいじゅ@日本ラショナルソフトウェアです.

[ruby-dev:2796] ext/socket.c

From: WATANABE Tetsuya <tetsu@...>
Date: 1998-06-01 14:00:04 UTC
List: ruby-dev #2796
わたなべてつやです。

socket を使っていて、エラーの確認をしていたのですが、サービス名
を間違って渡した場合 core をはいてしまいました。

# どこまで手を抜いて書けるか確認していたんです。

ext/socket.c で strtoul(3) を使っているんですが、ちょっと仕様と
実際の動作が違うようです。仕様だと変換できないような文字では 
ULONG_MAX を返すはずですが、実際には 0 が帰ってきます。このため、
文字列で実際のサービスが登録されていない場合の処理がうまく行っ
ていません。エラーとして扱わず、サービス(ポート)を 0 として処理
してしまいます。これは本当はどうしたらいいんでしょうね? -1 と 0 
の両方を確認した方がいいのかな?

それと udp_addrsetup(host, port, addr) 中で port という変数名を
使い回していて、エラーメッセージを表示する際にうまく動作しませ
んでした。こちらはちょっと気が付きにくかったです。

この動作確認は Linux libc.so.5.4.38 と HP-UX 10.20 で確認しまし
た。

------------------------------
$ diff -u socket.c.org socket.c
--- socket.c.org        Mon May 18 18:12:27 1998
+++ socket.c    Mon Jun  1 22:43:00 1998
@@ -495,7 +495,7 @@
     servent = getservbyname(RSTRING(serv)->ptr, "tcp");
     if (servent == NULL) {
        servport = strtoul(RSTRING(serv)->ptr, 0, 0);
-       if (servport == -1) {
+       if (servport == 0) {
            Raise(eSocket, "no such servce %s", RSTRING(serv)->ptr);
        }
       setup_servent:
@@ -860,12 +860,12 @@
            addr->sin_port = servent->s_port;
        }
        else {
-           int port = strtoul(RSTRING(port)->ptr, 0, 0);
+           int port_ = strtoul(RSTRING(port)->ptr, 0, 0);
 
-           if (port == -1) {
+           if (port_ == 0) {
                Raise(eSocket, "no such servce %s", RSTRING(port)->ptr);
            }
-           addr->sin_port = htons(port);
+           addr->sin_port = htons(port_);
        }
     }
 }
------------------------------

--
WATANABE Tetsuya HP Japan
e-mail  tetsu@jpn.hp.com

In This Thread

Prev Next