1
0
Fork 0
mirror of https://github.com/ruby/ruby.git synced 2022-11-09 12:17:21 -05:00

* ext/socket/rubysocket.h (cmsg_type_arg): declared.

(Init_ancdata): ditto.

* ext/socket/init.c (Init_socket_init): call Init_ancdata.

* ext/socket/constants.c (cmsg_type_arg): defined.

* ext/socket/depend: add dependency for ancdata.o.

* ext/socket/mkconstants.rb: generate scm_optname_to_int.
  more constants.

* ext/socket/extconf.rb: add ancdata.o.

* ext/socket/ancdata.c: new file.  new method
  BasicSocket#{sendmsg,sendmsg_nonblock,recvmsg,recvmsg_nonblock}



git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@21943 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
This commit is contained in:
akr 2009-02-02 02:51:02 +00:00
parent c618d018d8
commit 61fc0c6cf4
10 changed files with 1259 additions and 0 deletions

View file

@ -92,6 +92,25 @@ shutdown_how_arg(VALUE how)
return constant_arg(how, shutdown_how_to_int, "unknown shutdown argument");
}
int
cmsg_type_arg(int level, VALUE optname)
{
switch (level) {
case SOL_SOCKET:
return constant_arg(optname, scm_optname_to_int, "unknown UNIX control message");
case IPPROTO_IP:
return constant_arg(optname, ip_optname_to_int, "unknown IP control message");
case IPPROTO_IPV6:
return constant_arg(optname, ipv6_optname_to_int, "unknown IPv6 control message");
case IPPROTO_TCP:
return constant_arg(optname, tcp_optname_to_int, "unknown TCP control message");
case IPPROTO_UDP:
return constant_arg(optname, udp_optname_to_int, "unknown UDP control message");
default:
return NUM2INT(optname);
}
}
static void
sock_define_const(const char *name, int value, VALUE mConst)
{