class Puma::MiniSSL::Socket

def write(data)

def write(data)
  return 0 if data.empty?
  data_size = data.bytesize
  need = data_size
  while true
    wrote = @engine.write data
    enc_wr = +''
    while (enc = @engine.extract)
      enc_wr << enc
    end
    @socket.write enc_wr unless enc_wr.empty?
    need -= wrote
    return data_size if need == 0
    data = data.byteslice(wrote..-1)
  end
end