class Puma::Runner

def start_control

def start_control
  str = @options[:control_url]
  return unless str
  require 'puma/app/status'
  uri = URI.parse str
  if token = @options[:control_auth_token]
    token = nil if token.empty? || token == 'none'
  end
  app = Puma::App::Status.new @launcher, token
  control = Puma::Server.new app, @launcher.events
  control.min_threads = 0
  control.max_threads = 1
  case uri.scheme
  when "ssl"
      log "* Starting control server on #{str}"
      params = Util.parse_query uri.query
      ctx = MiniSSL::ContextBuilder.new(params, @events).context
      control.add_ssl_listener uri.host, uri.port, ctx
  when "tcp"
    log "* Starting control server on #{str}"
    control.add_tcp_listener uri.host, uri.port
  when "unix"
    log "* Starting control server on #{str}"
    path = "#{uri.host}#{uri.path}"
    mask = @options[:control_url_umask]
    control.add_unix_listener path, mask
  else
    error "Invalid control URI: #{str}"
  end
  control.run
  @control = control
end