akr
352dcd9ee7
* test/socket/test_addrinfo.rb: use AddrInfo.getaddrinfo to generate
...
IPv6 address. AddrInfo.ip generates IPv4 address for IPv4 mapped
IPv6 address if --with-lookup-order-hack=INET.
[ruby-dev:37868]
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@21968 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2009-02-02 10:59:17 +00:00
akr
5ad05f37a5
* ext/socket/socket.c (sock_initialize): make 3rd argument, protocol,
...
optional.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@21950 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2009-02-02 05:55:56 +00:00
akr
61fc0c6cf4
* 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
2009-02-02 02:51:02 +00:00
akr
ef9206bbea
* ext/socket/rubysocket.h (rb_cSockOpt): declared.
...
(sockopt_new): ditto.
(Init_sockopt): ditto.
* ext/socket/init.c (Init_socket_init): call Init_sockopt.
* ext/socket/depend: add dependency for option.o
* ext/socket/mkconstants.rb: generate intern_level, intern_so_optname,
intern_ip_optname, intern_ipv6_optname, intern_tcp_optname,
intern_udp_optname and intern_scm_optname.
* ext/socket/extconf.rb: add option.o.
* ext/socket/basicsocket.c (bsock_setsockopt): accept Socket::Option
object.
(bsock_getsockopt): return Socket::Option object.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@21936 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2009-02-02 01:53:02 +00:00
akr
f1137963e3
* ext/socket/raddrinfo.c (addrinfo_ipv4_private_p): new method.
...
(addrinfo_ipv4_loopback_p): ditto.
(addrinfo_ipv4_multicast_p): ditto.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@21928 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2009-02-01 12:28:50 +00:00
akr
849e730f15
* ext/socket/raddrinfo.c (addrinfo_ipv6_unspecified_p): new method.
...
(addrinfo_ipv6_loopback_p): ditto.
(addrinfo_ipv6_multicast_p): ditto.
(addrinfo_ipv6_linklocal_p): ditto.
(addrinfo_ipv6_sitelocal_p): ditto.
(addrinfo_ipv6_v4mapped_p): ditto.
(addrinfo_ipv6_v4compat_p): ditto.
(addrinfo_ipv6_mc_nodelocal_p): ditto.
(addrinfo_ipv6_mc_linklocal_p): ditto.
(addrinfo_ipv6_mc_sitelocal_p): ditto.
(addrinfo_ipv6_mc_orglocal_p): ditto.
(addrinfo_ipv6_mc_global_p): ditto.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@21919 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2009-01-31 11:09:51 +00:00
akr
efdef4dbe2
* ext/socket/socket.c (socket_s_ip_address_list): renamed from
...
socket_s_list_ip_address. [ruby-dev:37806]
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@21770 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2009-01-25 07:36:45 +00:00
akr
bd3cdcf394
* ext/socket/socket.c (socket_s_list_ip_address): new method.
...
(sockaddr_obj): new function.
* ext/socket/rubysocket.h: include ifaddrs.h, sys/ioctl.h,
sys/sockio.h, net/if.h if available.
(addrinfo_new): declared.
* ext/socket/raddrinfo.c (addrinfo_new): exported.
* ext/socket/extconf.rb: check ifaddrs.h, sys/ioctl.h, sys/sockio.h,
net/if.h and getifaddrs.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@21699 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2009-01-20 11:19:09 +00:00
akr
db881044bc
* ext/socket/raddrinfo.c (addrinfo_inspect_sockaddr): new
...
method AddrInfo#inspect_sockaddr.
(inspect_sockaddr): extracted from addrinfo_inspect.
(addrinfo_inspect): use inspect_sockaddr.
(Init_addrinfo): define the new method.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@21648 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2009-01-18 08:03:24 +00:00
akr
d620500dda
* ext/socket/raddrinfo.c (addrinfo_ip_address): new method
...
AddrInfo#ip_address.
(addrinfo_ip_port): new method AddrInfo#ip_port.
(Init_addrinfo): define the methods above.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@21647 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2009-01-18 07:47:35 +00:00
akr
86aa5043d8
* ext/socket/raddrinfo.c (addrinfo_mdump): new method.
...
(addrinfo_mload): new method.
(Init_addrinfo): define the method above.
* ext/socket/constants.c (constant_arg): str_to_int's first argument
constified.
* ext/socket/mkconstants.rb (gen_name_to_int_decl): generated
function's first argument constified.
(gen_name_to_int_func_in_guard): ditto.
(ipproto_to_int): generated.
* ext/socket/rubysocket.h (IS_IP_FAMILY): moved from raddrinfo.c.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@21643 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2009-01-17 18:14:34 +00:00
akr
e2f8800667
* ext/socket/socket.c (sock_s_getnameinfo): accept AddrInfo object.
...
* ext/socket/raddrinfo.c (rb_check_sockaddr_string_type): defined.
* ext/socket/rubysocket.h (rb_check_sockaddr_string_type): declared.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@21641 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2009-01-17 16:39:03 +00:00
akr
29aff19f1a
extract TestBasicSocket from test_socket.rb.
...
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@21626 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2009-01-17 09:39:14 +00:00
akr
aaddab6dea
* ext/socket/socket.c (addrinfo_s_ip): new method AddrInfo.ip.
...
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@21579 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2009-01-15 17:06:37 +00:00
akr
91ff87c05d
* ext/socket/socket.c (sock_s_unpack_sockaddr_in): check too short
...
sockaddr.
(sock_s_unpack_sockaddr_un): ditto.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@21469 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2009-01-12 16:00:03 +00:00
akr
73757753ae
* ext/socket/socket.c (addrinfo_ip_unpack): new method
...
AddrInfo#ip_unpack.
(addrinfo_unix_path): new method AddrInfo#unix_path.
(Init_socket): define above methods.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@21468 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2009-01-12 14:58:25 +00:00
akr
839214e1e6
add test for AddrInfo.
...
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@21450 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2009-01-12 08:52:37 +00:00
akr
55b2bf4dec
* ext/socket/socket.c (rb_cAddrInfo): new class AddrInfo.
...
(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: svn+ssh://ci.ruby-lang.org/ruby/trunk@21371 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2009-01-07 14:20:15 +00:00
akr
0cd078e358
don't get a name for anonymous Unix socket.
...
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@21346 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2009-01-05 13:40:42 +00:00
akr
775d5d8f03
* ext/socket/mkconstants.rb: make common prefix optional.
...
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@21269 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2009-01-02 06:33:24 +00:00
akr
aa0ae0d3b6
* ext/socket/socket.c (optname_arg): defined.
...
(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: svn+ssh://ci.ruby-lang.org/ruby/trunk@21261 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2009-01-01 17:40:41 +00:00
akr
12b443d02f
IPv6 test removed.
...
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@21259 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2009-01-01 16:22:15 +00:00
akr
59556a0849
* ext/socket/socket.c (level_arg): defined.
...
(bsock_setsockopt): use level_arg.
(bsock_getsockopt): ditto.
* ext/socket/mkconstants.rb: generate level_to_int.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@21258 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2009-01-01 16:16:08 +00:00
akr
c6bbf28a9f
* ext/socket/socket.c (family_arg): accept symbols as well.
...
(socktype_arg): ditto.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@21257 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2009-01-01 15:59:10 +00:00
akr
f0dd0577b0
* ext/socket/socket.c (family_arg): extracted from
...
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: svn+ssh://ci.ruby-lang.org/ruby/trunk@21254 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2009-01-01 15:15:31 +00:00
akr
e924cabede
* ext/socket/socket.c (sock_s_getnameinfo): use family_to_int.
...
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@21252 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2009-01-01 12:26:57 +00:00
akr
e485a566ed
* ext/socket/socket.c (sock_s_getaddrinfo): use family_to_int.
...
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@21247 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2009-01-01 11:47:55 +00:00
akr
0c838b4947
* ext/socket/mkconstants.rb: generate family_to_int().
...
* ext/socket/socket.c (setup_domain_and_type): use family_to_int.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@21240 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2009-01-01 07:49:31 +00:00
akr
ddedc6f125
* ext/socket/socket.c (sock_s_socketpair): yield if a block is given.
...
(io_call_close): defined.
(io_close): defined.
(pair_yield): defined.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@21216 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2008-12-31 15:05:16 +00:00
usa
a01e1cfb5b
* test/socket/test_tcp.rb (test_recvfrom): already can run on mswin32.
...
* test/socket/test_tcp.rb (test_recvfrom, test_encoding): use IP address instead
of host name.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@20442 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2008-12-02 06:14:37 +00:00
usa
14c06bd441
* test/socket/test_tcp.rb (test_recvfrom, test_encoding): shouldn't assume
...
that th is not nil.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@20440 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2008-12-02 06:02:23 +00:00
shugo
5545c5aafa
* ext/socket/socket.c (init_sock): sockets should be binmode.
...
* test/socket/test_tcp.rb (test_encoding): ditto.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@19816 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2008-10-17 02:50:43 +00:00
mame
a0895f84b0
* test/socket/test_tcp.rb (test_recvfrom): replace an irrelevant test
...
for old behavior.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@18191 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2008-07-23 14:25:32 +00:00
akr
895c7cb3c4
add an assertion.
...
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@17746 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2008-06-30 14:05:20 +00:00
akr
cac79cc388
add a test for [ruby-dev:34619].
...
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@17742 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2008-06-30 13:50:13 +00:00
akr
68543f3092
use ML ref. for assertion message.
...
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@13958 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2007-11-18 07:18:56 +00:00
matz
326659c0bf
* test/socket/test_socket.rb: update not to use 1.8 assignment to
...
external local variable in the block parameters. [ruby-dev:32251]
* test/strscan/test_stringscanner.rb: avoid $KCODE, and use
String#force_encoding(). [ruby-dev:32251]
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@13922 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2007-11-14 07:03:39 +00:00
matz
1eee78b876
* eval.c (rb_f_send): allow send/__send__ to call methods of all
...
visibility again. we no longer provide __send, __send!.
* eval.c (rb_invoke_method): new method to honor private
visibility. if it's invoked in a function call style, it calls
private methods as well (previous 1.9 send behavior).
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@13824 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2007-11-04 20:36:20 +00:00
akr
228728325e
UNIXServer.new("a\0b") test removed because
...
UNIXServer.new accepts NUL as abstruct unix sockets.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@13552 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2007-09-28 15:58:34 +00:00
usa
1588a79069
* test/socket/test_tcp.rb (test_recvfrom): same as mswin32 on mswin64.
...
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@13328 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2007-09-01 07:27:26 +00:00
matz
4e183b11ac
* test/ruby/test_dir.rb (TestDir::setup): ?c now makes a string.
...
* lib/test/unit/autorunner.rb (Test::Unit::AutoRunner::initialize):
initialize @workdir to stop warning.
* lib/drb/drb.rb (DRb::DRbServer::InvokeMethod::perform_without_block):
replace funcall by send!. other files in the distribution as well.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@13244 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2007-08-24 09:57:53 +00:00
ko1
a3e1b1ce7e
* Merge YARV
...
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@11439 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2006-12-31 15:02:22 +00:00
akr
b8d19fa683
don't compare struct sockaddr directly.
...
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@10591 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2006-07-24 07:21:45 +00:00
akr
fd7f570cb2
* test/socket/test_unix.rb: disabled on cygwin.
...
reported by Kouhei Yanagita. [ruby-dev:29080]
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@10585 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2006-07-23 14:03:28 +00:00
akr
8a15f88901
add a note for cygwin empty UDP packet problem.
...
This commit is a result of hacks at the CodeFest Akihabara 2006 hosted by FSIJ.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@10443 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2006-07-01 07:27:55 +00:00
akr
ef908a25d8
* test/socket/test_nonblock.rb: add timeout to send/receive
...
an empty UDP packet.
[ruby-dev:28820]
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@10441 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2006-07-01 06:23:21 +00:00
akr
91ea1529c6
* test/socket/test_unix.rb: test_seqpacket_pair removed.
...
[ruby-dev:28846]
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@10421 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2006-06-28 10:07:52 +00:00
akr
b73e6801e3
* ext/socket/socket.c (bsock_recv_nonblock): new method
...
BasicSocket#recv_nonblock.
(udp_recvfrom_nonblock): renamed from ip_recvfrom_nonblock.
IPSocket#recvfrom_nonblock is moved to UDPSocket#recvfrom_nonblock.
(unix_recvfrom_nonblock): removed.
UNIXSocket#recvfrom_nonblock is removed.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@10403 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2006-06-26 16:39:59 +00:00
akr
429cb7c025
revert sock_sysaccept addition to [ruby-dev:28861].
...
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@10399 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2006-06-26 15:09:45 +00:00
akr
a0261afccd
getsockname returns "" on MacOS X
...
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@10230 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2006-06-07 10:57:26 +00:00