class Puma::MiniSSL::Socket

def readpartial(size)

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