ruby/ext/socket
normal ba5eb6458a socket: fix BasicSocket#*_nonblock buffering bugs from r58400
IO#read_nonblock and IO#write_nonblock take into account
buffered data, so the Linux-only BasicSocket#read_nonblock
and BasicSocket#write_nonblock methods must, too.

This bug was only introduced in r58400
("socket: avoid fcntl for read/write_nonblock on Linux")
and does not affect any stable release.

* ext/socket/basicsocket.c (rsock_init_basicsocket):
* ext/socket/init.c (rsock_s_recvfrom_nonblock):
* ext/socket/init.c (rsock_init_socket_init):
* ext/socket/lib/socket.rb (def read_nonblock):
* ext/socket/lib/socket.rb (def write_nonblock):
* ext/socket/rubysocket.h (static inline void rsock_maybe_wait_fd):
* test/socket/test_basicsocket.rb (def test_read_write_nonblock):
  [Feature #13362]

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@60496 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2017-10-27 23:26:48 +00:00
..
lib socket: fix BasicSocket#*_nonblock buffering bugs from r58400 2017-10-27 23:26:48 +00:00
.document * ext/socket/.document: Add ifaddr.c. 2013-05-14 14:48:00 +00:00
addrinfo.h * ext/**/*.[ch]: removed trailing spaces. 2010-04-22 08:04:13 +00:00
ancdata.c * ext/socket/*.c: Add proper require for example to work. 2016-10-05 03:57:32 +00:00
basicsocket.c socket: fix BasicSocket#*_nonblock buffering bugs from r58400 2017-10-27 23:26:48 +00:00
constants.c use frozen string of symbols 2015-04-14 03:31:28 +00:00
depend separate constdefs.c and constdefs.h 2017-05-08 05:31:02 +00:00
extconf.rb Add Socket::Ifaddr.vhid on supported platforms [Feature #13803] 2017-08-31 08:29:38 +00:00
getaddrinfo.c Drop support for BeOS 2015-11-24 00:17:11 +00:00
getnameinfo.c getnameinfo.c: rubysocket.h for inet_ntop 2016-08-13 01:26:24 +00:00
ifaddr.c Add Socket::Ifaddr.vhid on supported platforms [Feature #13803] 2017-08-31 08:29:38 +00:00
init.c socket: fix BasicSocket#*_nonblock buffering bugs from r58400 2017-10-27 23:26:48 +00:00
ipsocket.c IPSocket#inspect 2017-04-14 10:03:43 +00:00
mkconstants.rb handle ext/ as r53141 2015-12-16 05:31:54 +00:00
option.c * ext/socket/*.c: Add proper require for example to work. 2016-10-05 03:57:32 +00:00
raddrinfo.c ext/socket/raddrinfo.c (addrinfo_mark): avoid needless branch 2017-03-09 03:49:47 +00:00
rubysocket.h socket: fix BasicSocket#*_nonblock buffering bugs from r58400 2017-10-27 23:26:48 +00:00
socket.c reference Socket.getaddrinfo to Addrinfo.getaddrinfo. 2017-10-21 23:23:05 +00:00
sockport.h * ext/socket: Bypass getaddrinfo() if node and serv are numeric. 2014-02-19 10:37:43 +00:00
sockssocket.c * ext/socket/basicsocket.c, ext/socket/sockssocket.c: 2014-12-07 10:40:27 +00:00
tcpserver.c socket: avoid arg parsing in rsock_s_accept_nonblock 2015-11-16 23:40:15 +00:00
tcpsocket.c deprecate TCPSocket.gethostbyname. 2017-10-21 23:19:47 +00:00
udpsocket.c * ext/socket/*.c: Add proper require for example to work. 2016-10-05 03:57:32 +00:00
unixserver.c * ext/socket/*.c: Add proper require for example to work. 2016-10-05 03:57:32 +00:00
unixsocket.c * ext/socket/*.c: Add proper require for example to work. 2016-10-05 03:57:32 +00:00