class OpenSSL::SSL::SSLServer

def accept

def accept
  sock = @svr.accept
  begin
    ssl = OpenSSL::SSL::SSLSocket.new(sock, @ctx)
    ssl.sync_close = true
    ssl.accept if @start_immediately
    ssl
  rescue SSLError => ex
    sock.close
    raise ex
  end
end

def accept

def accept
  sock = @svr.accept
  begin
    ssl = OpenSSL::SSL::SSLSocket.new(sock, @ctx)
    ssl.sync_close = true
    ssl.accept if @start_immediately
    ssl
  rescue SSLError => ex
    sock.close
    raise ex
  end
end

def close

def close
  @svr.close
end

def close

def close
  @svr.close
end

def initialize(svr, ctx)

def initialize(svr, ctx)
  @svr = svr
  @ctx = ctx
  unless ctx.session_id_context
    session_id = OpenSSL::Digest::MD5.hexdigest($0)
    @ctx.session_id_context = session_id
  end
  @start_immediately = true
end

def initialize(svr, ctx)

def initialize(svr, ctx)
  @svr = svr
  @ctx = ctx
  unless ctx.session_id_context
    session_id = OpenSSL::Digest::MD5.hexdigest($0)
    @ctx.session_id_context = session_id
  end
  @start_immediately = true
end

def listen(backlog=5)

def listen(backlog=5)
  @svr.listen(backlog)
end

def listen(backlog=5)

def listen(backlog=5)
  @svr.listen(backlog)
end

def shutdown(how=Socket::SHUT_RDWR)

def shutdown(how=Socket::SHUT_RDWR)
  @svr.shutdown(how)
end

def shutdown(how=Socket::SHUT_RDWR)

def shutdown(how=Socket::SHUT_RDWR)
  @svr.shutdown(how)
end

def to_io

def to_io
  @svr
end

def to_io

def to_io
  @svr
end