passenger 6.1.7 → 6.2.0
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.
- checksums.yaml +4 -4
- data/CHANGELOG +29 -2
- data/CONTRIBUTING.md +3 -3
- data/README.md +1 -1
- data/build/cxx_tests.rb +3 -0
- data/build/support/cxx_dependency_map.rb +1486 -665
- data/build/support/vendor/cxx_hinted_parser/lib/cxx_hinted_parser/parser.rb +2 -0
- data/build/support/vendor/cxxcodebuilder/lib/cxxcodebuilder/builder.rb +2 -0
- data/build/support/vendor/cxxcodebuilder/lib/cxxcodebuilder/initializer_builder.rb +2 -0
- data/dev/index_cxx_dependencies.rb +1 -1
- data/dev/runner +2 -0
- data/doc/DeveloperQuickstart.md +1 -1
- data/src/README.md +1 -1
- data/src/agent/Core/Config.h +1 -1
- data/src/agent/Core/Controller/Config.h +1 -1
- data/src/agent/Shared/ApiServerUtils.h +14 -9
- data/src/agent/Watchdog/{AgentWatcher.cpp → AgentWatcher.h} +28 -1
- data/src/agent/Watchdog/ApiServer.h +28 -5
- data/src/agent/Watchdog/Config.h +1 -1
- data/src/agent/Watchdog/{CoreWatcher.cpp → CoreWatcher.h} +18 -1
- data/src/agent/Watchdog/{InstanceDirToucher.cpp → InstanceDirToucher.h} +20 -1
- data/src/agent/Watchdog/WatchdogMain.cpp +11 -77
- data/src/agent/Watchdog/WorkingObjects.h +108 -0
- data/src/cxx_supportlib/Constants.h +1 -1
- data/src/cxx_supportlib/IOTools/IOUtils.cpp +2 -17
- data/src/cxx_supportlib/ServerKit/AcceptLoadBalancer.h +3 -0
- data/src/cxx_supportlib/ServerKit/Server.h +4 -21
- data/src/cxx_supportlib/Utils/Socket.cpp +67 -0
- data/src/cxx_supportlib/Utils/Socket.h +35 -0
- data/src/helper-scripts/meteor-loader.rb +3 -0
- data/src/helper-scripts/rack-loader.rb +3 -0
- data/src/helper-scripts/rack-preloader.rb +3 -0
- data/src/nginx_module/ContentHandler.c +13 -1
- data/src/ruby_supportlib/phusion_passenger/admin_tools/instance.rb +2 -0
- data/src/ruby_supportlib/phusion_passenger/admin_tools/instance_registry.rb +2 -0
- data/src/ruby_supportlib/phusion_passenger/admin_tools/memory_stats.rb +2 -0
- data/src/ruby_supportlib/phusion_passenger/admin_tools.rb +2 -0
- data/src/ruby_supportlib/phusion_passenger/apache2/config_utils.rb +6 -0
- data/src/ruby_supportlib/phusion_passenger/common_library.rb +3 -0
- data/src/ruby_supportlib/phusion_passenger/config/about_command.rb +2 -0
- data/src/ruby_supportlib/phusion_passenger/config/agent_compiler.rb +2 -0
- data/src/ruby_supportlib/phusion_passenger/config/api_call_command.rb +2 -0
- data/src/ruby_supportlib/phusion_passenger/config/build_native_support_command.rb +2 -0
- data/src/ruby_supportlib/phusion_passenger/config/command.rb +2 -0
- data/src/ruby_supportlib/phusion_passenger/config/compile_agent_command.rb +2 -0
- data/src/ruby_supportlib/phusion_passenger/config/compile_nginx_engine_command.rb +2 -0
- data/src/ruby_supportlib/phusion_passenger/config/detach_process_command.rb +2 -0
- data/src/ruby_supportlib/phusion_passenger/config/download_agent_command.rb +2 -0
- data/src/ruby_supportlib/phusion_passenger/config/download_nginx_engine_command.rb +2 -0
- data/src/ruby_supportlib/phusion_passenger/config/install_agent_command.rb +2 -0
- data/src/ruby_supportlib/phusion_passenger/config/install_standalone_runtime_command.rb +2 -0
- data/src/ruby_supportlib/phusion_passenger/config/installation_utils.rb +4 -0
- data/src/ruby_supportlib/phusion_passenger/config/list_instances_command.rb +2 -0
- data/src/ruby_supportlib/phusion_passenger/config/main.rb +2 -0
- data/src/ruby_supportlib/phusion_passenger/config/nginx_engine_compiler.rb +2 -0
- data/src/ruby_supportlib/phusion_passenger/config/reopen_logs_command.rb +2 -0
- data/src/ruby_supportlib/phusion_passenger/config/restart_app_command.rb +2 -0
- data/src/ruby_supportlib/phusion_passenger/config/system_metrics_command.rb +2 -0
- data/src/ruby_supportlib/phusion_passenger/config/system_properties_command.rb +2 -0
- data/src/ruby_supportlib/phusion_passenger/config/utils.rb +4 -0
- data/src/ruby_supportlib/phusion_passenger/config/validate_install_command.rb +2 -0
- data/src/ruby_supportlib/phusion_passenger/constants.rb +4 -0
- data/src/ruby_supportlib/phusion_passenger/debug_logging.rb +2 -0
- data/src/ruby_supportlib/phusion_passenger/loader_shared_helpers.rb +2 -0
- data/src/ruby_supportlib/phusion_passenger/packaging.rb +3 -0
- data/src/ruby_supportlib/phusion_passenger/platform_info/apache.rb +2 -0
- data/src/ruby_supportlib/phusion_passenger/platform_info/apache_detector.rb +2 -0
- data/src/ruby_supportlib/phusion_passenger/platform_info/binary_compatibility.rb +2 -0
- data/src/ruby_supportlib/phusion_passenger/platform_info/compiler.rb +2 -0
- data/src/ruby_supportlib/phusion_passenger/platform_info/crypto.rb +1 -0
- data/src/ruby_supportlib/phusion_passenger/platform_info/curl.rb +2 -0
- data/src/ruby_supportlib/phusion_passenger/platform_info/cxx_portability.rb +2 -0
- data/src/ruby_supportlib/phusion_passenger/platform_info/depcheck.rb +4 -0
- data/src/ruby_supportlib/phusion_passenger/platform_info/linux.rb +2 -0
- data/src/ruby_supportlib/phusion_passenger/platform_info/networking.rb +2 -0
- data/src/ruby_supportlib/phusion_passenger/platform_info/openssl.rb +2 -0
- data/src/ruby_supportlib/phusion_passenger/platform_info/operating_system.rb +2 -0
- data/src/ruby_supportlib/phusion_passenger/platform_info/pcre.rb +2 -0
- data/src/ruby_supportlib/phusion_passenger/platform_info/ruby.rb +2 -0
- data/src/ruby_supportlib/phusion_passenger/platform_info/zlib.rb +2 -0
- data/src/ruby_supportlib/phusion_passenger/platform_info.rb +2 -0
- data/src/ruby_supportlib/phusion_passenger/preloader_shared_helpers.rb +1 -0
- data/src/ruby_supportlib/phusion_passenger/public_api.rb +2 -0
- data/src/ruby_supportlib/phusion_passenger/rack/handler.rb +6 -0
- data/src/ruby_supportlib/phusion_passenger/rack/out_of_band_gc.rb +2 -0
- data/src/ruby_supportlib/phusion_passenger/rack/thread_handler_extension.rb +6 -0
- data/src/ruby_supportlib/phusion_passenger/rack_handler.rb +12 -0
- data/src/ruby_supportlib/phusion_passenger/request_handler/thread_handler.rb +2 -0
- data/src/ruby_supportlib/phusion_passenger/ruby_core_enhancements.rb +4 -0
- data/src/ruby_supportlib/phusion_passenger/standalone/app_finder.rb +2 -0
- data/src/ruby_supportlib/phusion_passenger/standalone/command.rb +2 -0
- data/src/ruby_supportlib/phusion_passenger/standalone/config_options_list.rb +4 -0
- data/src/ruby_supportlib/phusion_passenger/standalone/config_utils.rb +4 -0
- data/src/ruby_supportlib/phusion_passenger/standalone/control_utils.rb +4 -0
- data/src/ruby_supportlib/phusion_passenger/standalone/main.rb +2 -0
- data/src/ruby_supportlib/phusion_passenger/standalone/start_command/builtin_engine.rb +6 -0
- data/src/ruby_supportlib/phusion_passenger/standalone/start_command/nginx_engine.rb +6 -0
- data/src/ruby_supportlib/phusion_passenger/standalone/start_command.rb +2 -0
- data/src/ruby_supportlib/phusion_passenger/standalone/status_command.rb +2 -0
- data/src/ruby_supportlib/phusion_passenger/standalone/stop_command.rb +2 -0
- data/src/ruby_supportlib/phusion_passenger/standalone/version_command.rb +2 -0
- data/src/ruby_supportlib/phusion_passenger/utils/ansi_colors.rb +4 -0
- data/src/ruby_supportlib/phusion_passenger/utils/download.rb +4 -0
- data/src/ruby_supportlib/phusion_passenger/utils/file_system_watcher.rb +2 -0
- data/src/ruby_supportlib/phusion_passenger/utils/hosts_file_parser.rb +2 -0
- data/src/ruby_supportlib/phusion_passenger/utils/json.rb +4 -0
- data/src/ruby_supportlib/phusion_passenger/utils/lock.rb +2 -0
- data/src/ruby_supportlib/phusion_passenger/utils/native_support_utils.rb +4 -0
- data/src/ruby_supportlib/phusion_passenger/utils/strscan.rb +2 -0
- data/src/ruby_supportlib/phusion_passenger/utils/tee_input.rb +2 -0
- data/src/ruby_supportlib/phusion_passenger/utils/terminal_choice_menu.rb +2 -0
- data/src/ruby_supportlib/phusion_passenger/utils/tmpio.rb +2 -0
- data/src/ruby_supportlib/phusion_passenger/utils/unseekable_socket.rb +2 -0
- data/src/ruby_supportlib/phusion_passenger/utils.rb +2 -0
- data/src/ruby_supportlib/phusion_passenger/vendor/crash_watch/app.rb +2 -0
- data/src/ruby_supportlib/phusion_passenger/vendor/crash_watch/base.rb +2 -0
- data/src/ruby_supportlib/phusion_passenger/vendor/crash_watch/gdb_controller.rb +2 -0
- data/src/ruby_supportlib/phusion_passenger/vendor/crash_watch/lldb_controller.rb +2 -0
- data/src/ruby_supportlib/phusion_passenger/vendor/crash_watch/utils.rb +4 -0
- data/src/ruby_supportlib/phusion_passenger/vendor/crash_watch/version.rb +2 -0
- data/src/ruby_supportlib/phusion_passenger/vendor/daemon_controller/lock_file.rb +2 -0
- data/src/ruby_supportlib/phusion_passenger/vendor/daemon_controller/version.rb +2 -0
- data/src/ruby_supportlib/phusion_passenger.rb +7 -5
- metadata +9 -6
|
@@ -29,6 +29,7 @@ PhusionPassenger.require_passenger_lib 'constants'
|
|
|
29
29
|
PhusionPassenger.require_passenger_lib 'config/command'
|
|
30
30
|
|
|
31
31
|
module PhusionPassenger
|
|
32
|
+
|
|
32
33
|
module Config
|
|
33
34
|
|
|
34
35
|
class ValidateInstallCommand < Command
|
|
@@ -751,4 +752,5 @@ module PhusionPassenger
|
|
|
751
752
|
end
|
|
752
753
|
|
|
753
754
|
end # module Config
|
|
755
|
+
|
|
754
756
|
end # module PhusionPassenger
|
|
@@ -23,6 +23,7 @@
|
|
|
23
23
|
# THE SOFTWARE.
|
|
24
24
|
|
|
25
25
|
module PhusionPassenger
|
|
26
|
+
|
|
26
27
|
PASSENGER_TXN_ID = "PASSENGER_TXN_ID".freeze
|
|
27
28
|
PASSENGER_APP_GROUP_NAME = "PASSENGER_APP_GROUP_NAME".freeze
|
|
28
29
|
PASSENGER_DELTA_MONOTONIC = "PASSENGER_DELTA_MONOTONIC".freeze
|
|
@@ -41,6 +42,7 @@ module PhusionPassenger
|
|
|
41
42
|
# is automatically generated by the build system from the following
|
|
42
43
|
# definitions.
|
|
43
44
|
module SharedConstants
|
|
45
|
+
|
|
44
46
|
# Default config values
|
|
45
47
|
DEFAULT_LOG_LEVEL = 3
|
|
46
48
|
DEFAULT_LOG_LEVEL_NAME = "notice"
|
|
@@ -131,9 +133,11 @@ module PhusionPassenger
|
|
|
131
133
|
RPM_DEV_PACKAGE = "passenger-devel"
|
|
132
134
|
RPM_APACHE_MODULE_PACKAGE = "mod_passenger"
|
|
133
135
|
RPM_NGINX_PACKAGE = "nginx"
|
|
136
|
+
|
|
134
137
|
end
|
|
135
138
|
|
|
136
139
|
SharedConstants.constants.each do |name|
|
|
137
140
|
const_set(name, SharedConstants.const_get(name)) unless const_defined? name
|
|
138
141
|
end
|
|
142
|
+
|
|
139
143
|
end
|
|
@@ -27,6 +27,7 @@ PhusionPassenger.require_passenger_lib 'constants'
|
|
|
27
27
|
module PhusionPassenger
|
|
28
28
|
|
|
29
29
|
module DebugLogging
|
|
30
|
+
|
|
30
31
|
# We don't refer to STDERR directly because STDERR's reference might
|
|
31
32
|
# change during runtime.
|
|
32
33
|
@@log_level = DEFAULT_LOG_LEVEL
|
|
@@ -131,6 +132,7 @@ module PhusionPassenger
|
|
|
131
132
|
end
|
|
132
133
|
end
|
|
133
134
|
module_function :_output
|
|
135
|
+
|
|
134
136
|
end
|
|
135
137
|
|
|
136
138
|
end
|
|
@@ -28,6 +28,7 @@ module PhusionPassenger
|
|
|
28
28
|
|
|
29
29
|
# Provides shared functions for loader and preloader apps.
|
|
30
30
|
module LoaderSharedHelpers
|
|
31
|
+
|
|
31
32
|
extend self
|
|
32
33
|
|
|
33
34
|
# To be called by the (pre)loader as soon as possible.
|
|
@@ -991,6 +992,7 @@ module PhusionPassenger
|
|
|
991
992
|
def home_dir
|
|
992
993
|
PhusionPassenger.home_dir
|
|
993
994
|
end
|
|
995
|
+
|
|
994
996
|
end
|
|
995
997
|
|
|
996
998
|
end # module PhusionPassenger
|
|
@@ -25,6 +25,7 @@
|
|
|
25
25
|
module PhusionPassenger
|
|
26
26
|
|
|
27
27
|
module Packaging
|
|
28
|
+
|
|
28
29
|
# Files that must be generated before packaging.
|
|
29
30
|
PREGENERATED_FILES = [
|
|
30
31
|
'src/cxx_supportlib/Constants.h',
|
|
@@ -94,6 +95,7 @@ module PhusionPassenger
|
|
|
94
95
|
'.settings/**/*',
|
|
95
96
|
'.vscode/**/*',
|
|
96
97
|
'.cproject',
|
|
98
|
+
'.rubocop.yml',
|
|
97
99
|
'compile_commands.json',
|
|
98
100
|
'.gitattributes',
|
|
99
101
|
'.gitignore',
|
|
@@ -122,6 +124,7 @@ module PhusionPassenger
|
|
|
122
124
|
result.reject! { |path| path =~ %r{/\.\.?$} }
|
|
123
125
|
result
|
|
124
126
|
end
|
|
127
|
+
|
|
125
128
|
end
|
|
126
129
|
|
|
127
130
|
end # module PhusionPassenger
|
|
@@ -44,6 +44,7 @@ module PhusionPassenger
|
|
|
44
44
|
# Apache.
|
|
45
45
|
|
|
46
46
|
module PlatformInfo
|
|
47
|
+
|
|
47
48
|
################ Programs ################
|
|
48
49
|
|
|
49
50
|
# The absolute path to the 'apxs' or 'apxs2' executable, or nil if not found.
|
|
@@ -1032,6 +1033,7 @@ module PhusionPassenger
|
|
|
1032
1033
|
res
|
|
1033
1034
|
end
|
|
1034
1035
|
private_class_method :unescape_c_string
|
|
1036
|
+
|
|
1035
1037
|
end
|
|
1036
1038
|
|
|
1037
1039
|
end
|
|
@@ -30,6 +30,7 @@ PhusionPassenger.require_passenger_lib 'utils/ansi_colors'
|
|
|
30
30
|
require 'pathname'
|
|
31
31
|
|
|
32
32
|
module PhusionPassenger
|
|
33
|
+
|
|
33
34
|
module PlatformInfo
|
|
34
35
|
|
|
35
36
|
# Detects all possible Apache installations on the system, and presents the
|
|
@@ -310,4 +311,5 @@ module PhusionPassenger
|
|
|
310
311
|
end
|
|
311
312
|
|
|
312
313
|
end
|
|
314
|
+
|
|
313
315
|
end # module Phusion Passenger
|
|
@@ -30,6 +30,7 @@ PhusionPassenger.require_passenger_lib 'platform_info/operating_system'
|
|
|
30
30
|
module PhusionPassenger
|
|
31
31
|
|
|
32
32
|
module PlatformInfo
|
|
33
|
+
|
|
33
34
|
# Returns a string that describes the current Ruby
|
|
34
35
|
# interpreter's extension binary compatibility. A Ruby extension
|
|
35
36
|
# compiled for a certain Ruby interpreter can also be loaded on
|
|
@@ -139,6 +140,7 @@ module PhusionPassenger
|
|
|
139
140
|
[ os_arch, os_name_simple, os_runtime ].compact.join("-")
|
|
140
141
|
end
|
|
141
142
|
memoize :cxx_binary_compatibility_id
|
|
143
|
+
|
|
142
144
|
end
|
|
143
145
|
|
|
144
146
|
end # module PhusionPassenger
|
|
@@ -28,6 +28,7 @@ PhusionPassenger.require_passenger_lib 'platform_info/operating_system'
|
|
|
28
28
|
module PhusionPassenger
|
|
29
29
|
|
|
30
30
|
module PlatformInfo
|
|
31
|
+
|
|
31
32
|
private
|
|
32
33
|
def self.detect_language_extension(language)
|
|
33
34
|
case language
|
|
@@ -657,6 +658,7 @@ module PhusionPassenger
|
|
|
657
658
|
nil
|
|
658
659
|
end
|
|
659
660
|
end
|
|
661
|
+
|
|
660
662
|
end
|
|
661
663
|
|
|
662
664
|
end # module PhusionPassenger
|
|
@@ -27,6 +27,7 @@ PhusionPassenger.require_passenger_lib 'platform_info'
|
|
|
27
27
|
module PhusionPassenger
|
|
28
28
|
|
|
29
29
|
module PlatformInfo
|
|
30
|
+
|
|
30
31
|
def self.curl_flags
|
|
31
32
|
result = `(curl-config --cflags) 2>/dev/null`.strip
|
|
32
33
|
if result.empty?
|
|
@@ -60,6 +61,7 @@ module PhusionPassenger
|
|
|
60
61
|
features =~ /SSL/
|
|
61
62
|
end
|
|
62
63
|
memoize :curl_supports_ssl?
|
|
64
|
+
|
|
63
65
|
end
|
|
64
66
|
|
|
65
67
|
end # module PhusionPassenger
|
|
@@ -29,6 +29,7 @@ PhusionPassenger.require_passenger_lib 'platform_info/operating_system'
|
|
|
29
29
|
module PhusionPassenger
|
|
30
30
|
|
|
31
31
|
module PlatformInfo
|
|
32
|
+
|
|
32
33
|
# Extra flags that should always be passed to the C compiler
|
|
33
34
|
# when linking, to be included last in the command string.
|
|
34
35
|
def self.portability_c_ldflags
|
|
@@ -204,6 +205,7 @@ module PhusionPassenger
|
|
|
204
205
|
result.join(' ')
|
|
205
206
|
end
|
|
206
207
|
private_class_method :portability_c_or_cxx_ldflags
|
|
208
|
+
|
|
207
209
|
end
|
|
208
210
|
|
|
209
211
|
end # module PhusionPassenger
|
|
@@ -9,6 +9,7 @@ PhusionPassenger.require_passenger_lib 'platform_info/operating_system'
|
|
|
9
9
|
PhusionPassenger.require_passenger_lib 'utils/ansi_colors'
|
|
10
10
|
|
|
11
11
|
module PhusionPassenger
|
|
12
|
+
|
|
12
13
|
module PlatformInfo
|
|
13
14
|
|
|
14
15
|
# Almost all software require other software in order to run. We call those
|
|
@@ -38,6 +39,7 @@ module PhusionPassenger
|
|
|
38
39
|
# should print as many details about the dependency as possible (location, version,
|
|
39
40
|
# etc) so that the user can override any decisions if necessary.
|
|
40
41
|
module Depcheck
|
|
42
|
+
|
|
41
43
|
THIS_DIR = File.expand_path(File.dirname(__FILE__))
|
|
42
44
|
@@loaded = {}
|
|
43
45
|
@@database = {}
|
|
@@ -391,7 +393,9 @@ module PhusionPassenger
|
|
|
391
393
|
puts " #{text}"
|
|
392
394
|
end
|
|
393
395
|
end # class ConsoleRunner
|
|
396
|
+
|
|
394
397
|
end # module Depcheck
|
|
395
398
|
|
|
396
399
|
end # module PlatformInfo
|
|
400
|
+
|
|
397
401
|
end # module PhusionPassenger
|
|
@@ -30,6 +30,7 @@ PhusionPassenger.require_passenger_lib 'platform_info/operating_system'
|
|
|
30
30
|
module PhusionPassenger
|
|
31
31
|
|
|
32
32
|
module PlatformInfo
|
|
33
|
+
|
|
33
34
|
# An identifier for the current Linux distribution. nil if the operating system is not Linux.
|
|
34
35
|
def self.linux_distro
|
|
35
36
|
tags = linux_distro_tags
|
|
@@ -84,6 +85,7 @@ module PhusionPassenger
|
|
|
84
85
|
# TODO: Slackware
|
|
85
86
|
end
|
|
86
87
|
memoize :linux_distro_tags
|
|
88
|
+
|
|
87
89
|
end
|
|
88
90
|
|
|
89
91
|
end # PhusionPassenger
|
|
@@ -31,6 +31,7 @@ PhusionPassenger.require_passenger_lib 'utils/shellwords'
|
|
|
31
31
|
module PhusionPassenger
|
|
32
32
|
|
|
33
33
|
module PlatformInfo
|
|
34
|
+
|
|
34
35
|
# Returns a list of network interfaces active on the current system, or
|
|
35
36
|
# nil if unable to autodetect.
|
|
36
37
|
#
|
|
@@ -289,6 +290,7 @@ module PhusionPassenger
|
|
|
289
290
|
[]
|
|
290
291
|
end
|
|
291
292
|
end
|
|
293
|
+
|
|
292
294
|
end
|
|
293
295
|
|
|
294
296
|
end # module PhusionPassenger
|
|
@@ -28,6 +28,7 @@ PhusionPassenger.require_passenger_lib 'platform_info/operating_system'
|
|
|
28
28
|
module PhusionPassenger
|
|
29
29
|
|
|
30
30
|
module PlatformInfo
|
|
31
|
+
|
|
31
32
|
def self.openssl_extra_cflags
|
|
32
33
|
if PlatformInfo.os_name_simple == "macosx"
|
|
33
34
|
if File.exist?("/usr/include/openssl")
|
|
@@ -66,6 +67,7 @@ module PhusionPassenger
|
|
|
66
67
|
end
|
|
67
68
|
end
|
|
68
69
|
memoize :openssl_extra_ldflags
|
|
70
|
+
|
|
69
71
|
end
|
|
70
72
|
|
|
71
73
|
end # module PhusionPassenger
|
|
@@ -29,6 +29,7 @@ PhusionPassenger.require_passenger_lib 'platform_info'
|
|
|
29
29
|
module PhusionPassenger
|
|
30
30
|
|
|
31
31
|
module PlatformInfo
|
|
32
|
+
|
|
32
33
|
class VersionComparer < String
|
|
33
34
|
def <=>(other)
|
|
34
35
|
Gem::Version.new(self) <=> Gem::Version.new(other.to_s)
|
|
@@ -228,6 +229,7 @@ module PhusionPassenger
|
|
|
228
229
|
`#{uname} -r`.include?("Microsoft")
|
|
229
230
|
end
|
|
230
231
|
memoize :windows_subsystem?, true
|
|
232
|
+
|
|
231
233
|
end
|
|
232
234
|
|
|
233
235
|
end # module PhusionPassenger
|
|
@@ -28,6 +28,7 @@ PhusionPassenger.require_passenger_lib 'platform_info/operating_system'
|
|
|
28
28
|
module PhusionPassenger
|
|
29
29
|
|
|
30
30
|
module PlatformInfo
|
|
31
|
+
|
|
31
32
|
def self.pcre_extra_cflags
|
|
32
33
|
cflags = ""
|
|
33
34
|
if PlatformInfo.os_name_simple == "macosx"
|
|
@@ -59,6 +60,7 @@ module PhusionPassenger
|
|
|
59
60
|
end
|
|
60
61
|
end
|
|
61
62
|
memoize :pcre_extra_ldflags
|
|
63
|
+
|
|
62
64
|
end
|
|
63
65
|
|
|
64
66
|
end # module PhusionPassenger
|
|
@@ -32,6 +32,7 @@ PhusionPassenger.require_passenger_lib 'platform_info/operating_system'
|
|
|
32
32
|
module PhusionPassenger
|
|
33
33
|
|
|
34
34
|
module PlatformInfo
|
|
35
|
+
|
|
35
36
|
# Store original $GEM_HOME value so that even if the app customizes
|
|
36
37
|
# $GEM_HOME we can still work with the original value.
|
|
37
38
|
gem_home = ENV['GEM_HOME']
|
|
@@ -515,6 +516,7 @@ module PhusionPassenger
|
|
|
515
516
|
end
|
|
516
517
|
end
|
|
517
518
|
private_class_method :transform_according_to_ruby_exec_format
|
|
519
|
+
|
|
518
520
|
end
|
|
519
521
|
|
|
520
522
|
end # module PhusionPassenger
|
|
@@ -27,6 +27,7 @@ PhusionPassenger.require_passenger_lib 'platform_info'
|
|
|
27
27
|
module PhusionPassenger
|
|
28
28
|
|
|
29
29
|
module PlatformInfo
|
|
30
|
+
|
|
30
31
|
def self.zlib_flags
|
|
31
32
|
nil
|
|
32
33
|
end
|
|
@@ -34,6 +35,7 @@ module PhusionPassenger
|
|
|
34
35
|
def self.zlib_libs
|
|
35
36
|
'-lz'
|
|
36
37
|
end
|
|
38
|
+
|
|
37
39
|
end
|
|
38
40
|
|
|
39
41
|
end # module PhusionPassenger
|
|
@@ -31,6 +31,7 @@ module PhusionPassenger
|
|
|
31
31
|
# This module autodetects various platform-specific information, and
|
|
32
32
|
# provides that information through constants.
|
|
33
33
|
module PlatformInfo
|
|
34
|
+
|
|
34
35
|
private
|
|
35
36
|
@@cache_dir = nil
|
|
36
37
|
@@verbose = [ '1', 'true', 'on', 'yes' ].include?(ENV['VERBOSE'])
|
|
@@ -426,6 +427,7 @@ module PhusionPassenger
|
|
|
426
427
|
end
|
|
427
428
|
result
|
|
428
429
|
end
|
|
430
|
+
|
|
429
431
|
end
|
|
430
432
|
|
|
431
433
|
end # module PhusionPassenger
|
|
@@ -25,8 +25,11 @@
|
|
|
25
25
|
# THE SOFTWARE.
|
|
26
26
|
|
|
27
27
|
module PhusionPassenger
|
|
28
|
+
|
|
28
29
|
module Rack
|
|
30
|
+
|
|
29
31
|
module Handler
|
|
32
|
+
|
|
30
33
|
def run(app, options = {})
|
|
31
34
|
result = system(ruby_executable, '-S', find_passenger_standalone,
|
|
32
35
|
'start', *build_args(options))
|
|
@@ -68,6 +71,9 @@ module PhusionPassenger
|
|
|
68
71
|
def find_passenger_standalone
|
|
69
72
|
::File.join(::PhusionPassenger.bin_dir, 'passenger')
|
|
70
73
|
end
|
|
74
|
+
|
|
71
75
|
end
|
|
76
|
+
|
|
72
77
|
end
|
|
78
|
+
|
|
73
79
|
end
|
|
@@ -28,18 +28,22 @@ PhusionPassenger.require_passenger_lib 'utils/tee_input'
|
|
|
28
28
|
|
|
29
29
|
if defined?(::Rack::BodyProxy) && !::Rack::BodyProxy.new("").respond_to?(:each)
|
|
30
30
|
module ::Rack
|
|
31
|
+
|
|
31
32
|
class BodyProxy
|
|
32
33
|
def each
|
|
33
34
|
@body.each { |body| yield body }
|
|
34
35
|
end
|
|
35
36
|
end
|
|
37
|
+
|
|
36
38
|
end
|
|
37
39
|
end
|
|
38
40
|
|
|
39
41
|
module PhusionPassenger
|
|
42
|
+
|
|
40
43
|
module Rack
|
|
41
44
|
|
|
42
45
|
module ThreadHandlerExtension
|
|
46
|
+
|
|
43
47
|
# Constants which exist to relieve Ruby's garbage collector.
|
|
44
48
|
RACK_VERSION = "rack.version" # :nodoc:
|
|
45
49
|
RACK_VERSION_VALUE = [ 1, 3 ] # :nodoc:
|
|
@@ -402,7 +406,9 @@ module PhusionPassenger
|
|
|
402
406
|
str.size
|
|
403
407
|
end
|
|
404
408
|
end
|
|
409
|
+
|
|
405
410
|
end
|
|
406
411
|
|
|
407
412
|
end # module Rack
|
|
413
|
+
|
|
408
414
|
end # module PhusionPassenger
|
|
@@ -43,11 +43,15 @@ require 'rackup' if Gem::Version.new(RUBY_VERSION) >= Gem::Version.new('2.4.0')
|
|
|
43
43
|
# Rackup was removed in Rack 3, it is now a separate gem
|
|
44
44
|
if Object.const_defined?(:Rackup) && ::Rackup.const_defined?(:Handler)
|
|
45
45
|
module Rackup
|
|
46
|
+
|
|
46
47
|
module Handler
|
|
48
|
+
|
|
47
49
|
module PhusionPassenger
|
|
50
|
+
|
|
48
51
|
class << self
|
|
49
52
|
include ::PhusionPassenger::Rack::Handler
|
|
50
53
|
end
|
|
54
|
+
|
|
51
55
|
end
|
|
52
56
|
|
|
53
57
|
def self.default(options = {})
|
|
@@ -55,20 +59,28 @@ if Object.const_defined?(:Rackup) && ::Rackup.const_defined?(:Handler)
|
|
|
55
59
|
end
|
|
56
60
|
|
|
57
61
|
register :passenger, PhusionPassenger
|
|
62
|
+
|
|
58
63
|
end
|
|
64
|
+
|
|
59
65
|
end
|
|
60
66
|
elsif Object.const_defined?(:Rack) && ::Rack.release < '3'
|
|
61
67
|
module Rack
|
|
68
|
+
|
|
62
69
|
module Handler
|
|
70
|
+
|
|
63
71
|
module PhusionPassenger
|
|
72
|
+
|
|
64
73
|
class << self
|
|
65
74
|
include ::PhusionPassenger::Rack::Handler
|
|
66
75
|
end
|
|
76
|
+
|
|
67
77
|
end
|
|
68
78
|
def self.default(options = {})
|
|
69
79
|
::Rack::Handler::PhusionPassenger
|
|
70
80
|
end
|
|
81
|
+
|
|
71
82
|
end
|
|
83
|
+
|
|
72
84
|
end
|
|
73
85
|
::Rack::Handler.register(:passenger, ::Rack::Handler::PhusionPassenger)
|
|
74
86
|
else
|
|
@@ -30,6 +30,7 @@ PhusionPassenger.require_passenger_lib 'utils/native_support_utils'
|
|
|
30
30
|
PhusionPassenger.require_passenger_lib 'utils/unseekable_socket'
|
|
31
31
|
|
|
32
32
|
module PhusionPassenger
|
|
33
|
+
|
|
33
34
|
class RequestHandler
|
|
34
35
|
# This class encapsulates the logic of a single RequestHandler thread.
|
|
35
36
|
class ThreadHandler
|
|
@@ -349,4 +350,5 @@ module PhusionPassenger
|
|
|
349
350
|
end
|
|
350
351
|
end
|
|
351
352
|
end # class RequestHandler
|
|
353
|
+
|
|
352
354
|
end # module PhusionPassenger
|
|
@@ -119,6 +119,7 @@ class File
|
|
|
119
119
|
end
|
|
120
120
|
|
|
121
121
|
module Signal
|
|
122
|
+
|
|
122
123
|
# Like Signal.list, but only returns signals that we can actually trap.
|
|
123
124
|
def self.list_trappable
|
|
124
125
|
ruby_engine = defined?(RUBY_ENGINE) ? RUBY_ENGINE : "ruby"
|
|
@@ -155,9 +156,11 @@ module Signal
|
|
|
155
156
|
|
|
156
157
|
result
|
|
157
158
|
end
|
|
159
|
+
|
|
158
160
|
end
|
|
159
161
|
|
|
160
162
|
module GC
|
|
163
|
+
|
|
161
164
|
if !respond_to?(:copy_on_write_friendly?)
|
|
162
165
|
# Checks whether the current Ruby interpreter's garbage
|
|
163
166
|
# collector is copy-on-write friendly.
|
|
@@ -165,4 +168,5 @@ module GC
|
|
|
165
168
|
false
|
|
166
169
|
end
|
|
167
170
|
end
|
|
171
|
+
|
|
168
172
|
end
|
|
@@ -27,6 +27,7 @@ PhusionPassenger.require_passenger_lib 'standalone/config_utils'
|
|
|
27
27
|
PhusionPassenger.require_passenger_lib 'utils/file_system_watcher'
|
|
28
28
|
|
|
29
29
|
module PhusionPassenger
|
|
30
|
+
|
|
30
31
|
module Standalone
|
|
31
32
|
|
|
32
33
|
class AppFinder
|
|
@@ -187,4 +188,5 @@ module PhusionPassenger
|
|
|
187
188
|
end
|
|
188
189
|
|
|
189
190
|
end # module Standalone
|
|
191
|
+
|
|
190
192
|
end # module PhusionPassenger
|
|
@@ -81,7 +81,9 @@ PhusionPassenger.require_passenger_lib 'platform_info/ruby'
|
|
|
81
81
|
# passed argument is acceptable.
|
|
82
82
|
|
|
83
83
|
module PhusionPassenger
|
|
84
|
+
|
|
84
85
|
module Standalone
|
|
86
|
+
|
|
85
87
|
# Server configuration options
|
|
86
88
|
SERVER_CONFIG_SPEC = [
|
|
87
89
|
{
|
|
@@ -723,5 +725,7 @@ module PhusionPassenger
|
|
|
723
725
|
end
|
|
724
726
|
end
|
|
725
727
|
end
|
|
728
|
+
|
|
726
729
|
end
|
|
730
|
+
|
|
727
731
|
end
|
|
@@ -26,9 +26,11 @@ PhusionPassenger.require_passenger_lib 'ruby_core_enhancements'
|
|
|
26
26
|
PhusionPassenger.require_passenger_lib 'standalone/config_options_list'
|
|
27
27
|
|
|
28
28
|
module PhusionPassenger
|
|
29
|
+
|
|
29
30
|
module Standalone
|
|
30
31
|
|
|
31
32
|
module ConfigUtils
|
|
33
|
+
|
|
32
34
|
extend self # Make methods available as class methods.
|
|
33
35
|
|
|
34
36
|
def self.included(klass)
|
|
@@ -354,7 +356,9 @@ module PhusionPassenger
|
|
|
354
356
|
Socket.getaddrinfo(hostname, nil).first[3]
|
|
355
357
|
end
|
|
356
358
|
end
|
|
359
|
+
|
|
357
360
|
end
|
|
358
361
|
|
|
359
362
|
end # module Standalone
|
|
363
|
+
|
|
360
364
|
end # module PhusionPassenger
|
|
@@ -23,9 +23,11 @@
|
|
|
23
23
|
# THE SOFTWARE.
|
|
24
24
|
|
|
25
25
|
module PhusionPassenger
|
|
26
|
+
|
|
26
27
|
module Standalone
|
|
27
28
|
|
|
28
29
|
module ControlUtils
|
|
30
|
+
|
|
29
31
|
extend self # Make methods available as class methods.
|
|
30
32
|
|
|
31
33
|
def self.included(klass)
|
|
@@ -62,7 +64,9 @@ module PhusionPassenger
|
|
|
62
64
|
STDERR.puts " * The instance that you want to stop has stored its PID file in a non-standard"
|
|
63
65
|
STDERR.puts " location. In this case please specify the right PID file with --pid-file."
|
|
64
66
|
end
|
|
67
|
+
|
|
65
68
|
end
|
|
66
69
|
|
|
67
70
|
end
|
|
71
|
+
|
|
68
72
|
end
|
|
@@ -28,6 +28,7 @@ module PhusionPassenger
|
|
|
28
28
|
|
|
29
29
|
# Core of the `passenger` command (Passenger Standalone). Dispatches a subcommand to a specific class.
|
|
30
30
|
module Standalone
|
|
31
|
+
|
|
31
32
|
KNOWN_COMMANDS = [
|
|
32
33
|
[ "start", "StartCommand" ],
|
|
33
34
|
[ "stop", "StopCommand" ],
|
|
@@ -109,6 +110,7 @@ module PhusionPassenger
|
|
|
109
110
|
PhusionPassenger.require_passenger_lib("standalone/#{base_name}")
|
|
110
111
|
PhusionPassenger::Standalone.const_get(class_name)
|
|
111
112
|
end
|
|
113
|
+
|
|
112
114
|
end
|
|
113
115
|
|
|
114
116
|
end # module PhusionPassenger
|
|
@@ -33,9 +33,12 @@ PhusionPassenger.require_passenger_lib 'utils/shellwords'
|
|
|
33
33
|
PhusionPassenger.require_passenger_lib 'utils/json'
|
|
34
34
|
|
|
35
35
|
module PhusionPassenger
|
|
36
|
+
|
|
36
37
|
module Standalone
|
|
38
|
+
|
|
37
39
|
class StartCommand
|
|
38
40
|
module BuiltinEngine
|
|
41
|
+
|
|
39
42
|
private
|
|
40
43
|
def start_engine_real
|
|
41
44
|
Standalone::ControlUtils.require_daemon_controller
|
|
@@ -273,7 +276,10 @@ module PhusionPassenger
|
|
|
273
276
|
end
|
|
274
277
|
|
|
275
278
|
#####################
|
|
279
|
+
|
|
276
280
|
end # module BuiltinEngine
|
|
277
281
|
end # module StartCommand
|
|
282
|
+
|
|
278
283
|
end # module Standalone
|
|
284
|
+
|
|
279
285
|
end # module PhusionPassenger
|