Commit graph

396 commits

Author SHA1 Message Date
akr
9787d4faae * ext/socket/mkconstants.rb: generate socktype_to_int.
* ext/socket/socket.c (setup_domain_and_type): use socktype_to_int.



git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@21243 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2009-01-01 08:38:14 +00:00
akr
009ad25fdd * ext/socket/socket.c (setup_domain_and_type): initialize ptr.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@21242 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2009-01-01 08:27:41 +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
89cf0ec1a6 * ext/socket/mkconstants.rb: generate init_constants function.
* ext/socket/socket.c (Init_socket): call init_constants.



git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@21238 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2009-01-01 07:09:19 +00:00
akr
2b3e480bef * ext/socket/mkconstants.rb (Socket::AF_INET6): moved from socket.c.
(Socket::PF_INET6): ditto.


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@21237 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2009-01-01 07:04: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
akr
a413e50c41 * ext/socket/mkconstants.rb: use sock_define_uconst for INADDR_*
constants because Socket::INADDR_LOOPBACK should be 0x7f000001
  instead of -0xffffff.

* ext/socket/socket.c (sock_define_uconst): defined.



git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@21202 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2008-12-30 12:19:40 +00:00
matz
527cc92793 * ext/socket/socket.c (s_recvfrom_nonblock): revert r21162.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@21167 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2008-12-29 08:14:35 +00:00
matz
445b6d5d01 * ext/socket/socket.c (s_recvfrom_nonblock): fixed awesome typo.
sorry.

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@21164 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2008-12-29 07:50:07 +00:00
matz
6dd1910a3d * ext/socket/socket.c (s_recvfrom_nonblock): default maxlen to be
65536.  suggested by akr in [ruby-core:20918].  response to
  feature request #936 in [ruby-core:20917].

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@21162 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2008-12-29 07:32:56 +00:00
akr
0a3a98aea4 * ext/socket/socket.c (unix_recv_io): relax msg_controllen error
check.



git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@20847 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2008-12-17 10:47:52 +00:00
matz
23e6fc744e * ext/socket/socket.c (sock_getaddrinfo): should have updated for
Mac OS X.  a patch from Shumpei Akai in [ruby-dev:37234]

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@20390 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2008-11-29 09:30:46 +00:00
matz
46e431e3eb * ext/socket/socket.c (sock_s_getaddrinfo): refactored to remove
code duplication regarding getaddrinfo.

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@20387 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2008-11-28 09:32:20 +00:00
nobu
409293eb09 * ext/socket/socket.c (sock_s_getservbyport): check if the port range.
[ruby-core:19460]


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@19898 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2008-10-23 07:16:20 +00:00
nobu
472156c236 * ext/socket/socket.c (sock_s_getservbyname): unuse unnecessary
object.


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@19896 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2008-10-23 05:08:10 +00:00
nobu
a5ea0e8c32 * ext/socket/socket.c (sock_s_getservbyport): the port should be
converted before the proto so that the #to_int of the former cannot
  alter the latter.


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@19895 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2008-10-23 02:18:00 +00:00
usa
538d87cf11 * ext/socket/socket.c (sock_s_getservbyport): cast to get rid of
warning.



git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@19894 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2008-10-23 00:27:52 +00:00
matz
c1bb485ca0 * ext/socket/socket.c (sock_s_getservbyport): port should be
network byte order.  a patch from Dave Thomas in [ruby-core:19454].

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@19893 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2008-10-22 23:12:02 +00:00
shugo
d423b884b8 * io.c, include/ruby/intern.h (rb_io_ascii8bit_binmode): externed.
* ext/socket/socket.c (init_sock): use rb_io_ascii8bit_binmode()
  instead of rb_io_binmode().


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@19868 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2008-10-21 04:31:15 +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
akr
f59b1dfbfb rdoc update.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@19721 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2008-10-09 00:46:59 +00:00
yugui
8dd118c0db * djgpp/GNUmakefile.in: removed. Ruby no longer supports djgpp.
* djgpp/README.djgpp: ditto.

* djgpp/config.hin: ditto.

* djgpp/config.sed: ditto.

* djgpp/configure.bat: ditto.

* djgpp/mkver.sed: ditto.

* ext/Setup.dj: ditto.

* dln.c: removed djgpp supports.

* file.c: ditto.

* gc.c: ditto.

* io.c: ditto.

* process.c: ditto.

* ruby.c: ditto.

* signal.c: ditto.

* util.c: ditto.

* vm_core.h: ditto.

* lib/fileutils.rb: ditto.

* lib/mkmf.rb: ditto.

* ext/socket/socket.c: ditto.

* test/fileutils/test_fileutils.rb: ditto.

* test/ruby/test_env.rb: ditto.

* test/ruby/test_path.rb: ditto.


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@19678 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2008-10-04 13:25:12 +00:00
yugui
bbbd9c0b7b * x68/_dtos18.c: removed. Ruby no longer supports human68k.
* x68/_round.c: ditto.

* x68/fconvert.c: ditto.

* x68/select.c: ditto.

* ext/Setup.x68: ditto.

* missing/x68.c: ditto.

* dln.c (dln_find_exe_r): removed human68k supports.
  (dln_find_1): ditto.

* lib/mkmf.rb: ditto.

* ext/extmk.rb (Init_ext): ditto.

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

* gc.c (GC_MALLOC_LIMIT): ditto.
  (rb_setjmp, rb_jmpbuf): ditto.
  (mark_current_machine_context): ditto.

* include/ruby/defines.h (PATH_ENV): ditto.

* io.c: ditto.

* process.c: ditto.

* ruby.c: ditto.

* test/ruby/test_env.rb: ditto.

* test/ruby/test_path.rb: ditto.

* LEGAL


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@19677 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2008-10-04 13:12:13 +00:00
nobu
34c7492e2c * ext/socket/socket.c (host_str): numeric address should be unsigned.
[ruby-core:18971]


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@19593 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2008-09-26 18:12:43 +00:00
matz
d7de44a8fc * dln.c: newer BeOS support. a patch from Pete Goodeve
<pete.goodeve at computer.org> in [ruby-core:18712].

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@19426 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2008-09-19 00:33:19 +00:00
ko1
204929af9d * include/ruby/signal.h: removed.
* common.mk, class.c, eval.c, eval_intern.h, file.c, gc.c, hash.c,
  io.c, process.c, signal.c: vm_core.h: ditto.
  Some unused external global variables are also removed.
  (rb_prohibit_interrupt, rb_trap_immediate, rb_trap_pending,
  rb_thread_critical)
* ext/openssl/ossl_ssl.c, ext/openssl/ossl_x509store.c,
  ext/readline/readline.c, ext/socket/depend,
  ext/socket/socket.c: ditto.



git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@19080 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2008-09-03 08:00:05 +00:00
ko1
ca6a8b1e2c * include/ruby/intern.h: rename RB_UBF_DFL to
RUBY_UBF_IO and RUBY_UBF_PROCESS.
  Because there is no default (universal) unblocking function.
* ext/socket/socket.c, file.c, io.c, process.c, thread.c: ditto.



git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@18985 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2008-08-31 07:44:24 +00:00
nobu
ae9af4d333 * ext/socket/socket.c (lookup_order_table): constified.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@18981 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2008-08-31 06:07:52 +00:00
nobu
bb239558b8 * ext/coverage/coverage.c (rb_mCoverage): removed unneeded static variable.
* ext/socket/socket.c (unix_recv_io): ditto.

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


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@18977 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2008-08-31 04:48:02 +00:00
akr
895fd7ec5e * include/ruby/io.h (rb_io_t): remove path field and add pathv field.
(MakeOpenFile): initialize pathv as Qnil.

* gc.c: mark pathv field in T_FILE.

* io.c: follow the rb_io_t field change.

* file.c: ditto.

* ext/socket/socket.c: ditto.



git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@18782 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2008-08-23 00:47:54 +00:00
nobu
750cb61e65 * stable/ext/socket/socket.c (NI_MAXHOST, NI_MAXSERV): fixed invalid
preprocessor directives.  a patch from Peter Bowen at
  [ruby-core:18211].


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@18450 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2008-08-09 04:35:13 +00:00
naruse
48e21d2051 * eval_intern.h: Add support to Haiku. see [ruby-core:18110]
* include/ruby/defines.h: ditto.

* configure.in: ditto.

* thread_pthread.c: ditto.

* io.c: ditto.

* lib/mkmf.rb: ditto.

* ext/socket/getaddrinfo.c: ditto.

* ext/socket/extconf.rb: ditto.

* ext/socket/socket.c: ditto.

* ext/socket/addrinfo.h: ditto.

* ext/socket/getnameinfo.c: ditto.

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@18402 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2008-08-06 20:52:44 +00:00
usa
e4d911fa98 * ext/socket/socket.c (connect_blocking, socks_connect_blocking,
ruby_connect): cast.



git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@18155 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2008-07-22 07:09:34 +00:00
usa
fae330b3b9 * ext/socket/socket.c (ruby_connect): select() for connect() has
mean only when the socket is non-blocking.



git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@18104 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2008-07-17 07:49:51 +00:00
usa
c9eba6932b * ext/socket/socket.c (ruby_connect, s_accept): came back blocking
region because other thread/process maybe read/write the socket
	  between select() and connect()/accept().



git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@18073 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2008-07-15 12:34:58 +00:00
usa
57331140f6 * ext/socket/socket.c (ruby_connect, s_accept): no need to wrap by
blocking region if checked before readable/writable by select.

	* ext/socket/socket.c (bsock_send, s_recvfrom, udp_send, unix_send_io,
	  unix_recv_io): should check readable/writable before blocking calling
	  blocking functions.
	  see [ruby-dev:35446]



git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@18070 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2008-07-15 09:17:22 +00:00
akr
97208f2b34 * ext/socket/socket.c: use PRIuSIZE.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@18041 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2008-07-12 14:25:52 +00:00
nobu
2754e843b6 * ext/socket/socket.c (bsock_send, s_recvfrom, ruby_connect, s_accept),
(udp_send, unix_send_io, unix_recv_io): blocking region support.


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@17907 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2008-07-06 14:49:00 +00:00
akr
890aa092be * ext/socket/socket.c (host_str): fix type mismatch in rb_raise
format and argument.
  (port_str): ditto.
  (unix_recv_io): ditto.
  (sock_s_unpack_sockaddr_un): ditto.


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@17898 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2008-07-05 15:58:46 +00:00
usa
1a13281ab7 * ext/socket/socket.c (init_sock): socket is binmode on platforms
which support binmode.



git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@17551 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2008-06-24 00:41:38 +00:00
nobu
f8ef02adc4 * ext/socket/socket.c: constified.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@17055 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2008-06-09 09:51:21 +00:00
akr
6cdef2dc7e * $Date$ keyword removed to avoid inclusion of locale dependent
string.


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@14912 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2008-01-06 15:49:38 +00:00
akr
0352d32f05 * util.c (ruby_strtoul): locale independent strtoul is implemented to
avoid "i".to_i(36) cause 0 under tr_TR locale.
  This is newly implemented, not a copy of missing/strtoul.c.

* include/ruby/ruby.h (ruby_strtoul): declared.
  (STRTOUL): defined to use ruby_strtoul.

* bignum.c, pack.c, ext/socket/socket.c: use STRTOUL.

* configure.in (strtoul): don't check.

* missing/strtoul.c: removed.

* include/ruby/missing.h (strtoul): removed.

* common.mk (strtoul.o): removed.

* LEGAL (missing/strtoul.c): removed.



git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@14850 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2008-01-02 06:24:27 +00:00
akr
f80bb164ce use EWOULDBLOCK as an example in document.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@14788 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2007-12-29 19:22:14 +00:00
matz
5458a384ea * ext/socket/socket.c: a patch to support IRIX from Andrew
Thompson <andrew@hijacked.us> in [ruby-core:14447].

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@14725 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2007-12-27 01:47:11 +00:00
akr
124bdf8815 rescue Errno::EWOULDBLOCK as well as Errno::EAGAIN in sample code in rdoc.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@13759 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2007-10-23 07:40:56 +00:00
akr
297d2e05cb * ext/socket/socket.c (s_accept_nonblock): make accepted fd
nonblocking.  [ruby-talk:274079]


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@13699 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2007-10-14 16:18:41 +00:00
matz
a25fbe3b3e * encoding.c: provide basic features for M17N.
* parse.y: encoding aware parsing.

* parse.y (pragma_encoding): encoding specification pragma.

* parse.y (rb_intern3): encoding specified symbols.

* string.c (rb_str_length): length based on characters.  
  for older behavior, bytesize method added.

* string.c (rb_str_index_m): index based on characters.  rindex as
  well.

* string.c (succ_char): encoding aware succeeding string.

* string.c (rb_str_reverse): reverse based on characters.

* string.c (rb_str_inspect): encoding aware string description.

* string.c (rb_str_upcase_bang): encoding aware case conversion.
  downcase, capitalize, swapcase as well.

* string.c (rb_str_tr_bang): tr based on characters.  delete,
  squeeze, tr_s, count as well.

* string.c (rb_str_split_m): split based on characters.

* string.c (rb_str_each_line): encoding aware each_line.

* string.c (rb_str_each_char): added.  iteration based on
  characters.

* string.c (rb_str_strip_bang): encoding aware whitespace
  stripping.  lstrip, rstrip as well.

* string.c (rb_str_justify): encoding aware justifying (ljust,
  rjust, center).

* string.c (str_encoding): get encoding attribute from a string. 

* re.c (rb_reg_initialize): encoding aware regular expression

* sprintf.c (rb_str_format): formatting (i.e. length count) based
  on characters.

* io.c (rb_io_getc): getc to return one-character string.
  for older behavior, getbyte method added.

* ext/stringio/stringio.c (strio_getc): ditto.

* io.c (rb_io_ungetc): allow pushing arbitrary string at the
  current reading point.

* ext/stringio/stringio.c (strio_ungetc): ditto.

* ext/strscan/strscan.c: encoding support.

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@13261 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2007-08-25 03:29:39 +00:00
nobu
2b592580bf * include/ruby: moved public headers.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@12501 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2007-06-10 03:06:15 +00:00
akr
24af397fcd clear cmsg padding.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@12220 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2007-04-25 13:37:55 +00:00