in lib/puma/runner.rb [48:89]
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