Parent

Puma::MiniSSL::Socket

Public Class Methods

new(socket, engine) click to toggle source
# File lib/puma/minissl.rb, line 4
def initialize(socket, engine)
  @socket = socket
  @engine = engine
end

Public Instance Methods

close() click to toggle source
# File lib/puma/minissl.rb, line 82
def close
  @socket.close
end
engine_read_all() click to toggle source
# File lib/puma/minissl.rb, line 30
def engine_read_all
  output = @engine.read
  while output and additional_output = @engine.read
    output << additional_output
  end
  output
end
flush() click to toggle source
# File lib/puma/minissl.rb, line 78
def flush
  @socket.flush
end
peeraddr() click to toggle source
# File lib/puma/minissl.rb, line 86
def peeraddr
  @socket.peeraddr
end
read_nonblock(size) click to toggle source
# File lib/puma/minissl.rb, line 38
def read_nonblock(size)
  while true
    output = engine_read_all
    return output if output

    data = @socket.read_nonblock(size)

    @engine.inject(data)
    output = engine_read_all

    return output if output

    while neg_data = @engine.extract
      @socket.write neg_data
    end
  end
end
readpartial(size) click to toggle source
# File lib/puma/minissl.rb, line 13
def readpartial(size)
  while true
    output = @engine.read
    return output if output

    data = @socket.readpartial(size)
    @engine.inject(data)
    output = @engine.read

    return output if output

    while neg_data = @engine.extract
      @socket.write neg_data
    end
  end
end
syswrite(data) click to toggle source
Alias for: write
to_io() click to toggle source
# File lib/puma/minissl.rb, line 9
def to_io
  @socket
end
write(data) click to toggle source
# File lib/puma/minissl.rb, line 56
def write(data)
  need = data.bytesize

  while true
    wrote = @engine.write data
    enc = @engine.extract

    while enc
      @socket.write enc
      enc = @engine.extract
    end

    need -= wrote

    return data.bytesize if need == 0

    data = data[need..-1]
  end
end
Also aliased as: syswrite

[Validate]

Generated with the Darkfish Rdoc Generator 2.