class Net::BufferedIO

def rbuf_fill

def rbuf_fill
  if @io.respond_to? :read_nonblock then
    begin
      @rbuf << @io.read_nonblock(65536)
    rescue Errno::EWOULDBLOCK, Errno::EAGAIN => e
      retry if IO.select [@io], nil, nil, @read_timeout
      raise Timeout::Error, e.message
    end
  else # SSL sockets do not have read_nonblock
    timeout @read_timeout do
      @rbuf << @io.sysread(65536)
    end
  end
end