mirror of
https://github.com/ruby/ruby.git
synced 2022-11-09 12:17:21 -05:00
* ext/socket/rubysocket.h (level_arg): add family argument.
(optname_arg): ditto. (cmsg_type_arg): ditto. (rb_sock_getfamily): declared. * ext/socket/constants.c (level_arg): add family argument. (optname_arg): ditto. (cmsg_type_arg): ditto. * ext/socket/init.c (rb_sock_getfamily): defined. * ext/socket/option.c (sockopt_initialize): give family for level_arg and optname_arg. (sockopt_s_int): ditto. * ext/socket/basicsocket.c (bsock_setsockopt): ditto. (bsock_getsockopt): ditto. * ext/socket/ancdata.c (ancillary_initialize): ditto. (ancillary_s_int): ditto. (ancillary_cmsg_is_p): ditto. (bsock_sendmsg_internal): ditto. (bsock_recvmsg_internal): use rb_sock_getfamily. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@22184 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
This commit is contained in:
parent
2092fbcc3a
commit
f5da7031b9
7 changed files with 85 additions and 44 deletions
|
@ -505,6 +505,18 @@ s_accept(VALUE klass, int fd, struct sockaddr *sockaddr, socklen_t *len)
|
|||
return init_sock(rb_obj_alloc(klass), fd2);
|
||||
}
|
||||
|
||||
int rb_sock_getfamily(int sockfd)
|
||||
{
|
||||
struct sockaddr_storage ss;
|
||||
socklen_t sslen = sizeof(ss);
|
||||
|
||||
ss.ss_family = AF_UNSPEC;
|
||||
if (getsockname(sockfd, (struct sockaddr*)&ss, &sslen) < 0)
|
||||
rb_sys_fail("getsockname(2)");
|
||||
|
||||
return ss.ss_family;
|
||||
}
|
||||
|
||||
/*
|
||||
* SocketError is the error class for socket.
|
||||
*/
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue