Граф коммитов

755 Коммитов

Автор SHA1 Сообщение Дата
akr c16f98ab0a * io.c (rb_maygvl_fd_fix_cloexec): renamed from fd_set_cloexec.
* internal.h (rb_maygvl_fd_fix_cloexec): declared.

* ext/socket/init.c (cloexec_accept): use rb_maygvl_fd_fix_cloexec.
  (rsock_s_accept_nonblock): use rb_update_max_fd.
  (rsock_s_accept): use rb_update_max_fd.



git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@33598 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2011-11-01 03:04:03 +00:00
akr 5dbc3d1e79 * ext/socket/init.c (cloexec_accept): new function to use accept4 if
available.
  (rsock_s_accept_nonblock): use cloexec_accept.
  (accept_blocking): ditto.

* ext/socket/extconf.rb: check accept4.



git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@33596 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2011-10-31 23:26:19 +00:00
akr 7ae60a6b0d * ext/socket/ancdata.c (nogvl_recvmsg_func): use MSG_CMSG_CLOEXEC if
available.

* ext/socket/unixsocket.c (recvmsg_blocking): ditto.



git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@33594 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2011-10-31 22:32:49 +00:00
akr ee5ae134dd * ext/socket/socket.c (rsock_socketpair): use SOCK_CLOEXEC if
available.



git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@33593 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2011-10-31 21:01:18 +00:00
akr 8ce4a284e4 * ext/socket/socket.c (rsock_socketpair): extracted from
rsock_sock_s_socketpair.


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@33590 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2011-10-31 14:49:57 +00:00
akr 1a8fbff3db * ext/socket/init.c (rsock_socket): use SOCK_CLOEXEC if available.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@33589 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2011-10-31 14:38:50 +00:00
akr 1a70dfe6f4 * include/ruby/intern.h (rb_fd_fix_cloexec): renamed from
rb_fd_set_cloexec.

* io.c: follow the above renaming.

* ext/pty/pty.c: ditto.

* ext/socket/init.c: ditto.

* ext/socket/socket.c: ditto.

* ext/socket/ancdata.c: ditto.

* ext/socket/unixsocket.c: ditto.


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@33585 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2011-10-31 12:49:16 +00:00
akr b574a4d4a1 * include/ruby/intern.h (rb_fd_set_cloexec): declared.
* io.c (rb_fd_set_cloexec): new function.
  (ruby_dup): call rb_fd_set_cloexec to set close-on-exec flag.
  (rb_sysopen_internal): ditto.
  (rb_pipe): ditto.
  (io_reopen): ditto.
  (io_cntl): ditto.

* process.c (rb_f_exec): change the default :close_others option to
  true.
  (rb_f_system): ditto.
  (move_fds_to_avoid_crash): call rb_fd_set_cloexec to set
  close-on-exec flag.
  (ruby_setsid): ditto.
  (rb_daemon): ditto.

* thread_pthread.c (rb_thread_create_timer_thread): call
  rb_fd_set_cloexec to set close-on-exec flag.

* ruby.c (load_file_internal): ditto.

* file.c (rb_file_s_truncate): ditto.
  (file_load_ok): ditto.

* random.c (fill_random_seed): ditto.

* ext/pty/pty.c (chfunc): ditto.
  (get_device_once): ditto.

* ext/openssl/ossl_bio.c (ossl_obj2bio): ditto.

* ext/socket/init.c (rsock_socket): ditto.
  (rsock_s_accept_nonblock): ditto.
  (rsock_s_accept): ditto.

* ext/socket/socket.c (rsock_sock_s_socketpair): ditto.

* ext/socket/ancdata.c (discard_cmsg): ditto.
  (make_io_for_unix_rights): ditto.

* ext/socket/unixsocket.c (unix_recv_io): ditto.

* ext/io/console/console.c (console_dev): ditto.

[ruby-core:38140] [Feature #5041]


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@33507 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2011-10-22 09:58:15 +00:00
drbrain 1297942451 * ext/socket: Make Socket documentation appear. Add documentation for
Socket, TCPServer, SOCKSSocket.  Patch by Sylvain Daubert.
  [Ruby 1.9 - Feature #5182]


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@32977 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2011-08-15 23:08:39 +00:00
akr 5622574976 * ext/socket/ipsocket.c (init_inetsock_internal): use SOMAXCONN for
listen backlog.

* ext/socket/unixsocket.c (rsock_init_unixsock): ditto.

* ext/socket/lib/socket.rb (Addrinfo#listen): ditto.
  (Socket.tcp_server_sockets_port0): ditto.

* ext/socket/mkconstants.rb: define SOMAXCONN as 5 if not available.



git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@32939 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2011-08-11 23:20:15 +00:00
akr 6c0e64dee5 * ext/socket/lib/socket.rb: fix argument check in the previous commit.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@32908 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2011-08-10 14:04:23 +00:00
akr 5515afbf8f * ext/socket/lib/socket.rb (Socket.tcp): add :connect_timeout option.
(Addrinfo#connect_from): add :timeout option.
  (Addrinfo#connect): ditto.
  (Addrinfo#connect_to): ditto.


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@32906 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2011-08-10 13:13:57 +00:00
akr 1054b79609 * ext/socket/lib/socket.rb (udp_server_sockets): unused variable
removed.
  patch by Jeremy Evans.  [ruby-core:38600]


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@32748 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2011-07-29 22:40:41 +00:00
akr 14871a3786 * ext/socket/mkconstants.rb: fix typos.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@32737 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2011-07-29 11:52:28 +00:00
akr b6ee29c9c0 * ext/socket/mkconstants.rb: use whitespaces as a separator.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@32736 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2011-07-29 11:29:49 +00:00
akr 8ef6a22144 * ext/socket/mkconstants.rb: add documents for constants.
patch by Eric Hodel.  [ruby-core:37853] [Bug #4989]


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@32735 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2011-07-29 10:03:25 +00:00
akr 29f354df63 * ext/socket/extconf.rb: refine the recvmsg test.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@32657 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2011-07-24 11:35:56 +00:00
akr 0283c3d0bb * ext/socket/extconf.rb: fix the recvmsg test.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@32656 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2011-07-24 11:04:11 +00:00
akr f5b9de7502 * ext/socket/extconf.rb: test recvmsg allocates file descriptors for
fd passing even with MSG_PEEK.

* ext/socket/ancdata.c: use the above test result.



git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@32655 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2011-07-23 23:57:50 +00:00
akr 2bcd502a71 * io.c (rb_update_max_fd): validate fd.
* ext/socket/rubysocket.h (rsock_discard_cmsg_resource): add
  msg_peek_p argument for the declaration.

* ext/socket/ancdata.c (discard_cmsg): add msg_peek_p argument.
  assume FreeBSD, NetBSD and MacOS X doesn't generate passed fd
  when MSG_PEEK. 
  (rsock_discard_cmsg_resource): add msg_peek_p argument.
  (bsock_recvmsg_internal): call rsock_discard_cmsg_resource with
  msg_peek_p argument.

* ext/socket/unixsocket.c (unix_recv_io): call
  rsock_discard_cmsg_resource with msg_peek_p argument.


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@32638 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2011-07-23 08:13:37 +00:00
akr 272322bede * ext/socket/ancdata.c (discard_cmsg): workaround for MacOS X Lion.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@32598 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2011-07-21 12:02:45 +00:00
akr b41ccc4a9c * include/ruby/intern.h (rb_update_max_fd): declaration moved from
internal.h.

* file.c: ditto.

* io.c: call rb_update_max_fd for each new fds.

* process.c: ditto.

* random.c: ditto.

* ruby.c: ditto.

* ext/io/console/console.c: ditto.

* ext/openssl/ossl_bio.c: ditto.

* ext/pty/pty.c: ditto.

* ext/socket/init.c: ditto.

* ext/socket/socket.c: ditto.

* ext/socket/ancdata.c: ditto.

* ext/socket/unixsocket.c: ditto.



git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@32587 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2011-07-20 13:26:10 +00:00
kosaki dc8f58f6e8 * ext/socket/depend (SOCK_HEADERS): use $(top_srcdir) instaed of
$(topdir). sorry!



git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@32202 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2011-06-22 12:30:22 +00:00
kosaki 908baefe7d * internal.h: move rb_thread_io_blocking_region() declaration
from intern.h to internal.h. It's still experimental API and
  need more discussion. [ruby-dev:43698]
* include/ruby/intern.h: ditto.

* ext/socket/rubysocket.h: include internal.h.
* ext/socket/depend: add internal.h dependency.
* ext/socket/extconf.rb: add $INCFLAGS to topdir.



git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@32187 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2011-06-21 12:31:17 +00:00
akr 94b65c9d3f update doc.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@32147 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2011-06-17 14:53:56 +00:00
akr 9778737d7b * ext/socket/unixsocket.c (unix_send_io): race condition fixed.
(unix_recv_io): ditto.
  fixed by Eric Wong.  [ruby-core:35574]

* test/socket/test_unix.rb: test added for above problem.


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@32062 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2011-06-13 14:11:23 +00:00
nobu 3a47cf3395 * remove trailing spaces.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@31573 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2011-05-15 11:55:52 +00:00
drbrain 615e7987ca * object.c (rb_obj_equal): Add documentation. Patch by Vincent Batts.
[Ruby 1.9 - Bug #4664]
	* lib/rexml:  ditto
	* lib/mkmf.rb:  ditto
	* ext/socket/lib/socket.rb:  ditto


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@31525 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2011-05-11 22:56:13 +00:00
drbrain 83d7aca7f6 * Various .document files: Update .document files to match files which
have documentation.


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@31524 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2011-05-11 22:31:17 +00:00
kosaki 9851b0ce2f * ext/socket/init.c (wait_connectable): fix error handling code.
RB_WAITFD_OUT is turned on even though an error occur.



git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@31424 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2011-05-04 02:44:28 +00:00
kosaki 82b2e80120 * ext/socket/init.c (wait_connectable): use rb_wait_for_single_fd().
The patch was written by Eric Wong. [Ruby 1.9 - Feature #4531]

* ext/socket/init.c (try_wait_connectable, wait_connectable_ensure):
  removed.



git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@31422 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2011-05-04 01:12:04 +00:00
kosaki 49b4510cd1 * ext/socket/init.c (rsock_connect): add to care EINTR. based
on a patch from Eric Wong at [ruby-core:35621][Bug #4555]



git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@31405 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2011-05-01 15:38:53 +00:00
kosaki 2d2544c8e6 * include/ruby/intern.h (rb_thread_select): mark as deprecated.
* ext/io/wait/wait.c (wait_readable): use rb_thread_fd_select
  instead of rb_thread_select.
* ext/socket/init.c (wait_connectable0): ditto.
* ext/readline/readline.c (readline_event): ditto.
* io.c (rb_io_wait_readable, wait_readable, rb_io_wait_writable,
  wait_writable): ditto.



git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@31394 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2011-04-30 11:15:15 +00:00
akr d8ac44fcfc * ext/socket/raddrinfo.c: parenthesize macro arguments.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@31207 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2011-03-28 20:20:33 +00:00
akr 94a5335148 * ext/socket/ipsocket.c: parenthesize macro arguments.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@31190 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2011-03-27 14:16:50 +00:00
akr c65953cd03 * ext/socket/getaddrinfo.c: parenthesize macro arguments.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@31185 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2011-03-26 06:16:42 +00:00
akr bc843e4b7d * ext/socket/ipsocket.c (init_inetsock_internal): raise an error on
listen(2) failure.
  reported by Xavier Shay.  [ruby-core:35505]


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@31115 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2011-03-16 11:42:03 +00:00
nobu 58b325366d * thread.c (rb_thread_io_blocking_region): new function to run
blocking region with GIL released, for fd.
* thread.c (rb_thread_fd_close): implement.  [ruby-core:35203]

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@30852 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2011-02-12 05:44:23 +00:00
akr 011bcd47b4 * ext/socket/mkconstants.rb: add IF_NAMESIZE.
add a default for INET6_ADDRSTRLEN.


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@30392 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2010-12-26 16:31:01 +00:00
akr 2316cd4d0c * ext/socket/mkconstants.rb: define INET_ADDRSTRLEN as 16 if not
available.  fix compilation error on mswin32-60.  reported by nobu.


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@30386 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2010-12-26 11:54:18 +00:00
akr 9694fa9517 fix a typo.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@30385 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2010-12-26 10:43:53 +00:00
akr 6446be302b * ext/socket/option.c: define IFNAMSIZ if not available.
fix compilation error on mingw32.  reported by nobu.


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@30384 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2010-12-26 10:38:44 +00:00
akr bcd39a0851 update comment.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@30383 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2010-12-26 04:26:10 +00:00
akr 326ec51f4e * ext/socket/option.c (rb_if_indextoname): new function to abstract
environments without if_indextoname.
  (inspect_ipv6_multicast_if): new function to inspect
  IPV6_MULTICAST_IF.
  Socket::Option.new(:INET6, :IPV6, :MULTICAST_IF,
  [2].pack("I!")).inspect is
  "#<Socket::Option: INET6 IPV6 MULTICAST_IF eth0>".


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@30378 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2010-12-26 00:25:14 +00:00
naruse acc69509cb This ifdef should be useless after r30374.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@30376 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2010-12-25 17:37:36 +00:00
kosaki 6bd4afaab8 * ext/socket/extconf.rb: Fix build error which was introduced r30372.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@30374 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2010-12-25 17:21:08 +00:00
usa 7c9fbd226b * ext/socket/extconf.rb: check the existence of if_indextoname().
* ext/socket/option.c: yesterday's akr's commits destroyed the build of
  some unrelated platforms (such as Windows).


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@30372 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2010-12-25 16:41:13 +00:00
akr 01da08a29c * ext/socket/option.c (inspect_ipv4_add_drop_membership): new function
to inspect struct ip_mreq and struct ip_mreqn for
  IP_ADD_MEMBERSHIP and IP_DROP_MEMBERSHIP.
  Socket::Option.new(:INET, :IP, :ADD_MEMBERSHIP,
  [239,255,99,81, 0,0,0,0].pack("CCCCCCCC")).inspect is now
  "#<Socket::Option: INET IP ADD_MEMBERSHIP 239.255.99.81 0.0.0.0>".
  (inspect_ipv4_multicast_if): new function to inspect struct in_addr
  and struct ip_mreqn for IP_MULTICAST_IF.
  Socket::Option.new(:INET, :IP, :MULTICAST_IF,
  [192,168,0,7].pack("CCCC")).inspect is now
  "#<Socket::Option: INET IP MULTICAST_IF 192.168.0.7>".

* ext/socket/extconf.rb: check struct ip_mreq and struct ip_mreqn.



git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@30371 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2010-12-25 14:35:28 +00:00
akr 1b40391d3d * ext/socket/option.c (inspect_ipv6_mreq): new function to inspect
struct ipv6_mreq for IPV6_JOIN_GROUP and IPV6_LEAVE_GROUP.
  Socket::Option.new(:INET6, :IPV6, :JOIN_GROUP,
  [0xff12,0,0,0,0,0,0,1, 2].pack("nnnnnnnnI!")).inspect is now:
  "#<Socket::Option: INET6 IPV6 JOIN_GROUP ff12::1 eth0>"

* ext/socket/extconf.rb: check struct ipv6_mreq.



git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@30361 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2010-12-25 09:29:24 +00:00
akr a048436461 update doc.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@30330 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2010-12-23 23:52:42 +00:00
nobu 8a7aad9952 * fix type warnings.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@29745 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2010-11-11 12:30:39 +00:00
usa f6150aa7df * ext/socket/extconf.rb: win64 is just same with win32 about socket.
notice: but wince is not same.


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@29666 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2010-11-01 15:26:58 +00:00
nobu b736c9b5dc * ext/socket/init.c (rsock_init_sock): conditionally used variable.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@29464 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2010-10-12 14:54:02 +00:00
wanabe e63c5b3a62 * ext/socket/raddrinfo.c (init_addrinfo, inspect_sockaddr): suppress
warnings.  see [ruby-core:31932].

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@29323 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2010-09-23 12:42:49 +00:00
nobu 3f4a73f0e1 * ext/socket/raddrinfo.c (ruby_getaddrinfo__darwin): suppress a
warning.



git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@29255 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2010-09-14 23:26:03 +00:00
kanemoto 54886d0876 suppress a warning.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@29245 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2010-09-13 16:02:35 +00:00
nobu 4c916ec8b7 * ext/socket/rubysocket.h (__DARWIN_ALIGNBYTES): workaround of a
bug in system header of darwin 9.  [ruby-core:32341]

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@29242 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2010-09-13 10:56:52 +00:00
akr a75a467102 * ext/socket/option.c (inspect_peercred): support OpenBSD-current.
patch by Jeremy Evans.  [ruby-core:32240]


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@29206 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2010-09-09 17:19:52 +00:00
akr 85198c5e3c * ext/socket/ancdata.c (ancillary_timestamp): fix a constant type.
* ext/socket/raddrinfo.c (get_afamily): suppress a warning.



git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@29053 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2010-08-19 10:54:56 +00:00
nobu c53664c84d .cvsignore: have not been used already. [Bug #3468]
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@28898 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2010-08-07 05:43:21 +00:00
shyouhei a52dd6cc5c * ext/socket/raddrinfo.c (rb_getaddrinfo): according to my valgrind output this variable should be initialized beforehand.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@28688 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2010-07-20 04:00:46 +00:00
nobu 25b9eb5e57 * include/ruby/ruby.h (rb_data_type_t): restructured. [ruby-dev:41862]
add parent member.

* error.c (rb_typeddata_inherited_p): new function.

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@28676 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2010-07-18 07:31:54 +00:00
akr f77d8722c2 * ext/socket/raddrinfo.c (ruby_getaddrinfo__darwin): the workaround
for Mac OS X moved from rsock_getaddrinfo.


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@28414 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2010-06-23 21:24:31 +00:00
akr 512a35693b * ext/socket/raddrinfo.c (str_is_number): renamed from str_isnumber to
avoid confusion to str_isnumber in ext/socket/getaddrinfo.c.


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@28410 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2010-06-23 15:05:25 +00:00
akr 89f2c44d37 * ext/socket/raddrinfo.c: don't use __P.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@28408 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2010-06-23 13:56:20 +00:00
akr eab33b597d add a comment.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@28402 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2010-06-23 12:35:04 +00:00
akr acb8b3f7a9 * ext/socket/raddrinfo.c (ruby_getaddrinfo__darwin): new workaround for
getaddrinfo problem on Mac OS X Snow Leopard.  [ruby-core:29427]
  patch by Wataru Kimura.  [ruby-core:30842]


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@28401 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2010-06-23 12:25:07 +00:00
naruse 0de2d84af8 Clean warnings: unused variables.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@28398 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2010-06-23 05:32:46 +00:00
akr 7d8d8c4f59 * ext/socket/lib/socket.rb: suppress warnings.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@28388 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2010-06-22 13:41:16 +00:00
nobu 87af442f94 * suppress warnings.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@27944 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2010-05-21 09:10:23 +00:00
usa 61086883b6 * ext/socket/extconf.rb: mswin/mingw ruby has socketpair(), but it's
not exist as such name in ruby static library, so mkmf.rb cannot
  find it.


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@27893 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2010-05-19 10:59:47 +00:00
usa 851a023843 * ext/socket/extconf.rb: test all IPPROTO_* constants for recent Win32
SDK.


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@27746 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2010-05-12 02:40:09 +00:00
akr 01cd3467fb * ext/socket/extconf.rb: test IPPROTO_IP and IPPROTO_IPV6 constants.
* ext/socket/mkconstants.rb: define macros for enum.

  [ruby-dev:38849]



git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@27742 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2010-05-11 14:10:34 +00:00
akr 7eb6e562e5 * ext/socket/lib/socket.rb (BasicSocket#connect_address): MacOS X 10.6
returns "::ffff:a.b.c.d" for IPv4-mapped IPv6 address.
  [ruby-dev:41215] patch by Tomoyuki Chikanaga.


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@27663 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2010-05-08 01:13:33 +00:00
akr 622f45fccb * ext/socket/option.c (sockopt_inspect): use rb_str_cat2 and
rb_str_append.

* ext/socket/ancdata.c (ancillary_inspect): refined.



git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@27608 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2010-05-04 03:39:36 +00:00
akr f1192452a9 * ext/socket/ancdata.c (ancillary_inspect): use rb_str_cat2 and
rb_str_append.


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@27607 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2010-05-04 02:51:46 +00:00
nobu 0dc145e7b2 * ext/socket/extconf.rb: CMSG_ macros are broken on 64bit darwin,
because of use of __DARWIN_ALIGN.

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@27530 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2010-04-28 08:14:18 +00:00
nobu 4822d20cc5 * ext/socket: fixed types.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@27529 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2010-04-28 08:14:13 +00:00
nobu 5e7101d348 * ext/socket/unixsocket.c (sendmsg_blocking, recvmsg_blocking):
define only when used.


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@27527 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2010-04-28 07:28:53 +00:00
nobu d4840cc785 * ext/socket/rubysocket.h: non-implemented method definitions need
to be shared.

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@27526 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2010-04-28 07:16:30 +00:00
nobu d0e5a34ac7 * ext/**/*.[ch]: removed trailing spaces.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@27440 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2010-04-22 08:21:01 +00:00
nobu 977267c2e0 * ext/**/*.[ch]: removed trailing spaces.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@27437 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2010-04-22 08:04:13 +00:00
mame 79a3b7797f * ext/socket/ipsocket.c (init_inetsock_internal),
ext/socket/unixsocket.c (rsock_init_unixsock): check the result of
  listen(2).  based on a patch from Mike Pomraning.  [ruby-core:23698]

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@27272 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2010-04-09 14:53:19 +00:00
akr a4fa54a10a * ext/socket: use rsock_ prefix for internal initialization functions.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@27018 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2010-03-22 16:15:21 +00:00
akr 652484598d update doc.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@27012 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2010-03-22 09:45:57 +00:00
akr 1561d3fb8b update doc.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@27009 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2010-03-22 03:33:14 +00:00
akr 1a40be09d6 update doc.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@27008 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2010-03-22 01:24:28 +00:00
akr 062780c834 update doc.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@27007 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2010-03-22 00:48:51 +00:00
akr 0647517bda * ext/socket/.document: extracted from ext/.document.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@27006 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2010-03-22 00:06:48 +00:00
akr c9e4e4400c * ext/socket/rubysocket.h (rsock_revlookup_flag): declared.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@27005 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2010-03-21 15:51:07 +00:00
akr daa739876f * ext/socket: make sources rdoc friendly.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@26998 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2010-03-21 10:50:52 +00:00
mame 785f417270 * ext/socket/raddrinfo.c, ext/socket/udpsocket.c: avoid illegal cast
from void-returning function to VALUE-returning one.  It causes SEGV
  on RubySpec with mingw32.

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@26768 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2010-02-26 12:06:17 +00:00
akr 7fbf889605 rdoc update.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@26734 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2010-02-23 11:41:55 +00:00
akr 7e833da5fe * ext/socket/socket.c (socket_s_ip_address_list): obtain the scope_id
of IPv6 link local address on OpenSolaris.


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@26621 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2010-02-08 12:08:45 +00:00
nobu af2f1bf4f9 * ext/socket/ipsocket.c (ip_addr, ip_peeraddr),
ext/socket/socket.c (sock_s_getaddrinfo): added optional
  reverse_lookup flag.  [ruby-core:28007]


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@26590 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2010-02-06 02:35:11 +00:00
nobu 4dfd71005c * ext/socket/socket.c: turn on do_not_reverse_lookup by default,
which has been reverted in r9880 probably unintentionally,
  according to matz.  [ruby-core:24530]


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@26541 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2010-02-02 09:15:19 +00:00
akr 8458c38590 update rdoc.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@26521 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2010-01-31 09:03:08 +00:00
akr d784451678 rdoc update.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@26520 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2010-01-31 08:41:13 +00:00
akr 29d994d33d update rdoc.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@26519 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2010-01-31 08:39:05 +00:00
akr fe98a03c53 * ext/socket/extconf.rb: suppress a warning.
* ext/extmk.rb: ditto.



git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@26426 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2010-01-26 12:34:51 +00:00
usa 070489975d * ext/socket/rubysocket.h: include addrinfo.h only when using our own
getaddrinfo.c.



git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@26214 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2009-12-31 09:19:05 +00:00
nobu 0ad3bee01f * ext/socket/raddrinfo.c (addrinfo_type): typed.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@26211 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2009-12-30 21:03:51 +00:00
nobu 815fccb4dc * ext/socket/extconf.rb: use have_struct_member.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@26210 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2009-12-30 21:01:13 +00:00
nobu 1069e0f335 * ext/socket/extconf.rb: fix for wide-getaddrinfo option.
* ext/socket/addrinfo.c: rename {addr,name}info functions to ensure
  those are used on darwin.


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@26209 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2009-12-30 20:56:41 +00:00
usa ffffc0ce7d * ext/socket/getnameinfo.c: need to include extconf.h for HAVE_* macros.
reported by Kenta Murata <mrkn AT mrkn.jp> via IRC.



git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@25857 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2009-11-19 11:44:29 +00:00
akr 9c4ac94a8e fix typos.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@25646 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2009-11-04 12:02:37 +00:00
wanabe 24a6752f54 * ext/socket/socket.c (socket_s_ip_address_list): use FreeLibrary() to
free HMODULE.


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@25610 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2009-11-01 04:24:47 +00:00
kanemoto 501e9360dd * ext/socket/extconf.rb : Compilation failure on AIX.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@25552 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2009-10-28 16:41:33 +00:00
naruse 438b8706a7 * ext/bigdecimal/bigdecimal.c (VpMidRound): remove warnings.
patch from Charlie Savage. [ruby-core:22869]

* ext/digest/bubblebabble/bubblebabble.c (bubblebabble_str_new): ditto.

* ext/digest/digest.c (hexencode_str_new): ditto.

* ext/iconv/iconv.c (iconv_convert): ditto.

* ext/socket/socket.c (inspect_sockaddr): ditto.

* ext/socket/raddrinfo.c (sockaddr_obj): ditto.

* ext/syck/emitter.c (syck_emitter_write): ditto.

* ext/syck/emitter.c (syck_emitter_flush): ditto.

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@25365 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2009-10-16 04:36:31 +00:00
usa e4d1745717 * ext/socket/init.c (rsock_init_sock): mswin doesn't have S_IFSOCK
flag in st_mode of struct stat. so, use rb_w32_issocket() function
  instead of S_ISSOCK macro.



git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@25339 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2009-10-15 00:29:10 +00:00
akr 05eb304947 * ext/socket/init.c (rsock_init_sock): validate file descriptor.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@25336 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2009-10-14 15:26:40 +00:00
akr abd31dc2ad * ext/socket/lib/socket.rb (Socket.udp_server_recv): extracted from
Socket.udp_server_loop_on.


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@25261 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2009-10-08 15:01:57 +00:00
akr 8d79d61202 update comment.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@25257 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2009-10-07 13:35:07 +00:00
usa f73eaeb3a6 * ext/socket/extconf.rb: if ipv6 is enabled, the version of Windows
most be XP or later.
	  [ruby-core:24601]



git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@24517 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2009-08-12 12:10:10 +00:00
usa 9d43aefe92 * ext/socket/extconf.rb: define IPPROTO_IPV6 macro for recent Windows
SDK.



git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@24241 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2009-07-22 11:43:32 +00:00
usa 82041cfdec * ext/socket/mkconstants.rb: define IPV6_* constants only when INET6
is defined.



git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@24240 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2009-07-22 10:32:51 +00:00
usa 52d3e529ab * ext/socket/extconf.rb: ipv6 support is disabled by default on mswin.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@24239 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2009-07-22 10:24:37 +00:00
usa ce1ef5b604 * ext/socket/ipsocket.c (init_inetsock_internal): drop IPv6 addresses
if INET6 is not defined.



git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@24238 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2009-07-22 08:42:12 +00:00
usa 6b7603194d * ext/socket/extconf.rb: enable ipv6 support for win32.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@24237 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2009-07-22 08:30:41 +00:00
akr 5453433223 * ext/socket/lib/socket.rb (Addrinfo#family_addrinfo): fix a typo in
error message.  patch by Nobuhiro IMAI.  [ruby-dev:38828]


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@24207 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2009-07-20 01:57:32 +00:00
akr 3d57dfa01b * ext/socket/lib/socket.rb (Socket.accept_loop): rescue
IO::WaitReadable instead of Errno::EWOULDBLOCK.
  (Socket.udp_server_loop_on): ditto.


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@24200 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2009-07-19 01:56:50 +00:00
usa 229b4e4c37 * ext/socket/socket.c (socket_s_ip_address_list): drop inactive
adapters.

	* test/socket/test_{nonblock,addrinfo,socket}.rb: skip some tests on
	  Windows.



git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@24173 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2009-07-17 13:40:59 +00:00
akr c7550e2a3d * ext/socket/init.c (rsock_getfamily): return AF_UNSPEC if getsockname
is failed.  [ruby-core:24383]


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@24160 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2009-07-17 04:38:27 +00:00
usa 1c75d58165 * ext/socket/lib/socket.rb (Socket.tcp_server_sockets_port0): servers
is nil if an error occurs before setting it.



git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@24152 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2009-07-16 10:04:17 +00:00
akr 26a1d97d8c rdoc update.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@23986 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2009-07-07 13:13:49 +00:00
akr d516a3e471 rdoc update.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@23925 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2009-07-01 18:45:57 +00:00
akr 2f8b6234cd * include/ruby/intern.h (rb_time_num_new): declared.
* time.c (nsec2timev): extracted from time_new_internal.
  (time_new_internal): change argument to VALUE.
  (rb_time_new): follow the argument change.
  (rb_time_nano_new): ditto.
  (rb_time_num_new): new function.

* ext/socket/ancdata.c (ancillary_timestamp): use rb_time_num_new to
  represent struct bintime preciously.


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@23924 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2009-07-01 12:11:53 +00:00
akr 05a278b4cd * ext/readline/readline.c: use rb_f_notimplement for methods not
implemented.

* ext/openssl/ossl_engine.c: ditto.

* ext/openssl/ossl_config.c: ditto.

* ext/openssl/ossl_cipher.c: ditto.

* ext/openssl/ossl_pkcs5.c: ditto.

* ext/openssl/ossl_x509ext.c: ditto.

* ext/socket/socket.c: ditto.

* ext/socket/basicsocket.c: ditto.

* ext/socket/ancdata.c: ditto.

* ext/socket/unixsocket.c: ditto.

* ext/iconv/iconv.c: ditto.



git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@23204 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2009-04-18 14:10:06 +00:00
akr c4049f4cb6 * io.c (rb_mWaitReadable): defined.
(rb_mWaitWritable): defined.
  (io_getpartial): extend IO::WaitReadable on EWOULDBLOCK and EAGAIN.
  (rb_io_write_nonblock): extend IO::WaitWritable on EWOULDBLOCK and
  EAGAIN.

* error.c (make_errno_exc): extracted from rb_sys_fail.
  (rb_mod_sys_fail): new function.

* include/ruby/ruby.h (rb_mod_sys_fail): declared.
  (rb_mWaitReadable): declared.
  (rb_mWaitWritable): declared.

* ext/socket/init.c (rsock_s_recvfrom_nonblock): extend
  IO::WaitReadable on EWOULDBLOCK and EAGAIN.
  (rsock_s_accept_nonblock): extend IO::WaitReadable on EWOULDBLOCK,
  EAGAIN, ECONNABORTED and EPROTO.

* ext/socket/socket.c (sock_connect_nonblock): extend IO::WaitWritable
  on EINPROGRESS.

* ext/socket/ancdata.c (bsock_sendmsg_internal): extend
  IO::WaitWritable on EWOULDBLOCK and EAGAIN.
  (bsock_recvmsg_internal): extend IO::WaitReadable on EWOULDBLOCK and
  EAGAIN.

* ext/openssl/ossl_ssl.c (ossl_ssl_read_internal): raise SSLError
  extended by IO::WaitReadable/IO::WaitWritable on
  SSL_ERROR_WANT_READ/SSL_ERROR_WANT_WRITE.

* ext/openssl/ossl.c (ossl_make_error): extracted from ossl_raise.
  (ossl_exc_new): new function.

* ext/openssl/ossl.h (ossl_exc_new): declared.

* lib/net/protocol.rb (rbuf_fill): rescue IO::WaitReadable and
  IO::WaitWritable.

  [ruby-core:22539], [ruby-dev:38140] 



git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@23006 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2009-03-19 11:40:38 +00:00
takano32 867cd89920 * ext/socket/ancdata.c: not use pktinfo.ipi_spec_dst if not defined
* ext/socket/extconf.rb: define HAVE_IPI_SPEC_DST


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@23003 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2009-03-18 08:04:17 +00:00
akr 7d1e856766 * ext/socket/init.c (wait_connectable0): remove unreachable code.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@22936 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2009-03-13 14:04:05 +00:00
akr 54a52efe09 rdoc update.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@22821 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2009-03-08 04:13:06 +00:00
nobu 287a34ae0d * {ext,lib,test}/**/*.rb: removed trailing spaces.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@22784 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2009-03-06 03:56:38 +00:00
akr 4f39e639f4 rdoc update.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@22772 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2009-03-04 22:19:33 +00:00
akr 557359d170 * ext/socket/sockport.h (SS_LEN): defined unconditionally.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@22712 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2009-03-02 12:39:47 +00:00
akr 8a00868c3d * ext/socket/ancdata.c (anc_inspect_socket_creds): supress warnings.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@22711 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2009-03-02 12:27:33 +00:00
akr fb5d4ecfb5 * ext/socket/ancdata.c (rsock_discard_cmsg_resource): defined
unconditionally.


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@22710 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2009-03-02 12:14:35 +00:00
akr a36ea435d2 forgot to commit.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@22709 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2009-03-02 12:13:00 +00:00
akr d79dc0f6a0 * ext/socket/raddrinfo.c: suppress warnings.
* ext/socket/socket.c: ditto.

* ext/socket/unixsocket.c: ditto.



git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@22698 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2009-03-01 14:00:48 +00:00
akr aa2b22bba2 * ext/socket/ (rsock_getfamily): renamed from rb_sock_getfamily.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@22696 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2009-03-01 11:58:13 +00:00
akr 172d208789 * ext/socket/ (rsock_make_hostent): renamed from sock_make_hostent.
(rsock_addrinfo): renamed from sock_addrinfo.
  (rsock_getaddrinfo): renamed from sock_getaddrinfo.
  (rsock_socket): renamed from ruby_socket.
  (rsock_sock_s_socketpair): renamed from sock_s_socketpair.
  (rsock_connect): renamed from ruby_connect.

* ext/socket/socket.c (sock_listen): make it static.


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@22686 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2009-03-01 06:48:22 +00:00
akr c49f05dd79 * ext/socket: add rsock_prefix.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@22684 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2009-03-01 06:30:41 +00:00
akr 2ba6eec1fa * ext/socket/ancdata.c (ancillary_unix_rights): check message type.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@22676 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2009-02-28 09:29:26 +00:00
akr 54cd7ea168 * ext/socket/lib/socket.rb (BasicSocket#connect_address): returns ::1
if the address is IPv4-mapped IPv6 address for 0.0.0.0 for MacOS X.


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@22672 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2009-02-28 06:05:44 +00:00
akr 5fb1faf2bf * ext/socket/raddrinfo.c: suppress strict-aliasing warning with
gcc version 4.4.0 20090219 (Red Hat 4.4.0-0.21) on Fedora 11 Alpha.

* ext/socket/socket.c: ditto.

* ext/socket/unixsocket.c: ditto.

* ext/socket/sockport.h (SS_LEN): defined.
  (SET_SS_LEN): ditto.



git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@22668 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2009-02-27 15:21:23 +00:00
akr d8c66c4333 * ext/socket/ancdata.c (bsock_recvmsg_internal): close FDs passed by
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-27 14:23:54 +00:00
akr 770f854176 rdoc update.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@22651 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2009-02-26 14:39:12 +00:00
akr 7f44badcbe rdoc update.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@22650 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2009-02-26 14:18:09 +00:00
akr ecb22ce2c5 * ext/socket/lib/socket.rb (BasicSocket#connect_address): new method.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@22649 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2009-02-26 14:15:39 +00:00
akr 2276b2f904 * ext/socket/mkconstants.rb: more MSG_* constants.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@22636 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2009-02-25 16:35:05 +00:00