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