diff --git a/History.md b/History.md index 55580885da..142e8068d6 100644 --- a/History.md +++ b/History.md @@ -17,6 +17,7 @@ * Refactor * Remove unused loader argument from Plugin initializer (#2095) * Simplify `Configuration.random_token` and remove insecure fallback (#2102) + * Simplify `Runner#start_control` URL parsing (#2111) ## 4.3.1 and 3.12.2 / 2019-12-05 diff --git a/lib/puma/binder.rb b/lib/puma/binder.rb index 28fcb5e47a..aa0e1d7e78 100644 --- a/lib/puma/binder.rb +++ b/lib/puma/binder.rb @@ -86,7 +86,7 @@ def import_from_env end end - def parse(binds, logger) + def parse(binds, logger, log_msg = 'Listening') binds.each do |str| uri = URI.parse str case uri.scheme @@ -113,7 +113,7 @@ def parse(binds, logger) i.local_address.ip_unpack.join(':') end - logger.log "* Listening on tcp://#{addr}" + logger.log "* #{log_msg} on tcp://#{addr}" end end @@ -149,7 +149,7 @@ def parse(binds, logger) end io = add_unix_listener path, umask, mode, backlog - logger.log "* Listening on #{str}" + logger.log "* #{log_msg} on #{str}" end @listeners << [str, io] diff --git a/lib/puma/runner.rb b/lib/puma/runner.rb index 2c9812fd92..078a26d760 100644 --- a/lib/puma/runner.rb +++ b/lib/puma/runner.rb @@ -52,8 +52,6 @@ def start_control require 'puma/app/status' - uri = URI.parse str - if token = @options[:control_auth_token] token = nil if token.empty? || token == 'none' end @@ -64,25 +62,7 @@ def start_control 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.binder.parse [str], self, 'Starting control server' control.run @control = control