passenger 6.1.3 → 6.1.5

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (134) hide show
  1. checksums.yaml +4 -4
  2. data/CHANGELOG +20 -1
  3. data/Rakefile +1 -1
  4. data/build/agent.rb +15 -15
  5. data/build/apache2.rb +18 -18
  6. data/build/basics.rb +1 -1
  7. data/build/common_library.rb +21 -20
  8. data/build/cxx_tests.rb +19 -19
  9. data/build/integration_tests.rb +3 -3
  10. data/build/misc.rb +10 -9
  11. data/build/nginx.rb +12 -12
  12. data/build/oxt_tests.rb +7 -7
  13. data/build/packaging.rb +11 -11
  14. data/build/ruby_extension.rb +3 -3
  15. data/build/ruby_tests.rb +1 -1
  16. data/build/schema_printer.rb +13 -13
  17. data/build/support/cplusplus.rb +8 -8
  18. data/build/support/cxx_dependency_map.rb +622 -622
  19. data/build/support/general.rb +0 -1
  20. data/build/support/vendor/cxx_hinted_parser/lib/cxx_hinted_parser/parser.rb +4 -4
  21. data/build/support/vendor/cxxcodebuilder/lib/cxxcodebuilder/builder.rb +1 -1
  22. data/build/test_basics.rb +4 -4
  23. data/dev/colorize-logs +6 -6
  24. data/dev/copy_boost_headers +8 -8
  25. data/dev/index_cxx_dependencies.rb +6 -6
  26. data/dev/install_scripts_bootstrap_code.rb +4 -4
  27. data/dev/list_tests +2 -2
  28. data/dev/nginx_version_sha256 +2 -2
  29. data/dev/parse_file_descriptor_log +1 -1
  30. data/passenger.gemspec +5 -4
  31. data/src/agent/Core/Config.h +1 -1
  32. data/src/agent/Core/Controller/Config.h +1 -1
  33. data/src/agent/Watchdog/Config.h +1 -1
  34. data/src/cxx_supportlib/Constants.h +1 -1
  35. data/src/helper-scripts/backtrace-sanitizer.rb +2 -2
  36. data/src/helper-scripts/download_binaries/extconf.rb +8 -8
  37. data/src/helper-scripts/meteor-loader.rb +39 -39
  38. data/src/helper-scripts/rack-loader.rb +1 -0
  39. data/src/helper-scripts/rack-preloader.rb +2 -1
  40. data/src/ruby_native_extension/extconf.rb +27 -28
  41. data/src/ruby_supportlib/phusion_passenger/abstract_installer.rb +27 -27
  42. data/src/ruby_supportlib/phusion_passenger/admin_tools/instance.rb +5 -4
  43. data/src/ruby_supportlib/phusion_passenger/admin_tools/instance_registry.rb +9 -8
  44. data/src/ruby_supportlib/phusion_passenger/admin_tools/memory_stats.rb +24 -24
  45. data/src/ruby_supportlib/phusion_passenger/admin_tools.rb +5 -5
  46. data/src/ruby_supportlib/phusion_passenger/apache2/config_options.rb +526 -526
  47. data/src/ruby_supportlib/phusion_passenger/apache2/config_utils.rb +1 -1
  48. data/src/ruby_supportlib/phusion_passenger/common_library.rb +105 -105
  49. data/src/ruby_supportlib/phusion_passenger/config/about_command.rb +5 -5
  50. data/src/ruby_supportlib/phusion_passenger/config/agent_compiler.rb +7 -6
  51. data/src/ruby_supportlib/phusion_passenger/config/api_call_command.rb +1 -1
  52. data/src/ruby_supportlib/phusion_passenger/config/command.rb +1 -1
  53. data/src/ruby_supportlib/phusion_passenger/config/compile_agent_command.rb +1 -1
  54. data/src/ruby_supportlib/phusion_passenger/config/compile_nginx_engine_command.rb +5 -5
  55. data/src/ruby_supportlib/phusion_passenger/config/detach_process_command.rb +1 -1
  56. data/src/ruby_supportlib/phusion_passenger/config/download_agent_command.rb +17 -17
  57. data/src/ruby_supportlib/phusion_passenger/config/download_nginx_engine_command.rb +18 -18
  58. data/src/ruby_supportlib/phusion_passenger/config/install_agent_command.rb +10 -10
  59. data/src/ruby_supportlib/phusion_passenger/config/install_standalone_runtime_command.rb +12 -12
  60. data/src/ruby_supportlib/phusion_passenger/config/installation_utils.rb +24 -23
  61. data/src/ruby_supportlib/phusion_passenger/config/main.rb +26 -26
  62. data/src/ruby_supportlib/phusion_passenger/config/nginx_engine_compiler.rb +5 -4
  63. data/src/ruby_supportlib/phusion_passenger/config/reopen_logs_command.rb +1 -1
  64. data/src/ruby_supportlib/phusion_passenger/config/restart_app_command.rb +4 -4
  65. data/src/ruby_supportlib/phusion_passenger/config/system_properties_command.rb +14 -13
  66. data/src/ruby_supportlib/phusion_passenger/config/utils.rb +1 -1
  67. data/src/ruby_supportlib/phusion_passenger/config/validate_install_command.rb +34 -33
  68. data/src/ruby_supportlib/phusion_passenger/console_text_template.rb +3 -2
  69. data/src/ruby_supportlib/phusion_passenger/debug_logging.rb +2 -2
  70. data/src/ruby_supportlib/phusion_passenger/loader_shared_helpers.rb +35 -36
  71. data/src/ruby_supportlib/phusion_passenger/message_channel.rb +17 -16
  72. data/src/ruby_supportlib/phusion_passenger/message_client.rb +5 -4
  73. data/src/ruby_supportlib/phusion_passenger/native_support.rb +42 -42
  74. data/src/ruby_supportlib/phusion_passenger/nginx/config_options.rb +548 -548
  75. data/src/ruby_supportlib/phusion_passenger/packaging.rb +6 -6
  76. data/src/ruby_supportlib/phusion_passenger/platform_info/apache.rb +85 -84
  77. data/src/ruby_supportlib/phusion_passenger/platform_info/apache_detector.rb +13 -13
  78. data/src/ruby_supportlib/phusion_passenger/platform_info/binary_compatibility.rb +5 -5
  79. data/src/ruby_supportlib/phusion_passenger/platform_info/compiler.rb +65 -65
  80. data/src/ruby_supportlib/phusion_passenger/platform_info/crypto.rb +6 -6
  81. data/src/ruby_supportlib/phusion_passenger/platform_info/curl.rb +5 -5
  82. data/src/ruby_supportlib/phusion_passenger/platform_info/cxx_portability.rb +10 -10
  83. data/src/ruby_supportlib/phusion_passenger/platform_info/depcheck.rb +6 -5
  84. data/src/ruby_supportlib/phusion_passenger/platform_info/depcheck_specs/apache2.rb +7 -7
  85. data/src/ruby_supportlib/phusion_passenger/platform_info/depcheck_specs/libs.rb +1 -1
  86. data/src/ruby_supportlib/phusion_passenger/platform_info/depcheck_specs/ruby.rb +7 -7
  87. data/src/ruby_supportlib/phusion_passenger/platform_info/depcheck_specs/utilities.rb +1 -1
  88. data/src/ruby_supportlib/phusion_passenger/platform_info/linux.rb +14 -13
  89. data/src/ruby_supportlib/phusion_passenger/platform_info/networking.rb +27 -26
  90. data/src/ruby_supportlib/phusion_passenger/platform_info/operating_system.rb +16 -16
  91. data/src/ruby_supportlib/phusion_passenger/platform_info/pcre.rb +1 -1
  92. data/src/ruby_supportlib/phusion_passenger/platform_info/ruby.rb +29 -28
  93. data/src/ruby_supportlib/phusion_passenger/platform_info/zlib.rb +2 -2
  94. data/src/ruby_supportlib/phusion_passenger/platform_info.rb +37 -36
  95. data/src/ruby_supportlib/phusion_passenger/plugin.rb +3 -3
  96. data/src/ruby_supportlib/phusion_passenger/preloader_shared_helpers.rb +16 -15
  97. data/src/ruby_supportlib/phusion_passenger/public_api.rb +1 -1
  98. data/src/ruby_supportlib/phusion_passenger/rack/handler.rb +1 -1
  99. data/src/ruby_supportlib/phusion_passenger/rack/out_of_band_gc.rb +5 -4
  100. data/src/ruby_supportlib/phusion_passenger/rack/thread_handler_extension.rb +8 -7
  101. data/src/ruby_supportlib/phusion_passenger/request_handler/thread_handler.rb +9 -11
  102. data/src/ruby_supportlib/phusion_passenger/request_handler.rb +27 -26
  103. data/src/ruby_supportlib/phusion_passenger/ruby_core_enhancements.rb +6 -5
  104. data/src/ruby_supportlib/phusion_passenger/ruby_core_io_enhancements.rb +7 -6
  105. data/src/ruby_supportlib/phusion_passenger/standalone/app_finder.rb +13 -13
  106. data/src/ruby_supportlib/phusion_passenger/standalone/command.rb +1 -1
  107. data/src/ruby_supportlib/phusion_passenger/standalone/config_options_list.rb +351 -351
  108. data/src/ruby_supportlib/phusion_passenger/standalone/main.rb +11 -11
  109. data/src/ruby_supportlib/phusion_passenger/standalone/start_command/builtin_engine.rb +13 -14
  110. data/src/ruby_supportlib/phusion_passenger/standalone/start_command/nginx_engine.rb +21 -23
  111. data/src/ruby_supportlib/phusion_passenger/standalone/start_command.rb +4 -4
  112. data/src/ruby_supportlib/phusion_passenger/standalone/status_command.rb +5 -5
  113. data/src/ruby_supportlib/phusion_passenger/standalone/stop_command.rb +6 -6
  114. data/src/ruby_supportlib/phusion_passenger/standalone/version_command.rb +1 -1
  115. data/src/ruby_supportlib/phusion_passenger/utils/download.rb +12 -11
  116. data/src/ruby_supportlib/phusion_passenger/utils/file_system_watcher.rb +9 -9
  117. data/src/ruby_supportlib/phusion_passenger/utils/hosts_file_parser.rb +8 -7
  118. data/src/ruby_supportlib/phusion_passenger/utils/json.rb +7 -6
  119. data/src/ruby_supportlib/phusion_passenger/utils/native_support_utils.rb +4 -4
  120. data/src/ruby_supportlib/phusion_passenger/utils/progress_bar.rb +1 -1
  121. data/src/ruby_supportlib/phusion_passenger/utils/shellwords.rb +1 -1
  122. data/src/ruby_supportlib/phusion_passenger/utils/strscan.rb +1 -0
  123. data/src/ruby_supportlib/phusion_passenger/utils/tee_input.rb +1 -0
  124. data/src/ruby_supportlib/phusion_passenger/utils/terminal_choice_menu.rb +13 -12
  125. data/src/ruby_supportlib/phusion_passenger/utils/tmpio.rb +2 -3
  126. data/src/ruby_supportlib/phusion_passenger/utils/unseekable_socket.rb +7 -7
  127. data/src/ruby_supportlib/phusion_passenger/utils.rb +17 -16
  128. data/src/ruby_supportlib/phusion_passenger/vendor/crash_watch/app.rb +1 -0
  129. data/src/ruby_supportlib/phusion_passenger/vendor/crash_watch/gdb_controller.rb +3 -2
  130. data/src/ruby_supportlib/phusion_passenger/vendor/crash_watch/lldb_controller.rb +2 -1
  131. data/src/ruby_supportlib/phusion_passenger/vendor/crash_watch/utils.rb +3 -2
  132. data/src/ruby_supportlib/phusion_passenger/vendor/daemon_controller.rb +13 -13
  133. data/src/ruby_supportlib/phusion_passenger.rb +27 -26
  134. metadata +3 -3
@@ -29,10 +29,10 @@ module PhusionPassenger
29
29
  # Core of the `passenger` command (Passenger Standalone). Dispatches a subcommand to a specific class.
30
30
  module Standalone
31
31
  KNOWN_COMMANDS = [
32
- ["start", "StartCommand"],
33
- ["stop", "StopCommand"],
34
- ["status", "StatusCommand"],
35
- ["version", "VersionCommand"]
32
+ [ "start", "StartCommand" ],
33
+ [ "stop", "StopCommand" ],
34
+ [ "status", "StatusCommand" ],
35
+ [ "version", "VersionCommand" ],
36
36
  ]
37
37
 
38
38
  def self.run!(argv)
@@ -69,15 +69,15 @@ module PhusionPassenger
69
69
 
70
70
  private
71
71
  def self.help_requested?(argv)
72
- return argv.size == 1 && (argv[0] == "--help" || argv[0] == "-h" || argv[0] == "help")
72
+ argv.size == 1 && (argv[0] == "--help" || argv[0] == "-h" || argv[0] == "help")
73
73
  end
74
74
 
75
75
  def self.version_requested?(argv)
76
- return argv.size == 1 && (argv[0] == "--version" || argv[0] == "-v")
76
+ argv.size == 1 && (argv[0] == "--version" || argv[0] == "-v")
77
77
  end
78
78
 
79
79
  def self.show_version
80
- command_class, new_argv = lookup_command_class_by_argv(["version"])
80
+ command_class, new_argv = lookup_command_class_by_argv([ "version" ])
81
81
  command_class.new(new_argv).run
82
82
  end
83
83
 
@@ -86,18 +86,18 @@ module PhusionPassenger
86
86
 
87
87
  # Convert "passenger help <COMMAND>" to "passenger <COMMAND> --help".
88
88
  if argv.size == 2 && argv[0] == "help"
89
- argv = [argv[1], "--help"]
89
+ argv = [ argv[1], "--help" ]
90
90
  end
91
91
 
92
92
  KNOWN_COMMANDS.each do |props|
93
93
  if argv[0] == props[0]
94
94
  command_class = lookup_command_class_by_class_name(props[1])
95
95
  new_argv = argv[1 .. -1]
96
- return [command_class, new_argv]
96
+ return [ command_class, new_argv ]
97
97
  end
98
98
  end
99
99
 
100
- return nil
100
+ nil
101
101
  end
102
102
 
103
103
  def self.lookup_command_class_by_class_name(class_name)
@@ -107,7 +107,7 @@ module PhusionPassenger
107
107
  base_name.sub!(/^_/, '')
108
108
  base_name << ".rb"
109
109
  PhusionPassenger.require_passenger_lib("standalone/#{base_name}")
110
- return PhusionPassenger::Standalone.const_get(class_name)
110
+ PhusionPassenger::Standalone.const_get(class_name)
111
111
  end
112
112
  end
113
113
 
@@ -1,4 +1,5 @@
1
1
  # encoding: utf-8
2
+
2
3
  # Phusion Passenger - https://www.phusionpassenger.com/
3
4
  # Copyright (c) 2014-2025 Asynchronous B.V.
4
5
  #
@@ -34,7 +35,6 @@ PhusionPassenger.require_passenger_lib 'utils/json'
34
35
  module PhusionPassenger
35
36
  module Standalone
36
37
  class StartCommand
37
-
38
38
  module BuiltinEngine
39
39
  private
40
40
  def start_engine_real
@@ -97,7 +97,7 @@ module PhusionPassenger
97
97
  end
98
98
  end
99
99
 
100
- command << "#{@agent_exe} watchdog";
100
+ command << "#{@agent_exe} watchdog"
101
101
  command << " --passenger-root #{Shellwords.escape PhusionPassenger.install_spec}"
102
102
  command << " --daemonize"
103
103
  command << " --no-user-switching"
@@ -195,27 +195,27 @@ module PhusionPassenger
195
195
  command << " --EC --BU"
196
196
  add_param(command, :core_file_descriptor_ulimit, "--core-file-descriptor-ulimit")
197
197
 
198
- return {
199
- :identifier => "#{AGENT_EXE} watchdog",
200
- :start_command => command,
201
- :ping_command => ping_spec,
202
- :pid_file => @options[:pid_file],
203
- :log_file => @options[:log_file],
204
- :start_timeout => 25,
205
- :stop_timeout => @options[:stop_timeout]
198
+ {
199
+ identifier: "#{AGENT_EXE} watchdog",
200
+ start_command: command,
201
+ ping_command: ping_spec,
202
+ pid_file: @options[:pid_file],
203
+ log_file: @options[:log_file],
204
+ start_timeout: 25,
205
+ stop_timeout: @options[:stop_timeout],
206
206
  }
207
207
  end
208
208
 
209
209
  def listen_address(options = @options, for_ping_port = false)
210
210
  if options[:socket_file]
211
- return "unix:#{options[:socket_file]}"
211
+ "unix:#{options[:socket_file]}"
212
212
  else
213
- return "tcp://" + compose_ip_and_port(options[:address], options[:port])
213
+ "tcp://" + compose_ip_and_port(options[:address], options[:port])
214
214
  end
215
215
  end
216
216
 
217
217
  def prestart_urls_json
218
- PhusionPassenger::Utils::JSON.generate([listen_url(@apps[0])])
218
+ PhusionPassenger::Utils::JSON.generate([ listen_url(@apps[0]) ])
219
219
  end
220
220
 
221
221
  def add_param(command, option_name, param_name)
@@ -274,7 +274,6 @@ module PhusionPassenger
274
274
 
275
275
  #####################
276
276
  end # module BuiltinEngine
277
-
278
277
  end # module StartCommand
279
278
  end # module Standalone
280
279
  end # module PhusionPassenger
@@ -35,7 +35,6 @@ PhusionPassenger.require_passenger_lib 'utils/json'
35
35
  module PhusionPassenger
36
36
  module Standalone
37
37
  class StartCommand
38
-
39
38
  module NginxEngine
40
39
  private
41
40
  def start_engine_real
@@ -121,7 +120,7 @@ module PhusionPassenger
121
120
  "message returned by the Nginx engine is:\n\n" \
122
121
  "#{output}\n\n"
123
122
  debug_log_file = Utils::TmpIO.new('passenger-standalone',
124
- :suffix => '.log', :binary => true, :unlink_immediately => false)
123
+ suffix: '.log', binary: true, unlink_immediately: false)
125
124
  begin
126
125
  File.open(path, 'rb') do |f|
127
126
  debug_log_file.write(f.read)
@@ -149,31 +148,31 @@ module PhusionPassenger
149
148
 
150
149
  def build_daemon_controller_options
151
150
  if @options[:socket_file]
152
- ping_spec = [:unix, @options[:socket_file]]
151
+ ping_spec = [ :unix, @options[:socket_file] ]
153
152
  else
154
- ping_spec = [:tcp, @options[:address], @options[:port]]
153
+ ping_spec = [ :tcp, @options[:address], @options[:port] ]
155
154
  end
156
- return {
157
- :identifier => 'Nginx',
158
- :start_command => "#{Shellwords.escape @nginx_binary} " \
155
+ {
156
+ identifier: 'Nginx',
157
+ start_command: "#{Shellwords.escape @nginx_binary} " \
159
158
  "-c #{Shellwords.escape nginx_config_path} " \
160
159
  "-p #{Shellwords.escape @working_dir}",
161
- :stop_command => "#{Shellwords.escape @nginx_binary} " \
160
+ stop_command: "#{Shellwords.escape @nginx_binary} " \
162
161
  "-c #{Shellwords.escape nginx_config_path} " \
163
162
  "-p #{Shellwords.escape @working_dir} " \
164
163
  '-s quit',
165
- :ping_command => ping_spec,
166
- :pid_file => @options[:pid_file],
167
- :log_file => @options[:log_file],
168
- :start_timeout => 25,
169
- :stop_timeout => @options[:stop_timeout],
170
- :log_file_activity_timeout => 12,
171
- :dont_stop_if_pid_file_invalid => true
164
+ ping_command: ping_spec,
165
+ pid_file: @options[:pid_file],
166
+ log_file: @options[:log_file],
167
+ start_timeout: 25,
168
+ stop_timeout: @options[:stop_timeout],
169
+ log_file_activity_timeout: 12,
170
+ dont_stop_if_pid_file_invalid: true,
172
171
  }
173
172
  end
174
173
 
175
174
  def nginx_config_path
176
- return "#{@working_dir}/nginx.conf"
175
+ "#{@working_dir}/nginx.conf"
177
176
  end
178
177
 
179
178
  def write_nginx_config_file(path)
@@ -200,15 +199,15 @@ module PhusionPassenger
200
199
 
201
200
  def nginx_config_template_filename
202
201
  if @options[:nginx_config_template]
203
- return @options[:nginx_config_template]
202
+ @options[:nginx_config_template]
204
203
  else
205
- return File.join(PhusionPassenger.resources_dir,
204
+ File.join(PhusionPassenger.resources_dir,
206
205
  "templates", "standalone", "config.erb")
207
206
  end
208
207
  end
209
208
 
210
209
  def debugging?
211
- return ENV['PASSENGER_DEBUG'] && !ENV['PASSENGER_DEBUG'].empty?
210
+ ENV['PASSENGER_DEBUG'] && !ENV['PASSENGER_DEBUG'].empty?
212
211
  end
213
212
 
214
213
  def next_eoutvar
@@ -238,7 +237,7 @@ module PhusionPassenger
238
237
  def default_group_for(username)
239
238
  user = Etc.getpwnam(username)
240
239
  group = Etc.getgrgid(user.gid)
241
- return group.name
240
+ group.name
242
241
  end
243
242
 
244
243
  def nginx_http_option(option_name)
@@ -318,7 +317,7 @@ module PhusionPassenger
318
317
  def default_group_for(username)
319
318
  user = Etc.getpwnam(username)
320
319
  group = Etc.getgrgid(user.gid)
321
- return group.name
320
+ group.name
322
321
  end
323
322
 
324
323
  def serialize_strset(*items)
@@ -328,12 +327,11 @@ module PhusionPassenger
328
327
  else
329
328
  null = "\0"
330
329
  end
331
- return [items.join(null)].pack('m*').gsub("\n", "").strip
330
+ [ items.join(null) ].pack('m*').gsub("\n", "").strip
332
331
  end
333
332
 
334
333
  #####################
335
334
  end # module NginxEngine
336
-
337
335
  end # module StartCommand
338
336
  end # module Standalone
339
337
  end # module PhusionPassenger
@@ -235,7 +235,7 @@ module PhusionPassenger
235
235
  # quickly switches to a mirror.
236
236
  "--connect-timeout", "0",
237
237
  "--engine", @options[:engine],
238
- "--idle-timeout", "0"
238
+ "--idle-timeout", "0",
239
239
  ]
240
240
  if @options[:auto]
241
241
  args << "--auto"
@@ -398,13 +398,13 @@ module PhusionPassenger
398
398
  end
399
399
 
400
400
  def touch_temp_dir_in_background
401
- command = [@agent_exe,
401
+ command = [ @agent_exe,
402
402
  "temp-dir-toucher",
403
403
  @working_dir,
404
404
  "--cleanup",
405
405
  "--daemonize",
406
406
  "--pid-file", "#{@working_dir}/temp_dir_toucher.pid",
407
- "--log-file", @options[:log_file]]
407
+ "--log-file", @options[:log_file] ]
408
408
  command << "--user" << @options[:user] unless @options[:user].nil?
409
409
  command << "--nginx-pid" << @engine.pid.to_s if @options[:engine] == 'nginx'
410
410
  result = system(*command)
@@ -487,7 +487,7 @@ module PhusionPassenger
487
487
  end
488
488
 
489
489
  def should_wait_until_engine_has_exited?
490
- return !@options[:daemonize] || @app_finder.multi_mode?
490
+ !@options[:daemonize] || @app_finder.multi_mode?
491
491
  end
492
492
 
493
493
 
@@ -110,11 +110,11 @@ module PhusionPassenger
110
110
  def create_controller
111
111
  Standalone::ControlUtils.require_daemon_controller
112
112
  @controller = DaemonController.new(
113
- :identifier => "#{PROGRAM_NAME} Standalone engine",
114
- :start_command => "true", # Doesn't matter
115
- :ping_command => "true", # Doesn't matter
116
- :pid_file => @options[:pid_file],
117
- :log_file => "/dev/null"
113
+ identifier: "#{PROGRAM_NAME} Standalone engine",
114
+ start_command: "true", # Doesn't matter
115
+ ping_command: "true", # Doesn't matter
116
+ pid_file: @options[:pid_file],
117
+ log_file: "/dev/null"
118
118
  )
119
119
  end
120
120
  end
@@ -126,12 +126,12 @@ module PhusionPassenger
126
126
  def create_controller
127
127
  Standalone::ControlUtils.require_daemon_controller
128
128
  @controller = DaemonController.new(
129
- :identifier => "#{PROGRAM_NAME} Standalone engine",
130
- :start_command => "true", # Doesn't matter
131
- :ping_command => "true", # Doesn't matter
132
- :pid_file => @options[:pid_file],
133
- :log_file => "/dev/null",
134
- :stop_timeout => @options[:stop_timeout]
129
+ identifier: "#{PROGRAM_NAME} Standalone engine",
130
+ start_command: "true", # Doesn't matter
131
+ ping_command: "true", # Doesn't matter
132
+ pid_file: @options[:pid_file],
133
+ log_file: "/dev/null",
134
+ stop_timeout: @options[:stop_timeout]
135
135
  )
136
136
  end
137
137
  end
@@ -30,7 +30,7 @@ module PhusionPassenger
30
30
 
31
31
  class VersionCommand < Command
32
32
  def run
33
- command = PhusionPassenger::Config::AboutCommand.new(['version'])
33
+ command = PhusionPassenger::Config::AboutCommand.new([ 'version' ])
34
34
  command.run
35
35
  end
36
36
  end
@@ -1,4 +1,5 @@
1
1
  # encoding: utf-8
2
+
2
3
  # Phusion Passenger - https://www.phusionpassenger.com/
3
4
  # Copyright (c) 2013-2025 Asynchronous B.V.
4
5
  #
@@ -63,8 +64,8 @@ module PhusionPassenger
63
64
  # Set to nil to disable this timeout. Default: nil.
64
65
  def download(url, output, options = {})
65
66
  options = {
66
- :connect_timeout => 4,
67
- :idle_timeout => 5
67
+ connect_timeout: 4,
68
+ idle_timeout: 5,
68
69
  }.merge(options)
69
70
  logger = options[:logger] || Logger.new(STDERR)
70
71
 
@@ -78,22 +79,22 @@ module PhusionPassenger
78
79
  end
79
80
 
80
81
  if PlatformInfo.find_command("curl")
81
- return download_with_curl(logger, url, output, options)
82
+ download_with_curl(logger, url, output, options)
82
83
  elsif PlatformInfo.find_command("wget")
83
- return download_with_wget(logger, url, output, options)
84
+ download_with_wget(logger, url, output, options)
84
85
  else
85
86
  logger.error "Could not download #{url}: no download tool found (curl or wget required)"
86
- return false
87
+ false
87
88
  end
88
89
  end
89
90
 
90
91
  private
91
92
  def basename_from_url(url)
92
- return url.sub(/.*\//, '')
93
+ url.sub(/.*\//, '')
93
94
  end
94
95
 
95
96
  def download_with_curl(logger, url, output, options)
96
- command = ["curl", "-f", "-L", "-o", output]
97
+ command = [ "curl", "-f", "-L", "-o", output ]
97
98
  if options[:show_progress]
98
99
  command << "-#"
99
100
  else
@@ -167,15 +168,15 @@ module PhusionPassenger
167
168
  end
168
169
  end
169
170
 
170
- return result
171
+ result
171
172
  end
172
173
 
173
174
  def remove_curl_output_prefix(line)
174
- return line.gsub(/^curl: (\([0-9]+\) )?/, '')
175
+ line.gsub(/^curl: (\([0-9]+\) )?/, '')
175
176
  end
176
177
 
177
178
  def download_with_wget(logger, url, output, options)
178
- command = ["wget", "--tries=1", "-O", output]
179
+ command = [ "wget", "--tries=1", "-O", output ]
179
180
  if !options[:show_progress]
180
181
  command << "-nv"
181
182
  end
@@ -219,7 +220,7 @@ module PhusionPassenger
219
220
  end
220
221
  end
221
222
 
222
- return result
223
+ result
223
224
  end
224
225
  end
225
226
 
@@ -64,11 +64,11 @@ module PhusionPassenger
64
64
  filenames = filenames.map do |filename|
65
65
  filename.to_s
66
66
  end
67
- return _new(filenames, termination_pipe)
67
+ _new(filenames, termination_pipe)
68
68
  end
69
69
 
70
70
  def self.opens_files?
71
- return true
71
+ true
72
72
  end
73
73
  end
74
74
  else
@@ -76,7 +76,7 @@ module PhusionPassenger
76
76
  attr_accessor :poll_interval
77
77
 
78
78
  def self.opens_files?
79
- return false
79
+ false
80
80
  end
81
81
 
82
82
  def initialize(filenames, termination_pipe = nil)
@@ -107,7 +107,7 @@ module PhusionPassenger
107
107
  while true
108
108
  if changed?
109
109
  return true
110
- elsif select([@termination_pipe], nil, nil, @poll_interval)
110
+ elsif select([ @termination_pipe ], nil, nil, @poll_interval)
111
111
  return nil
112
112
  end
113
113
  end
@@ -151,9 +151,9 @@ module PhusionPassenger
151
151
  end
152
152
  end
153
153
 
154
- return count != @subfiles.size
154
+ count != @subfiles.size
155
155
  rescue Errno::EACCES, Errno::ENOENT
156
- return true
156
+ true
157
157
  end
158
158
  end
159
159
 
@@ -170,14 +170,14 @@ module PhusionPassenger
170
170
  else
171
171
  mtime_changed = false
172
172
  end
173
- return @stat.ino != new_stat.ino || @stat.ftype != new_stat.ftype || mtime_changed
173
+ @stat.ino != new_stat.ino || @stat.ftype != new_stat.ftype || mtime_changed
174
174
  rescue Errno::EACCES, Errno::ENOENT
175
- return true
175
+ true
176
176
  end
177
177
  end
178
178
 
179
179
  def changed?
180
- return @dirs.any? { |dir_info| dir_info.changed? } ||
180
+ @dirs.any? { |dir_info| dir_info.changed? } ||
181
181
  @files.any? { |file_info| file_info.changed? }
182
182
  end
183
183
  end
@@ -1,4 +1,5 @@
1
1
  # encoding: binary
2
+
2
3
  # Phusion Passenger - https://www.phusionpassenger.com/
3
4
  # Copyright (c) 2010-2025 Asynchronous B.V.
4
5
  #
@@ -47,24 +48,24 @@ module PhusionPassenger
47
48
  end
48
49
 
49
50
  def ip_count
50
- return @ips.size
51
+ @ips.size
51
52
  end
52
53
 
53
54
  def host_count
54
- return @host_names.size
55
+ @host_names.size
55
56
  end
56
57
 
57
58
  def resolve(host_name)
58
59
  if host_name.downcase == "localhost"
59
- return "127.0.0.1"
60
+ "127.0.0.1"
60
61
  else
61
- return @host_names[host_name.downcase]
62
+ @host_names[host_name.downcase]
62
63
  end
63
64
  end
64
65
 
65
66
  def resolves_to_localhost?(hostname)
66
67
  ip = resolve(hostname)
67
- return ip == "127.0.0.1" || ip == "::1" || ip == "0.0.0.0"
68
+ ip == "127.0.0.1" || ip == "::1" || ip == "0.0.0.0"
68
69
  end
69
70
 
70
71
  def add_group_data(marker, data)
@@ -113,7 +114,7 @@ module PhusionPassenger
113
114
  line = line.strip
114
115
  return nil if line.empty?
115
116
  ip, *host_names = line.split(/[ \t]+/)
116
- return [ip, host_names]
117
+ [ ip, host_names ]
117
118
  end
118
119
 
119
120
  def find_line(start_index, content)
@@ -125,7 +126,7 @@ module PhusionPassenger
125
126
  i += 1
126
127
  end
127
128
  end
128
- return nil
129
+ nil
129
130
  end
130
131
  end
131
132
 
@@ -1,4 +1,5 @@
1
1
  # encoding: utf-8
2
+
2
3
  #
3
4
  ## Stupid small pure Ruby JSON parser & generator.
4
5
  #
@@ -55,7 +56,7 @@ class JSON
55
56
  def_delegators :scanner, :scan, :matched
56
57
  private :s, :scan, :matched
57
58
 
58
- def initialize data
59
+ def initialize(data)
59
60
  @scanner = PhusionPassenger::Utils::StringScanner.new data.to_s
60
61
  end
61
62
 
@@ -105,7 +106,7 @@ class JSON
105
106
  ary
106
107
  end
107
108
 
108
- SPEC = {'b' => "\b", 'f' => "\f", 'n' => "\n", 'r' => "\r", 't' => "\t"}
109
+ SPEC = { 'b' => "\b", 'f' => "\f", 'n' => "\n", 'r' => "\r", 't' => "\t" }
109
110
  UNI = 'u'; CODE = /[a-fA-F0-9]{4}/
110
111
  STR = /"/; STE = '"'
111
112
  ESC = '\\'
@@ -133,7 +134,7 @@ class JSON
133
134
  raise "parse error at: #{scan(/.{1,20}/m).inspect}"
134
135
  end
135
136
 
136
- def repeat_until reg
137
+ def repeat_until(reg)
137
138
  until scan(reg)
138
139
  pos = s.pos
139
140
  yield
@@ -157,7 +158,7 @@ class JSON
157
158
  end
158
159
  end
159
160
 
160
- ESC_MAP = Hash.new {|h,k| k }.update \
161
+ ESC_MAP = Hash.new { |h, k| k }.update \
161
162
  "\r" => 'r',
162
163
  "\n" => 'n',
163
164
  "\f" => 'f',
@@ -167,7 +168,7 @@ class JSON
167
168
  def quote(str) %("#{str}") end
168
169
 
169
170
  def generate_String(str)
170
- quote str.gsub(/[\r\n\f\t\b"\\]/) { "\\#{ESC_MAP[$&]}"}
171
+ quote str.gsub(/[\r\n\f\t\b"\\]/) { "\\#{ESC_MAP[$&]}" }
171
172
  end
172
173
 
173
174
  def generate_VersionComparer(vc)
@@ -188,7 +189,7 @@ class JSON
188
189
 
189
190
  def generate_NilClass(*) 'null' end
190
191
 
191
- def generate_Array(ary) '[%s]' % ary.map {|o| generate_type(o) }.join(', ') end
192
+ def generate_Array(ary) '[%s]' % ary.map { |o| generate_type(o) }.join(', ') end
192
193
 
193
194
  def generate_Hash(hash)
194
195
  '{%s}' % hash.map { |key, value|
@@ -35,12 +35,12 @@ module PhusionPassenger
35
35
  # Split the given string into an hash. Keys and values are obtained by splitting the
36
36
  # string using the null character as the delimitor.
37
37
  def split_by_null_into_hash(data)
38
- return PhusionPassenger::NativeSupport.split_by_null_into_hash(data)
38
+ PhusionPassenger::NativeSupport.split_by_null_into_hash(data)
39
39
  end
40
40
 
41
41
  # Wrapper for getrusage().
42
42
  def process_times
43
- return PhusionPassenger::NativeSupport.process_times
43
+ PhusionPassenger::NativeSupport.process_times
44
44
  end
45
45
  else
46
46
  NULL = "\0".freeze
@@ -51,12 +51,12 @@ module PhusionPassenger
51
51
  def split_by_null_into_hash(data)
52
52
  args = data.split(NULL, -1)
53
53
  args.pop
54
- return Hash[*args]
54
+ Hash[*args]
55
55
  end
56
56
 
57
57
  def process_times
58
58
  times = Process.times
59
- return ProcessTimes.new((times.utime * 1_000_000).to_i,
59
+ ProcessTimes.new((times.utime * 1_000_000).to_i,
60
60
  (times.stime * 1_000_000).to_i)
61
61
  end
62
62
  end
@@ -25,7 +25,7 @@
25
25
  module PhusionPassenger
26
26
 
27
27
  class ProgressBar
28
- THROBBLER = ["-", "\\", "|", "/", "-"]
28
+ THROBBLER = [ "-", "\\", "|", "/", "-" ]
29
29
 
30
30
  def initialize(output = STDOUT)
31
31
  @output = output
@@ -15,7 +15,7 @@ if !Shellwords.respond_to?(:escape)
15
15
  # A LF cannot be escaped with a backslash because a backslash + LF
16
16
  # combo is regarded as line continuation and simply ignored.
17
17
  str.gsub!(/\n/, "'\n'")
18
- return str
18
+ str
19
19
  end
20
20
  end
21
21
  end
@@ -1,4 +1,5 @@
1
1
  # encoding: utf-8
2
+
2
3
  # Phusion Passenger - https://www.phusionpassenger.com/
3
4
  # Copyright (c) 2024-2025 Asynchronous B.V.
4
5
  #
@@ -1,4 +1,5 @@
1
1
  # encoding: binary
2
+
2
3
  #
3
4
  # This file is taken from Unicorn. The following license applies to this file
4
5
  # (and this file only, not to the rest of Phusion Passenger):