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:
parent
c618d018d8
commit
61fc0c6cf4
10 changed files with 1259 additions and 0 deletions
|
@ -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)
|
||||
{
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue