Commit graph

542 commits

Author SHA1 Message Date
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
akr
e6f0b1de89 * ext/socket/option.c (sockopt_level): extracted from sockopt_level_m.
(sockopt_optname): extracted from sockopt_optname_m.
  (sockopt_data): apply StringValue.
  (sockopt_s_linger): new method.
  (sockopt_linger): new method.
  (inspect_linger): show onoff value if it is neither 0 nor 1.


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@22634 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2009-02-25 15:26:25 +00:00
akr
1ff020df70 * ext/socket/ancdata.c (ancillary_unix_rights): raise
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 14:24:10 +00:00
akr
56c52c1da8 * ext/socket/ancdata.c (ancillary_s_unix_rights): new method.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@22631 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2009-02-25 14:19:24 +00:00
akr
c17b915eb8 * ext/socket/unixsocket.c (unix_recv_io): prevent FD leak when 2 fd is
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-25 14:03:42 +00:00
knu
400ded9338 * class.c (rb_scan_args): Allow specifying the number of trailing
mandatory arguments right after the number of optional arguments
  only if the number of leading mandatory arguments is not omitted.

* ext/socket/tcpserver.c (tcp_svr_init): Make use of it.


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@22603 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2009-02-24 15:41:39 +00:00
akr
470103861e add comment.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@22598 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2009-02-24 13:19:04 +00:00
akr
0ae09794e5 * ext/socket/socket.c (sockaddr_obj): convert fe80:1::1 to fe80::1%1.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@22597 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2009-02-24 13:02:59 +00:00
akr
7e20506eae reordered.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@22596 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2009-02-24 12:08:23 +00:00
akr
e137e939b7 * ext/socket/ancdata.c (ancillary_timestamp): support SCM_BINTIME.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@22594 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2009-02-24 10:56:57 +00:00
akr
b404c651d2 * ext/socket/ancdata.c (ancillary_timestamp): new method.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@22593 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2009-02-24 10:45:46 +00:00
akr
605cd65904 * ext/socket/ancdata.c (inspect_timespec_as_abstime): new function to
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 11:41:38 +00:00
akr
23e286f3fb * ext/socket/ancdata.c (inspect_bintime_as_abstime): new function to
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 11:32:43 +00:00
akr
a0e3e8e4d1 * ext/socket/ancdata.c (inspect_timeval_as_abstime): use time_t
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-23 11:21:45 +00:00