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/