summaryrefslogtreecommitdiff
path: root/ext/socket/ancdata.c
AgeCommit message (Collapse)Author
2009-02-27* ext/socket/ancdata.c (bsock_recvmsg_internal): close FDs passed byakr
SCM_RIGHTS unless :scm_rights=>true is given. (discard_cmsg): extracted from rsock_discard_cmsg_resource. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@22667 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2009-02-26rdoc update.akr
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@22651 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2009-02-25* ext/socket/ancdata.c (ancillary_unix_rights): raiseakr
NotImplementedError if no fd passing feature. (ancillary_timestamp): raise NotImplementedError if no timestamp feature. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@22632 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2009-02-25* ext/socket/ancdata.c (ancillary_s_unix_rights): new method.akr
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@22631 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2009-02-25* ext/socket/unixsocket.c (unix_recv_io): prevent FD leak when 2 fd isakr
sent on LP64 platform. * ext/socket/rubysocket.h (rsock_discard_cmsg_resource): declared. * ext/socket/ancdata.c (rsock_discard_cmsg_resource): renamed from discard_cmsg_resource. export it. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@22630 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2009-02-24* ext/socket/ancdata.c (ancillary_timestamp): support SCM_BINTIME.akr
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@22594 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2009-02-24* ext/socket/ancdata.c (ancillary_timestamp): new method.akr
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@22593 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2009-02-23* ext/socket/ancdata.c (inspect_timespec_as_abstime): new function toakr
show struct timespec. (ancillary_inspect): use it for SCM_TIMESTAMPNS on GNU/Linux. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@22571 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2009-02-23* ext/socket/ancdata.c (inspect_bintime_as_abstime): new function toakr
show struct bintime. (ancillary_inspect): use it for SCM_BINTIME on FreeBSD. * ext/socket/mkconstants.rb: define SCM_BINTIME. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@22570 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2009-02-23* ext/socket/ancdata.c (inspect_timeval_as_abstime): use time_takr
variable to avoid a warning on environments which use long as tv_sec as NetBSD. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@22569 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2009-02-22* ext/socket/ancdata.c (ancillary_inspect): use SCM_TIMESTAMP insteadakr
of SO_TIMESTAMP. SCM_TIMESTAMP != SO_TIMESTAMP on MacOS X. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@22561 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2009-02-22* ext/socket/ancdata.c (inspect_timeval_as_abstime): new function.akr
(ancillary_inspect): use it for SO_TIMESTAMP. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@22560 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2009-02-22rdoc update.akr
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@22499 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2009-02-21* ext/socket/ancdata.c (bsock_recvmsg_internal): handle EMSGSIZE asakr
well. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@22492 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2009-02-21* ext/socket/ancdata.c (bsock_recvmsg_internal): check max lengthakr
overflow. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@22491 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2009-02-21* ext/socket/ancdata.c (bsock_recvmsg_internal): don't callakr
discard_cmsg_resource when EMFILE. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@22488 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2009-02-21* ext/socket/ancdata.c (bsock_recvmsg_internal): gc when SCM_RIGHTSakr
hit the file descriptor limit. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@22487 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2009-02-21* io.c (io_getpartial): error message describes what should beakr
waited after nonblocking error. (rb_io_write_nonblock): ditto. * ext/socket/init.c (s_recvfrom_nonblock): ditto. (s_accept_nonblock): ditto. * ext/socket/socket.c (sock_connect_nonblock): ditto. * ext/socket/ancdata.c (bsock_sendmsg_internal): ditto. (bsock_recvmsg_internal): ditto. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@22486 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2009-02-21* ext/socket/ancdata.c (bsock_recvmsg_internal): check recvmsg errorakr
earlier. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@22480 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2009-02-21rdoc update.akr
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@22475 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2009-02-19* ext/socket/ancdata.c (make_io_for_unix_rights): cmsg_len may beakr
bigger than msg_controllen. freeze unix_rights array. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@22454 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2009-02-19* ext/socket/ancdata.c (bsock_recvmsg_internal): fix exception.akr
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@22453 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2009-02-19* ext/socket/ancdata.c (ancillary_unix_rights): method renamed.akr
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@22452 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2009-02-18* ext/socket/ancdata.c (ancillary_rights): new method.akr
(make_io_for_rights): new function to allocate IOs for FDs in SCM_RIGHTS message. (bsock_recvmsg_internal): use make_io_for_rights. So the FDs can be closed by GC. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@22426 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2009-02-18* ext/socket/ancdata.c (discard_cmsg_resource): new function to closeakr
file descriptors in control message. (bsock_recvmsg_internal): call discard_cmsg_resource before retrying recvmsg. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@22420 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2009-02-18* ext/socket/ancdata.c (bsock_recvmsg_internal): prevent misalignment.akr
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@22403 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2009-02-18* ext/socket/ancdata.c (bsock_sendmsg_internal): avoid misalignment.akr
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@22402 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2009-02-18* ext/socket/ancdata.c (bsock_recvmsg_internal): reduce code onakr
environments which have no control message. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@22401 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2009-02-17add comments for rdoc.akr
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@22380 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2009-02-17* ext/socket/ancdata.c (bsock_sendmsg_internal): make the paddingakr
removing only on NetBSD. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@22376 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2009-02-17fix an error message.akr
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@22374 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2009-02-17* ext/socket/ancdata.c (bsock_sendmsg_internal): should not remove theakr
last padding of control messages, basically. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@22373 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2009-02-16* ext/socket/ancdata.c (bsock_sendmsg_internal) [OpenBSD]: don't removeakr
the last padding to prevent sendmsg failure in test_udp_server in test/socket/test_socket.rb. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@22359 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2009-02-13fix rdoc.akr
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@22294 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2009-02-13rdoc update.akr
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@22292 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2009-02-13* ext/socket/ancdata.c (extract_ipv6_pktinfo): set sa_len for 4.4BSD.akr
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@22287 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2009-02-11* ext/socket/ancdata.c (ancillary_s_ip_pktinfo): make 3rd argumentakr
optional. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@22232 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2009-02-11* ext/socket/ancdata.c (anc_inspect_socket_rights): return 1 onakr
success. 0 on failure. (anc_inspect_passcred_credentials): ditto. (anc_inspect_socket_creds): ditto. (anc_inspect_socket_creds): ditto. (anc_inspect_socket_creds): ditto. (anc_inspect_ip_recvdstaddr): ditto. (anc_inspect_ip_pktinfo): ditto. (anc_inspect_ipv6_pktinfo): ditto. (ancillary_inspect): check family. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@22228 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2009-02-11* ext/socket/ancdata.c (anc_inspect_ip_pktinfo): make result bitakr
succinct. (Init_ancdata): fix number of arguments. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@22223 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2009-02-10* ext/socket/init.c (struct recvfrom_arg): use structakr
sockaddr_storage. (recvfrom_blocking): follow struct recvfrom_arg change. (s_recvfrom): ditto. (s_recvfrom_nonblock): use struct sockaddr_storage. * ext/socket/socket.c (sock_accept): use struct sockaddr_storage. (sock_accept_nonblock): ditto. (sock_sysaccept): ditto. * ext/socket/ancdata.c (bsock_recvmsg_internal): use struct sockaddr_storage. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@22214 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2009-02-10* ext/socket/ancdata.c (anc_inspect_socket_creds): refactored to avoidakr
a rb_str_cat2 call. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@22207 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2009-02-10* ext/socket/option.c (inspect_local_peercred): constfied.nobu
* ext/socket/ancdata.c (anc_inspect_socket_creds): ditto. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@22195 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2009-02-10rdoc update.akr
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@22193 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2009-02-09* ext/socket/ancdata.c (ip_cmsg_type_to_sym): renamed fromakr
cmsg_type_to_sym. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@22190 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2009-02-09* ext/socket/mkconstants.rb: generate intern_family_noprefix.akr
* ext/socket/option.c (sockopt_inspect): use intern_family_noprefix not to show AF_ prefix. * ext/socket/ancdata.c (ancillary_inspect): ditto. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@22187 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2009-02-09* ext/socket/mkconstants.rb: rename level_to_int to iplevel_to_int.akr
rename intern_level to intern_iplevel. * ext/socket/constants.c: follow the renaming. * ext/socket/option.c: ditto. * ext/socket/ancdata.c: ditto. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@22185 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2009-02-09* ext/socket/rubysocket.h (level_arg): add family argument.akr
(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
2009-02-09* ext/socket/ancdata.c (ancillary_inspect): show address family.akr
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@22182 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2009-02-09* ext/socket/ancdata.c (ancillary_initialize): add family argument.akr
(ancdata_new): ditto. (ancillary_s_int): ditto. (ancillary_family): new function. (ancillary_family_m): new method. (ancillary_s_ip_pktinfo): follow ancdata_new change. (ancillary_s_ipv6_pktinfo): ditto. (bsock_recvmsg_internal): examine the socket address family. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@22175 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2009-02-08* ext/socket/extconf.rb: check struct cmsgcred.akr
* ext/socket/ancdata.c (anc_inspect_passcred_credentials): add "(ucred)". (anc_inspect_socket_creds): show struct cmsgcred too, for FreeBSD. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@22129 b2dd03c8-39d4-4d8f-98ff-823fe69b080e