[前][次][番号順一覧][スレッド一覧]

ruby-changes:10625

From: akr <ko1@a...>
Date: Mon, 9 Feb 2009 21:49:35 +0900 (JST)
Subject: [ruby-changes:10625] Ruby:r22182 (trunk): * ext/socket/ancdata.c (ancillary_inspect): show address family.

akr	2009-02-09 21:49:24 +0900 (Mon, 09 Feb 2009)

  New Revision: 22182

  http://svn.ruby-lang.org/cgi-bin/viewvc.cgi?view=rev&revision=22182

  Log:
    * ext/socket/ancdata.c (ancillary_inspect): show address family.

  Modified files:
    trunk/ChangeLog
    trunk/ext/socket/ancdata.c

Index: ChangeLog
===================================================================
--- ChangeLog	(revision 22181)
+++ ChangeLog	(revision 22182)
@@ -1,3 +1,7 @@
+Mon Feb  9 21:48:59 2009  Tanaka Akira  <akr@f...>
+
+	* ext/socket/ancdata.c (ancillary_inspect): show address family.
+
 Mon Feb  9 20:19:36 2009  Tanaka Akira  <akr@f...>
 
 	* ext/socket/basicsocket.c (bsock_getsockname): use sockaddr_storage.
Index: ext/socket/ancdata.c
===================================================================
--- ext/socket/ancdata.c	(revision 22181)
+++ ext/socket/ancdata.c	(revision 22182)
@@ -48,6 +48,7 @@
  * - Socket::SOL_SOCKET, "SOL_SOCKET", "SOCKET", :SOL_SOCKET and :SOCKET
  * - Socket::IPPROTO_IP, "IP" and :IP
  * - Socket::IPPROTO_IPV6, "IPV6" and :IPV6
+ * - Socket::IPPROTO_TCP, "TCP" and :TCP
  * - etc.
  *
  * _cmsg_type_ should be an integer, a string or a symbol.
@@ -59,9 +60,12 @@
  *
  * _cmsg_data_ should be a string.
  *
- *   p Socket::AncillaryData.new(:IPV6, :PKTINFO, "")     
- *   #=> #<Socket::AncillaryData: IPV6 PKTINFO "">
+ *   p Socket::AncillaryData.new(:INET, :TCP, :NODELAY, "")' 
+ *   #=> #<Socket::AncillaryData: AF_INET TCP NODELAY "">
  *
+ *   p Socket::AncillaryData.new(:INET6, :IPV6, :PKTINFO, "")     
+ *   #=> #<Socket::AncillaryData: INET6 IPV6 PKTINFO "">
+ *
  */
 static VALUE
 ancillary_initialize(VALUE self, VALUE vfamily, VALUE vlevel, VALUE vtype, VALUE data)
@@ -101,7 +105,7 @@
  * returns the socket family as an integer.
  *
  *   p Socket::AncillaryData.new(:INET6, :IPV6, :PKTINFO, "").family
- *   #=> 41
+ *   #=> 10
  */
 static VALUE
 ancillary_family_m(VALUE self)
@@ -201,7 +205,7 @@
  * The size and endian is dependent on the host. 
  *
  *   ancdata = Socket::AncillaryData.int(:UNIX, :SOCKET, :RIGHTS, STDERR.fileno)
- *   p ancdata.int => 2
+ *   p ancdata.int #=> 2
  */
 static VALUE
 ancillary_int(VALUE self)
@@ -583,22 +587,29 @@
 ancillary_inspect(VALUE self)
 {
     VALUE ret;
-    int level, type;
+    int family, level, type;
     VALUE data;
-    ID level_id;
+    ID family_id, level_id;
     VALUE vtype;
 
+    family = ancillary_family(self);
     level = ancillary_level(self);
     type = ancillary_type(self);
     data = ancillary_data(self);
 
     ret = rb_sprintf("#<%s: ", rb_obj_classname(self));
 
+    family_id = intern_family(family);
+    if (family_id)
+        rb_str_cat2(ret, rb_id2name(family_id));
+    else
+        rb_str_catf(ret, "family:%d", family);
+
     level_id = intern_level(level);
     if (level_id)
-        rb_str_cat2(ret, rb_id2name(level_id));
+        rb_str_catf(ret, " %s", rb_id2name(level_id));
     else
-        rb_str_catf(ret, "cmsg_level:%d", level);
+        rb_str_catf(ret, " cmsg_level:%d", level);
 
     vtype = cmsg_type_to_sym(level, type);
     if (SYMBOL_P(vtype))
@@ -870,7 +881,7 @@
  * sendmsg can be used to implement send_io as follows:
  *
  *   # use Socket::AncillaryData.
- *   ancdata = Socket::AncillaryData.int(:SOCKET, :RIGHTS, io.fileno)       
+ *   ancdata = Socket::AncillaryData.int(:UNIX, :SOCKET, :RIGHTS, io.fileno)       
  *   sock.sendmsg("a", 0, nil, ancdata)
  *
  *   # use 3-element array.

--
ML: ruby-changes@q...
Info: http://www.atdot.net/~ko1/quickml/

[前][次][番号順一覧][スレッド一覧]