[#7284] font-lock in ruby-mode.el — Shugo Maeda <shugo@...>
前田です。
7 messages
1999/07/06
[#7291] dualstack-httpd.rb — gotoken@... (GOTO Kentaro)
itojunさん作 sample/dualstack-httpd.rb の応答に些細な間違い
5 messages
1999/07/08
[#7300] resolver を呼ばない UDPsocket#recvfrom — Toshihiko SHIMOKAWA / 下川俊彦 <toshi@...>
あんまり ruby-dev な話でも無いのですが、ちょっとした機能拡張の提案なので、
12 messages
1999/07/12
[#7321] Re: resolver を呼ばない UDPsocket#recvfrom
— Toshihiko SHIMOKAWA / 下川俊彦 <toshi@...>
1999/07/15
From: Toshihiko SHIMOKAWA / 下川俊彦 <toshi@csce.kyushu-u.ac.jp>
[#7367] Re: resolver を呼ばない UDPsocket#recvfrom
— matz@... (Yukihiro Matsumoto)
1999/07/19
まつもと ゆきひろです
[#7301] Re: mod_ruby/0.1.2 with Apache/1.3.6 on Solaris/2.5.1 — matz@... (Yukihiro Matsumoto)
まつもと ゆきひろです
11 messages
1999/07/13
[#7302] Re: mod_ruby/0.1.2 with Apache/1.3.6 on Solaris/2.5.1
— Katsuyuki Komatsu <komatsu@...>
1999/07/13
小松です。
[#7313] Ruby 1.3.5 — Yukihiro Matsumoto <matz@...>
Ruby 1.3.5 is out, check out:
59 messages
1999/07/15
[#7314] Re: Ruby 1.3.5
— "NAKAMURA, Hiroshi" <nakahiro@...>
1999/07/15
なひです.
[#7315] Re: Ruby 1.3.5
— matz@... (Yukihiro Matsumoto)
1999/07/15
まつもと ゆきひろです
[#7318] Re: Ruby 1.3.5
— WATANABE Hirofumi <watanabe@...>
1999/07/15
わたなべです.
[#7326] Re: Ruby 1.3.5
— Wakou Aoyama <wakou@...>
1999/07/15
青山です。
[#7331] Re: Ruby 1.3.5
— matz@... (Yukihiro Matsumoto)
1999/07/16
まつもと ゆきひろです
[#7340] Re: Ruby 1.3.5
— Wakou Aoyama <wakou@...>
1999/07/16
青山です。
[#7355] Re: Ruby 1.3.5
— Wakou Aoyama <wakou@...>
1999/07/17
青山です。
[#7368] Re: Ruby 1.3.5
— matz@... (Yukihiro Matsumoto)
1999/07/19
まつもと ゆきひろです
[#7373] Re: Ruby 1.3.5
— Shin-ichiro Hara <sinara@...>
1999/07/19
原です。
[#7374] Re: Ruby 1.3.5
— matz@... (Yukihiro Matsumoto)
1999/07/19
まつもと ゆきひろです
[#7382] Re: Ruby 1.3.5
— Wakou Aoyama <wakou@...>
1999/07/19
青山です。
[#7386] Re: Ruby 1.3.5
— matz@... (Yukihiro Matsumoto)
1999/07/21
まつもと ゆきひろです
[#7388] Re: Ruby 1.3.5
— Wakou Aoyama <wakou@...>
1999/07/21
青山です。
[#7389] Re: Ruby 1.3.5
— Wakou Aoyama <wakou@...>
1999/07/21
青山です。
[#7391] Re: Ruby 1.3.5
— Shin-ichiro Hara <sinara@...>
1999/07/21
原です。
[#7392] Re: Ruby 1.3.5
— matz@... (Yukihiro Matsumoto)
1999/07/21
まつもと ゆきひろです
[#7393] Re: Ruby 1.3.5
— matz@... (Yukihiro Matsumoto)
1999/07/21
まつもと ゆきひろです
[#7394] Re: Ruby 1.3.5
— Wakou Aoyama <wakou@...>
1999/07/21
青山です。
[#7327] [PATCH] ext/extmk.rb.in, instruby.rb, lib/mkmf.rb — Katsuyuki Komatsu <komatsu@...>
小松です.
5 messages
1999/07/16
[#7347] AC_OBJEXT — Katsuyuki Komatsu <komatsu@...>
小松です。
10 messages
1999/07/16
[#7353] const assign — Minero Aoki <aamine@...>
あおきです。
7 messages
1999/07/16
[#7387] [PATCH]extconf.rb, tcltklib.c, and rubytest.rb for NetBSD — Ryo HAYASAKA <hayasaka@...21.u-aizu.ac.jp>
早坂@会津大学です。
10 messages
1999/07/21
[#7401] Re: [PATCH]extconf.rb, tcltklib.c, and rubytest.rb for NetBSD
— matz@... (Yukihiro Matsumoto)
1999/07/23
まつもと ゆきひろです
[#7403] Re: [PATCH]extconf.rb, tcltklib.c, and rubytest.rb for NetBSD
— Ryo HAYASAKA <hayasaka@...21.u-aizu.ac.jp>
1999/07/23
早坂@会津大学です。
[#7404] Re: [PATCH]extconf.rb, tcltklib.c, and rubytest.rb for NetBSD
— matz@... (Yukihiro Matsumoto)
1999/07/23
まつもと ゆきひろです
[#7419] File#expand_path ignore drive letter on mswin32 — Katsuyuki Komatsu <komatsu@...>
小松です。
8 messages
1999/07/26
[#7421] Re: File#expand_path ignore drive letter on mswin32
— KIMURA Koichi <kimura@...>
1999/07/26
[#7422] Re: File#expand_path ignore drive letter on mswin32
— WATANABE Hirofumi <watanabe@...>
1999/07/26
わたなべです.
[#7428] [PATCH] tools.rb — WATANABE Hirofumi <watanabe@...>
わたなべです.
8 messages
1999/07/27
[#7435] Re: [PATCH] tools.rb
— matz@... (Yukihiro Matsumoto)
1999/07/27
まつもと ゆきひろです
[#7444] dualstack-*.rb on mswin32 — Katsuyuki Komatsu <komatsu@...>
小松です。
7 messages
1999/07/27
[#7466] [PATCH] for djgpp — WATANABE Hirofumi <watanabe@...>
わたなべです.
21 messages
1999/07/29
[#7467] Re: [PATCH] for djgpp
— Katsuyuki Komatsu <komatsu@...>
1999/07/29
小松です。
[#7549] Re: [PATCH] for djgpp
— okabe katsuyuki <hgc02147@...>
1999/08/05
binsuffixを導入した岡部です(^^;
[#7550] Re: [PATCH] for djgpp
— Katsuyuki Komatsu <komatsu@...>
1999/08/06
小松です。
[#7557] Re: [PATCH] for djgpp
— okabe katsuyuki <hgc02147@...>
1999/08/07
岡部です。
[#7573] Re: [PATCH] for djgpp
— EGUCHI Osamu <eguchi@...>
1999/08/08
えぐち@エスアンドイー です。
[#7598] Re: [PATCH] for djgpp
— okabe katsuyuki <hgc02147@...>
1999/08/10
岡部です。
[#7471] Range#each — WATANABE Hirofumi <watanabe@...>
わたなべです.
7 messages
1999/07/29
[#7501] [PATCH] mswin32 tcltklib for Tcl/Tk 8.0jp — Katsuyuki Komatsu <komatsu@...>
小松です。
5 messages
1999/07/30
[#7503] [PATCH] find_library() — Katsuyuki Komatsu <komatsu@...>
小松です。
9 messages
1999/07/30
[#7507] Re: [PATCH] find_library()
— matz@... (Yukihiro Matsumoto)
1999/07/30
まつもと ゆきひろです
[#7517] Re: [PATCH] find_library()
— Katsuyuki Komatsu <komatsu@...>
1999/08/01
小松です。
[#7529] [PATCH] for mswin32 final (Re: [PATCH] find_library())
— Katsuyuki Komatsu <komatsu@...>
1999/08/02
小松です。
[#7508] [BUG?] install failed — Yasuhiro Fukuma <yasuf@...>
福間%port作成中@福岡 です。
7 messages
1999/07/30
[ruby-dev:7321] Re: resolver を呼ばない UDPsocket#recvfrom
From:
Toshihiko SHIMOKAWA / 下川俊彦 <toshi@...>
Date:
1999-07-15 12:24:11 UTC
List:
ruby-dev #7321
From: Toshihiko SHIMOKAWA / 下川俊彦 <toshi@csce.kyushu-u.ac.jp> Subject: [ruby-dev:7300] resolver を呼ばない UDPsocket#recvfrom Date: Mon, 12 Jul 1999 11:53:12 +0900 > あまり一般的な要望では無いのは承知していますが、採用されると嬉しいなぁ。 案の定、全く反応が無い要望ですが、今回はちとましな patch を作ってみまし た。 UDPsocket#recvfrom_noresolv ってメソッドを追加してみました。recvfrom に 引数付けるより影響少そうかな、と思いまして。 ruby-1.3.5 への patch です。こんなんだと採用の見込みあるかしらん? -- としちゃん
Attachments (1)
dif
(3.69 KB, text/plain)
--- socket.c-dist Thu Jun 24 13:24:06 1999
+++ socket.c Thu Jul 15 21:08:14 1999
@@ -329,7 +329,7 @@
return INT2FIX(n);
}
-static VALUE ipaddr _((struct sockaddr *));
+static VALUE ipaddr _((struct sockaddr *, int));
#ifdef HAVE_SYS_UN_H
static VALUE unixaddr _((struct sockaddr_un *));
#endif
@@ -338,6 +338,7 @@
RECV_RECV, /* BasicSocket#recv(no from) */
RECV_TCP, /* TCPSocket#recvfrom */
RECV_UDP, /* UDPSocket#recvfrom */
+ RECV_UDP_NORESOLV, /* UDPSocket#recvfrom_noresolv */
RECV_UNIX, /* UNIXSocket#recvfrom */
RECV_SOCKET, /* Socket#recvfrom */
};
@@ -397,10 +398,17 @@
rb_raise(rb_eTypeError, "sockaddr size differs - should not happen");
}
#endif
- return rb_assoc_new(str, ipaddr((struct sockaddr *)buf));
+ return rb_assoc_new(str, ipaddr((struct sockaddr *)buf, 1));
case RECV_UDP:
{
- VALUE addr = ipaddr((struct sockaddr *)buf);
+ VALUE addr = ipaddr((struct sockaddr *)buf, 1);
+
+ return rb_assoc_new(str, rb_assoc_new(RARRAY(addr)->ptr[2],
+ RARRAY(addr)->ptr[1]));
+ }
+ case RECV_UDP_NORESOLV:
+ {
+ VALUE addr = ipaddr((struct sockaddr *)buf, 0);
return rb_assoc_new(str, rb_assoc_new(RARRAY(addr)->ptr[2],
RARRAY(addr)->ptr[1]));
@@ -530,8 +538,9 @@
}
static VALUE
-ipaddr(sockaddr)
+ipaddr(sockaddr, flag)
struct sockaddr *sockaddr;
+ int flag;
{
VALUE family, port, addr1, addr2;
VALUE ary;
@@ -552,17 +561,23 @@
family = 0;
break;
}
- error = getnameinfo(sockaddr, SA_LEN(sockaddr), hbuf, sizeof(hbuf),
- NULL, 0, 0);
- if (error) {
+ if (flag) {
+ error = getnameinfo(sockaddr, SA_LEN(sockaddr), hbuf, sizeof(hbuf),
+ NULL, 0, 0);
+ if (error) {
rb_raise(rb_eSocket, "%s", gai_strerror(error));
+ }
+ addr1 = rb_str_new2(hbuf);
}
- 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, "%s", gai_strerror(error));
}
+ if (!flag) {
+ addr1 = rb_str_new2(hbuf);
+ }
addr2 = rb_str_new2(hbuf);
port = INT2FIX(atoi(pbuf));
ary = rb_ary_new3(4, family, port, addr1, addr2);
@@ -999,7 +1014,7 @@
if (getsockname(fileno(fptr->f), (struct sockaddr*)&addr, &len) < 0)
rb_sys_fail("getsockname(2)");
- return ipaddr((struct sockaddr *)&addr);
+ return ipaddr((struct sockaddr *)&addr, 1);
}
static VALUE
@@ -1014,7 +1029,7 @@
if (getpeername(fileno(fptr->f), (struct sockaddr*)&addr, &len) < 0)
rb_sys_fail("getpeername(2)");
- return ipaddr((struct sockaddr *)&addr);
+ return ipaddr((struct sockaddr *)&addr, 1);
}
static VALUE
@@ -1150,6 +1165,15 @@
return s_recv(sock, argc, argv, RECV_UDP);
}
+static VALUE
+udp_recvfrom_noresolv(argc, argv, sock)
+ int argc;
+ VALUE *argv;
+ VALUE sock;
+{
+ return s_recv(sock, argc, argv, RECV_UDP_NORESOLV);
+}
+
#ifdef HAVE_SYS_UN_H
static VALUE
unix_s_sock_open(sock, path)
@@ -1528,7 +1552,7 @@
}
base = rb_ary_new();
for (res = res0; res; res = res->ai_next) {
- ary = ipaddr(res->ai_addr);
+ ary = ipaddr(res->ai_addr, 1);
rb_ary_push(ary, INT2FIX(res->ai_family));
rb_ary_push(ary, INT2FIX(res->ai_socktype));
rb_ary_push(ary, INT2FIX(res->ai_protocol));
@@ -1868,6 +1892,7 @@
rb_define_method(rb_cUDPSocket, "bind", udp_bind, 2);
rb_define_method(rb_cUDPSocket, "send", udp_send, -1);
rb_define_method(rb_cUDPSocket, "recvfrom", udp_recvfrom, -1);
+ rb_define_method(rb_cUDPSocket, "recvfrom_noresolv", udp_recvfrom_noresolv, -1);
#ifdef HAVE_SYS_UN_H
rb_cUNIXSocket = rb_define_class("UNIXSocket", rb_cBasicSocket);