summaryrefslogtreecommitdiffstats
path: root/ext/socket
Commit message (Collapse)AuthorAgeFilesLines
...
* * ext/socket/socket.c (rb_cAddrInfo): new class AddrInfo.akr2009-01-072-13/+1068
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | (s_recvfrom): return AddrInfo as address. (s_recvfrom_nonblock): ditto. (sock_accept): ditto. (sock_accept_nonblock): ditto. (sock_sysaccept): ditto. (bsock_send): accept AddrInfo as address argument. (sock_connect): ditto. (sock_connect_nonblock): ditto. (sock_bind): ditto. (sock_s_unpack_sockaddr_in): ditto. (sock_s_unpack_sockaddr_un): ditto. (bsock_local_address): new method BasicSocket#local_address. (bsock_remote_address): new method BasicSocket#remote_address. (addrinfo_initialize): new method AddrInfo#initialize. (addrinfo_inspect): new method AddrInfo#inspect. (addrinfo_afamily): new method AddrInfo#afamily. (addrinfo_pfamily): new method AddrInfo#pfamily. (addrinfo_socktype): new method AddrInfo#socktype. (addrinfo_protocol): new method AddrInfo#protocol. (addrinfo_to_sockaddr): new method AddrInfo#to_sockaddr. (addrinfo_canonname): new method AddrInfo#canonname. (addrinfo_ip_p): new method AddrInfo#ip?. (addrinfo_ipv4_p): new method AddrInfo#ipv4?. (addrinfo_ipv6_p): new method AddrInfo#ipv6?. (addrinfo_unix_p): new method AddrInfo#unix?. (addrinfo_getnameinfo): new method AddrInfo#getnameinfo. (addrinfo_s_getaddrinfo): new method AddrInfo.getaddrinfo. (addrinfo_s_tcp): new method AddrInfo.tcp. (addrinfo_s_udp): new method AddrInfo.udp. (addrinfo_s_unix): new method AddrInfo.unix. (Init_socket): define new class and methods. (sock_getaddrinfo): apply socktype hack regardless of ai_flags. (addrinfo_new): defined. (get_afamily): ditto. (fd_socket_addrinfo): ditto. (io_socket_addrinfo): ditto. (SockAddrStringValue): ditto. (SockAddrStringValuePtr): ditto. (sockaddr_string_value): ditto. (sockaddr_string_value_ptr): ditto. (rb_addrinfo_t): ditto. (addrinfo_mark): ditto. (addrinfo_free): ditto. (addrinfo_s_allocate): ditto. (IS_ADDRINFO): ditto. (check_addrinfo): ditto. (get_addrinfo): ditto. (alloc_addrinfo): ditto. (init_addrinfo): ditto. (addrinfo_new): ditto. (call_getaddrinfo): ditto. (init_addrinfo_getaddrinfo): ditto. (make_inspectname): ditto. (addrinfo_firstonly_new): ditto. (addrinfo_list_new): ditto. (init_unix_addrinfo): ditto. (ai_get_afamily): ditto. * ext/socket/mkconstants.rb: generate intern_protocol_family, intern_socktype and intern_ipproto. [ruby-dev:37692] git-svn-id: http://svn.ruby-lang.org/repos/ruby/trunk@21371 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* * ext/socket/socket.c (ruby_getaddrinfo, ruby_getaddrinfo__aix):nobu2009-01-071-26/+21
| | | | | | | | | constified. * ext/socket/socket.c (ruby_getnameinfo__aix): protoized. git-svn-id: http://svn.ruby-lang.org/repos/ruby/trunk@21361 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* * ext/socket/socket.c (io_call_close, io_close, pair_yield):nobu2009-01-062-2/+3
| | | | | | | | | | unused unless socketpair exists. * ext/socket/getnameinfo.c (getnameinfo): moved conditinally used variable. git-svn-id: http://svn.ruby-lang.org/repos/ruby/trunk@21356 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* * ext/socket/socket.c (rb_getaddrinfo): defined for address lookup without GVL.akr2009-01-041-11/+82
| | | | | | | | | | | (struct getaddrinfo_arg): defined. (nogvl_getaddrinfo): defined. (rb_getnameinfo): defined for name lookup without GVL. (getnameinfo_arg): defined. (nogvl_getnameinfo): defined. git-svn-id: http://svn.ruby-lang.org/repos/ruby/trunk@21319 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* * ext/socket/socket.c (constant_arg): constified.nobu2009-01-042-1/+5
| | | | | | | | | | * ext/socket/socket.c (optname_arg): cygwin does not have IPPROTO_IPV6. * ext/socket/mkconstants.rb (ipv6_optname_to_int): ditto. git-svn-id: http://svn.ruby-lang.org/repos/ruby/trunk@21296 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* * ext/socket/socket.c: redundant #ifdef removed.akr2009-01-031-2/+0
| | | | git-svn-id: http://svn.ruby-lang.org/repos/ruby/trunk@21289 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* * ext/socket/socket.c: don't apply socktype hack [ruby-core:184] forakr2009-01-021-4/+4
| | | | | | | | | | | sock_s_getaddrinfo. (sock_getaddrinfo): add socktype_hack argument. (sock_addrinfo): call sock_getaddrinfo with socktype_hack. (sock_s_getaddrinfo): call sock_getaddrinfo without socktype_hack. [ruby-dev:37674] git-svn-id: http://svn.ruby-lang.org/repos/ruby/trunk@21278 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* * ext/socket/mkconstants.rb: rename family_to_str to intern_family.akr2009-01-022-13/+14
| | | | | | | | | | it returns ID now. * ext/socket/socket.c (ipaddr): use intern_family. git-svn-id: http://svn.ruby-lang.org/repos/ruby/trunk@21272 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* * ext/socket/mkconstants.rb: use ID in the values ofakr2009-01-022-17/+22
| | | | | | | | | | family_to_str_hash. family_to_str returns a VALUE. * ext/socket/socket.c (ipaddr): follow family_to_str change. git-svn-id: http://svn.ruby-lang.org/repos/ruby/trunk@21271 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* * ext/socket/mkconstants.rb: refactored to gather stringizerakr2009-01-021-10/+37
| | | | | | | description. git-svn-id: http://svn.ruby-lang.org/repos/ruby/trunk@21270 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* * ext/socket/mkconstants.rb: make common prefix optional.akr2009-01-021-16/+35
| | | | git-svn-id: http://svn.ruby-lang.org/repos/ruby/trunk@21269 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* * ext/socket/mkconstants.rb: use hash for family_to_str to avoidakr2009-01-022-18/+24
| | | | | | | | | | | linear search. lenp argument removed. * ext/socket/socket.c (ipaddr): call family_to_str without lenp argument. git-svn-id: http://svn.ruby-lang.org/repos/ruby/trunk@21268 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* * ext/socket/mkconstants.rb (gen_int_to_name): don't compare constantsakr2009-01-021-12/+8
| | | | | | | in preprocessor because the constants may be enum. git-svn-id: http://svn.ruby-lang.org/repos/ruby/trunk@21267 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* * ext/socket/mkconstants.rb (gen_int_to_name): add lenp argument.akr2009-01-022-7/+7
| | | | | | | | * ext/socket/socket.c (ipaddr): follow argument change. git-svn-id: http://svn.ruby-lang.org/repos/ruby/trunk@21266 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* * ext/socket/mkconstants.rb: check duplicates.akr2009-01-011-2/+4
| | | | git-svn-id: http://svn.ruby-lang.org/repos/ruby/trunk@21264 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* * ext/socket/socket.c (optname_arg): defined.akr2009-01-012-3/+74
| | | | | | | | | | | | | | (bsock_setsockopt): use optname_arg. (bsock_getsockopt): ditto. * ext/socket/mkconstants.rb: generate so_optname_to_int, ip_optname_to_int, ipv6_optname_to_int, tcp_optname_to_int and udp_optname_to_int. more constants. git-svn-id: http://svn.ruby-lang.org/repos/ruby/trunk@21261 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* * ext/socket/socket.c (constant_arg): extracted from family_arg.akr2009-01-011-53/+19
| | | | | | | | | | (family_arg): use constant_arg. (socktype_arg): ditto. (level_arg): ditto. git-svn-id: http://svn.ruby-lang.org/repos/ruby/trunk@21260 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* * ext/socket/socket.c (level_arg): defined.akr2009-01-012-2/+34
| | | | | | | | | | | (bsock_setsockopt): use level_arg. (bsock_getsockopt): ditto. * ext/socket/mkconstants.rb: generate level_to_int. git-svn-id: http://svn.ruby-lang.org/repos/ruby/trunk@21258 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* * ext/socket/socket.c (family_arg): accept symbols as well.akr2009-01-011-4/+12
| | | | | | | (socktype_arg): ditto. git-svn-id: http://svn.ruby-lang.org/repos/ruby/trunk@21257 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* * ext/socket/socket.c (sock_s_getaddrinfo): use socktype_arg.akr2009-01-011-1/+1
| | | | git-svn-id: http://svn.ruby-lang.org/repos/ruby/trunk@21256 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* * ext/socket/socket.c (family_arg): extracted fromakr2009-01-011-58/+57
| | | | | | | | | | | | | setup_domain_and_type. (socktype_arg): ditto. (udp_init): use family_arg. (sock_s_gethostbyaddr): ditto. (sock_s_getaddrinfo): ditto. (sock_s_getnameinfo): ditto. git-svn-id: http://svn.ruby-lang.org/repos/ruby/trunk@21254 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* * ext/socket/socket.c (sock_s_getnameinfo): use family_to_int.akr2009-01-011-8/+4
| | | | git-svn-id: http://svn.ruby-lang.org/repos/ruby/trunk@21252 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* * ext/socket/mkconstants.rb: check all alias possibility. akr2009-01-011-20/+4
| | | | git-svn-id: http://svn.ruby-lang.org/repos/ruby/trunk@21251 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* * ext/socket/mkconstants.rb: more possible aliases.akr2009-01-011-1/+3
| | | | git-svn-id: http://svn.ruby-lang.org/repos/ruby/trunk@21250 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* * ext/socket/mkconstants.rb: AF_ISO and AF_OSI may be aliased.akr2009-01-011-1/+2
| | | | git-svn-id: http://svn.ruby-lang.org/repos/ruby/trunk@21249 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* * ext/socket/socket.c (sock_s_getaddrinfo): use family_to_int.akr2009-01-011-8/+4
| | | | git-svn-id: http://svn.ruby-lang.org/repos/ruby/trunk@21247 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* * ext/socket/socket.c: include constants.h at top.akr2009-01-011-10/+8
| | | | git-svn-id: http://svn.ruby-lang.org/repos/ruby/trunk@21246 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* * ext/socket/mkconstants.rb: add valp argument for family_to_int andakr2009-01-012-16/+10
| | | | | | | | | | socktype_to_int. * ext/socket/socket.c (setup_domain_and_type): use valp argument. git-svn-id: http://svn.ruby-lang.org/repos/ruby/trunk@21245 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* * ext/socket/mkconstants.rb: generate family_to_str.akr2009-01-012-23/+50
| | | | | | | | * ext/socket/socket.c (ipaddr): use family_to_str. git-svn-id: http://svn.ruby-lang.org/repos/ruby/trunk@21244 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* * ext/socket/mkconstants.rb: generate socktype_to_int.akr2009-01-012-35/+29
| | | | | | | | * ext/socket/socket.c (setup_domain_and_type): use socktype_to_int. git-svn-id: http://svn.ruby-lang.org/repos/ruby/trunk@21243 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* * ext/socket/socket.c (setup_domain_and_type): initialize ptr.akr2009-01-011-1/+2
| | | | git-svn-id: http://svn.ruby-lang.org/repos/ruby/trunk@21242 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* * ext/socket/mkconstants.rb: refine family_to_int.akr2009-01-011-5/+24
| | | | git-svn-id: http://svn.ruby-lang.org/repos/ruby/trunk@21241 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* * ext/socket/mkconstants.rb: generate family_to_int().akr2009-01-012-47/+36
| | | | | | | | * ext/socket/socket.c (setup_domain_and_type): use family_to_int. git-svn-id: http://svn.ruby-lang.org/repos/ruby/trunk@21240 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* * ext/socket/mkconstants.rb: generate init_constants function.akr2009-01-012-1/+7
| | | | | | | | * ext/socket/socket.c (Init_socket): call init_constants. git-svn-id: http://svn.ruby-lang.org/repos/ruby/trunk@21238 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* * ext/socket/mkconstants.rb (Socket::AF_INET6): moved from socket.c.akr2009-01-012-7/+16
| | | | | | | (Socket::PF_INET6): ditto. git-svn-id: http://svn.ruby-lang.org/repos/ruby/trunk@21237 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* * ext/socket/mkconstants.rb: use erb.akr2009-01-011-20/+37
| | | | git-svn-id: http://svn.ruby-lang.org/repos/ruby/trunk@21225 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* * ext/socket/mkconstants.rb: add -o option.akr2009-01-012-2/+30
| | | | | | | | * ext/socket/depend: use mkconstants.rb with -o option. git-svn-id: http://svn.ruby-lang.org/repos/ruby/trunk@21224 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* * ext/socket/socket.c (sock_s_socketpair): yield if a block is given.akr2008-12-311-2/+26
| | | | | | | | | | (io_call_close): defined. (io_close): defined. (pair_yield): defined. git-svn-id: http://svn.ruby-lang.org/repos/ruby/trunk@21216 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* * ext/socket/mkconstants.rb: use sock_define_uconst for INADDR_*akr2008-12-302-2/+16
| | | | | | | | | | | constants because Socket::INADDR_LOOPBACK should be 0x7f000001 instead of -0xffffff. * ext/socket/socket.c (sock_define_uconst): defined. git-svn-id: http://svn.ruby-lang.org/repos/ruby/trunk@21202 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* * ext/socket/socket.c (s_recvfrom_nonblock): revert r21162.matz2008-12-291-6/+3
| | | | git-svn-id: http://svn.ruby-lang.org/repos/ruby/trunk@21167 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* * ext/socket/socket.c (s_recvfrom_nonblock): fixed awesome typo.matz2008-12-291-1/+1
| | | | | | sorry. git-svn-id: http://svn.ruby-lang.org/repos/ruby/trunk@21164 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* * ext/socket/socket.c (s_recvfrom_nonblock): default maxlen to bematz2008-12-291-2/+7
| | | | | | | 65536. suggested by akr in [ruby-core:20918]. response to feature request #936 in [ruby-core:20917]. git-svn-id: http://svn.ruby-lang.org/repos/ruby/trunk@21162 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* * ext/socket/socket.c (unix_recv_io): relax msg_controllen errorakr2008-12-171-2/+7
| | | | | | | | check. git-svn-id: http://svn.ruby-lang.org/repos/ruby/trunk@20847 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* * ext/socket/socket.c (sock_getaddrinfo): should have updated formatz2008-11-291-1/+1
| | | | | | Mac OS X. a patch from Shumpei Akai in [ruby-dev:37234] git-svn-id: http://svn.ruby-lang.org/repos/ruby/trunk@20390 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* * ext/socket/socket.c (sock_s_getaddrinfo): refactored to removematz2008-11-281-37/+18
| | | | | | code duplication regarding getaddrinfo. git-svn-id: http://svn.ruby-lang.org/repos/ruby/trunk@20387 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* * ext/socket/socket.c (sock_s_getservbyport): check if the port range.nobu2008-10-231-0/+4
| | | | | | | [ruby-core:19460] git-svn-id: http://svn.ruby-lang.org/repos/ruby/trunk@19898 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* * ext/socket/socket.c (sock_s_getservbyname): unuse unnecessarynobu2008-10-231-7/+7
| | | | | | | object. git-svn-id: http://svn.ruby-lang.org/repos/ruby/trunk@19896 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* * ext/socket/socket.c (sock_s_getservbyport): the port should benobu2008-10-231-4/+6
| | | | | | | | converted before the proto so that the #to_int of the former cannot alter the latter. git-svn-id: http://svn.ruby-lang.org/repos/ruby/trunk@19895 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* * ext/socket/socket.c (sock_s_getservbyport): cast to get rid ofusa2008-10-231-1/+1
| | | | | | | | warning. git-svn-id: http://svn.ruby-lang.org/repos/ruby/trunk@19894 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* * ext/socket/socket.c (sock_s_getservbyport): port should bematz2008-10-221-1/+1
| | | | | | network byte order. a patch from Dave Thomas in [ruby-core:19454]. git-svn-id: http://svn.ruby-lang.org/repos/ruby/trunk@19893 b2dd03c8-39d4-4d8f-98ff-823fe69b080e