passenger 5.0.20 → 5.0.21
Sign up to get free protection for your applications and to get access to all the features.
Potentially problematic release.
This version of passenger might be problematic. Click here for more details.
- checksums.yaml +8 -8
- checksums.yaml.gz.asc +7 -7
- data.tar.gz.asc +7 -7
- data/CHANGELOG +14 -0
- data/CONTRIBUTORS +1 -0
- data/README.md +1 -1
- data/Rakefile +4 -1
- data/bin/passenger +3 -2
- data/bin/passenger-config +3 -2
- data/bin/passenger-install-apache2-module +3 -3
- data/bin/passenger-install-nginx-module +10 -3
- data/bin/passenger-memory-stats +3 -2
- data/bin/passenger-status +3 -2
- data/build/agent.rb +4 -3
- data/build/apache2.rb +3 -2
- data/build/basics.rb +3 -2
- data/build/common_library.rb +9 -8
- data/build/cplusplus_support.rb +3 -2
- data/build/cxx_dependency_map.rb +67 -134
- data/build/cxx_tests.rb +3 -2
- data/build/documentation.rb +3 -2
- data/build/integration_tests.rb +3 -2
- data/build/misc.rb +3 -22
- data/build/nginx.rb +3 -2
- data/build/node_tests.rb +3 -2
- data/build/oxt_tests.rb +3 -2
- data/build/packaging.rb +4 -3
- data/build/ruby_extension.rb +3 -2
- data/build/ruby_tests.rb +3 -2
- data/build/test_basics.rb +3 -2
- data/dev/copy_boost_headers +3 -2
- data/doc/Design and Architecture.html +1 -1
- data/doc/Design and Architecture.txt +1 -1
- data/doc/Users guide Apache.html +1 -1
- data/doc/Users guide Nginx.html +1 -1
- data/doc/users_guide_snippets/appendix_a_about.txt +1 -1
- data/man/passenger-config.1 +0 -2
- data/man/passenger-memory-stats.8 +0 -2
- data/man/passenger-status.8 +0 -2
- data/src/agent/AgentMain.cpp +3 -2
- data/src/agent/Core/ApiServer.h +3 -2
- data/src/agent/Core/ApplicationPool/BasicGroupInfo.h +3 -2
- data/src/agent/Core/ApplicationPool/BasicProcessInfo.h +3 -2
- data/src/agent/Core/ApplicationPool/Common.h +3 -2
- data/src/agent/Core/ApplicationPool/Context.h +3 -2
- data/src/agent/Core/ApplicationPool/ErrorRenderer.h +3 -2
- data/src/agent/Core/ApplicationPool/Group.h +3 -2
- data/src/agent/Core/ApplicationPool/Group/InitializationAndShutdown.cpp +3 -2
- data/src/agent/Core/ApplicationPool/Group/InternalUtils.cpp +3 -2
- data/src/agent/Core/ApplicationPool/Group/LifetimeAndBasics.cpp +3 -2
- data/src/agent/Core/ApplicationPool/Group/Miscellaneous.cpp +3 -2
- data/src/agent/Core/ApplicationPool/Group/OutOfBandWork.cpp +3 -2
- data/src/agent/Core/ApplicationPool/Group/ProcessListManagement.cpp +3 -2
- data/src/agent/Core/ApplicationPool/Group/SessionManagement.cpp +3 -2
- data/src/agent/Core/ApplicationPool/Group/SpawningAndRestarting.cpp +3 -2
- data/src/agent/Core/ApplicationPool/Group/StateInspection.cpp +3 -2
- data/src/agent/Core/ApplicationPool/Group/Verification.cpp +3 -2
- data/src/agent/Core/ApplicationPool/Implementation.cpp +3 -2
- data/src/agent/Core/ApplicationPool/Options.h +3 -11
- data/src/agent/Core/ApplicationPool/Pool.h +3 -2
- data/src/agent/Core/ApplicationPool/Pool/AnalyticsCollection.cpp +3 -2
- data/src/agent/Core/ApplicationPool/Pool/GarbageCollection.cpp +3 -2
- data/src/agent/Core/ApplicationPool/Pool/GeneralUtils.cpp +3 -2
- data/src/agent/Core/ApplicationPool/Pool/GroupUtils.cpp +3 -2
- data/src/agent/Core/ApplicationPool/Pool/InitializationAndShutdown.cpp +3 -2
- data/src/agent/Core/ApplicationPool/Pool/Miscellaneous.cpp +3 -2
- data/src/agent/Core/ApplicationPool/Pool/ProcessUtils.cpp +3 -2
- data/src/agent/Core/ApplicationPool/Pool/StateInspection.cpp +3 -2
- data/src/agent/Core/ApplicationPool/Process.h +3 -2
- data/src/agent/Core/ApplicationPool/Session.h +3 -2
- data/src/agent/Core/ApplicationPool/Socket.h +3 -2
- data/src/agent/Core/CoreMain.cpp +3 -2
- data/src/agent/Core/OptionParser.h +3 -2
- data/src/agent/Core/RequestHandler.h +3 -2
- data/src/agent/Core/RequestHandler/AppResponse.h +3 -2
- data/src/agent/Core/RequestHandler/BufferBody.cpp +3 -2
- data/src/agent/Core/RequestHandler/CheckoutSession.cpp +3 -2
- data/src/agent/Core/RequestHandler/Client.h +3 -2
- data/src/agent/Core/RequestHandler/ForwardResponse.cpp +3 -2
- data/src/agent/Core/RequestHandler/Hooks.cpp +4 -2
- data/src/agent/Core/RequestHandler/InitRequest.cpp +13 -4
- data/src/agent/Core/RequestHandler/Request.h +10 -2
- data/src/agent/Core/RequestHandler/SendRequest.cpp +40 -9
- data/src/agent/Core/RequestHandler/TurboCaching.h +3 -2
- data/src/agent/Core/RequestHandler/Utils.cpp +3 -2
- data/src/agent/Core/ResponseCache.h +3 -2
- data/src/agent/Core/SpawningKit/BackgroundIOCapturer.h +3 -2
- data/src/agent/Core/SpawningKit/Config.h +3 -2
- data/src/agent/Core/SpawningKit/DirectSpawner.h +3 -2
- data/src/agent/Core/SpawningKit/DummySpawner.h +3 -2
- data/src/agent/Core/SpawningKit/Factory.h +3 -2
- data/src/agent/Core/SpawningKit/Options.h +3 -2
- data/src/agent/Core/SpawningKit/PipeWatcher.h +3 -2
- data/src/agent/Core/SpawningKit/Result.h +3 -2
- data/src/agent/Core/SpawningKit/SmartSpawner.h +3 -2
- data/src/agent/Core/SpawningKit/Spawner.h +18 -2
- data/src/agent/Core/SpawningKit/UserSwitchingRules.h +3 -2
- data/src/agent/Core/UnionStation/Connection.h +3 -2
- data/src/agent/Core/UnionStation/Core.h +3 -2
- data/src/agent/Core/UnionStation/StopwatchLog.h +3 -2
- data/src/agent/Core/UnionStation/Transaction.h +3 -2
- data/src/agent/Shared/ApiServerUtils.h +3 -2
- data/src/agent/Shared/ApplicationPoolApiKey.h +3 -2
- data/src/agent/Shared/Base.cpp +3 -2
- data/src/agent/Shared/Base.h +3 -2
- data/src/agent/SpawnPreparer/SpawnPreparerMain.cpp +3 -2
- data/src/agent/SystemMetrics/SystemMetricsMain.cpp +3 -2
- data/src/agent/TempDirToucher/TempDirToucherMain.cpp +3 -2
- data/src/agent/UstRouter/ApiServer.h +3 -2
- data/src/agent/UstRouter/Client.h +3 -2
- data/src/agent/UstRouter/Controller.h +3 -2
- data/src/agent/UstRouter/DataStoreId.h +3 -2
- data/src/agent/UstRouter/FileSink.h +3 -2
- data/src/agent/UstRouter/LogSink.h +3 -2
- data/src/agent/UstRouter/OptionParser.h +3 -2
- data/src/agent/UstRouter/RemoteSender.h +3 -2
- data/src/agent/UstRouter/RemoteSink.h +3 -2
- data/src/agent/UstRouter/Transaction.h +3 -2
- data/src/agent/UstRouter/UstRouterMain.cpp +3 -2
- data/src/agent/Watchdog/AgentWatcher.cpp +3 -2
- data/src/agent/Watchdog/ApiServer.h +3 -2
- data/src/agent/Watchdog/CoreWatcher.cpp +3 -2
- data/src/agent/Watchdog/InstanceDirToucher.cpp +3 -2
- data/src/agent/Watchdog/UstRouterWatcher.cpp +3 -2
- data/src/agent/Watchdog/WatchdogMain.cpp +4 -3
- data/src/apache2_module/Bucket.cpp +3 -2
- data/src/apache2_module/Bucket.h +3 -2
- data/src/apache2_module/Configuration.cpp +3 -2
- data/src/apache2_module/Configuration.h +3 -2
- data/src/apache2_module/Configuration.hpp +3 -2
- data/src/apache2_module/ConfigurationCommands.cpp +3 -2
- data/src/apache2_module/ConfigurationCommands.cpp.erb +3 -2
- data/src/apache2_module/ConfigurationFields.hpp +3 -2
- data/src/apache2_module/ConfigurationFields.hpp.erb +3 -2
- data/src/apache2_module/ConfigurationSetters.cpp +3 -2
- data/src/apache2_module/ConfigurationSetters.cpp.erb +3 -2
- data/src/apache2_module/CreateDirConfig.cpp +3 -2
- data/src/apache2_module/CreateDirConfig.cpp.erb +3 -2
- data/src/apache2_module/DirectoryMapper.h +3 -2
- data/src/apache2_module/Hooks.cpp +12 -11
- data/src/apache2_module/Hooks.h +3 -2
- data/src/apache2_module/MergeDirConfig.cpp +3 -2
- data/src/apache2_module/MergeDirConfig.cpp.erb +3 -2
- data/src/apache2_module/SetHeaders.cpp +3 -2
- data/src/apache2_module/SetHeaders.cpp.erb +3 -2
- data/src/apache2_module/mod_passenger.c +3 -2
- data/src/cxx_supportlib/AppTypes.cpp +3 -2
- data/src/cxx_supportlib/AppTypes.h +3 -2
- data/src/cxx_supportlib/BackgroundEventLoop.cpp +3 -2
- data/src/cxx_supportlib/BackgroundEventLoop.h +3 -2
- data/src/cxx_supportlib/Constants.h +4 -7
- data/src/cxx_supportlib/Constants.h.erb +3 -4
- data/src/cxx_supportlib/DataStructures/HashedStaticString.h +3 -2
- data/src/cxx_supportlib/DataStructures/LString.h +3 -2
- data/src/cxx_supportlib/DataStructures/StringKeyTable.h +3 -2
- data/src/cxx_supportlib/Exceptions.cpp +3 -2
- data/src/cxx_supportlib/Exceptions.h +3 -2
- data/src/cxx_supportlib/FileDescriptor.h +3 -2
- data/src/cxx_supportlib/Hooks.h +3 -2
- data/src/cxx_supportlib/InstanceDirectory.h +4 -3
- data/src/cxx_supportlib/Logging.cpp +3 -2
- data/src/cxx_supportlib/Logging.h +3 -2
- data/src/cxx_supportlib/MemoryKit/mbuf.h +1 -1
- data/src/cxx_supportlib/MemoryKit/palloc.cpp +1 -1
- data/src/cxx_supportlib/MemoryKit/palloc.h +1 -1
- data/src/cxx_supportlib/MessageClient.h +3 -2
- data/src/cxx_supportlib/MessageReadersWriters.h +3 -2
- data/src/cxx_supportlib/RandomGenerator.h +3 -2
- data/src/cxx_supportlib/ResourceLocator.h +3 -2
- data/src/cxx_supportlib/SafeLibev.h +3 -2
- data/src/cxx_supportlib/ServerKit/AcceptLoadBalancer.h +3 -2
- data/src/cxx_supportlib/ServerKit/Channel.h +3 -2
- data/src/cxx_supportlib/ServerKit/Client.h +3 -2
- data/src/cxx_supportlib/ServerKit/ClientRef.h +3 -2
- data/src/cxx_supportlib/ServerKit/Context.h +3 -2
- data/src/cxx_supportlib/ServerKit/CookieUtils.h +3 -2
- data/src/cxx_supportlib/ServerKit/Errors.h +3 -2
- data/src/cxx_supportlib/ServerKit/FdSinkChannel.h +3 -2
- data/src/cxx_supportlib/ServerKit/FdSourceChannel.h +3 -2
- data/src/cxx_supportlib/ServerKit/FileBufferedChannel.h +3 -2
- data/src/cxx_supportlib/ServerKit/FileBufferedFdSinkChannel.h +3 -2
- data/src/cxx_supportlib/ServerKit/HeaderTable.h +3 -2
- data/src/cxx_supportlib/ServerKit/Hooks.h +3 -2
- data/src/cxx_supportlib/ServerKit/HttpChunkedBodyParser.h +3 -2
- data/src/cxx_supportlib/ServerKit/HttpChunkedBodyParserState.h +3 -2
- data/src/cxx_supportlib/ServerKit/HttpClient.h +3 -2
- data/src/cxx_supportlib/ServerKit/HttpHeaderParser.h +3 -2
- data/src/cxx_supportlib/ServerKit/HttpHeaderParserState.h +3 -2
- data/src/cxx_supportlib/ServerKit/HttpRequest.h +3 -2
- data/src/cxx_supportlib/ServerKit/HttpRequestRef.h +3 -2
- data/src/cxx_supportlib/ServerKit/HttpServer.h +3 -2
- data/src/cxx_supportlib/ServerKit/Implementation.cpp +3 -2
- data/src/cxx_supportlib/ServerKit/Server.h +3 -2
- data/src/cxx_supportlib/StaticString.h +3 -2
- data/src/cxx_supportlib/UnionStationFilterSupport.cpp +3 -2
- data/src/cxx_supportlib/UnionStationFilterSupport.h +3 -2
- data/src/cxx_supportlib/Utils.cpp +3 -2
- data/src/cxx_supportlib/Utils.h +3 -2
- data/src/cxx_supportlib/Utils/AnsiColorConstants.h +3 -2
- data/src/cxx_supportlib/Utils/BlockingQueue.h +3 -2
- data/src/cxx_supportlib/Utils/BufferedIO.h +3 -2
- data/src/cxx_supportlib/Utils/CachedFileStat.cpp +3 -2
- data/src/cxx_supportlib/Utils/CachedFileStat.h +3 -2
- data/src/cxx_supportlib/Utils/CachedFileStat.hpp +3 -2
- data/src/cxx_supportlib/Utils/ClassUtils.h +20 -2
- data/src/cxx_supportlib/Utils/Curl.h +3 -2
- data/src/cxx_supportlib/Utils/DateParsing.h +3 -2
- data/src/cxx_supportlib/Utils/FastStringStream.h +3 -2
- data/src/cxx_supportlib/Utils/FileChangeChecker.h +3 -2
- data/src/cxx_supportlib/Utils/HashMap.h +3 -2
- data/src/cxx_supportlib/Utils/Hasher.cpp +3 -2
- data/src/cxx_supportlib/Utils/Hasher.h +3 -2
- data/src/cxx_supportlib/Utils/HttpConstants.h +3 -2
- data/src/cxx_supportlib/Utils/IOUtils.cpp +3 -2
- data/src/cxx_supportlib/Utils/IOUtils.h +3 -2
- data/src/cxx_supportlib/Utils/IniFile.h +3 -2
- data/src/cxx_supportlib/Utils/JsonUtils.h +3 -2
- data/src/cxx_supportlib/Utils/LargeFiles.h +3 -2
- data/src/cxx_supportlib/Utils/MemZeroGuard.h +3 -2
- data/src/cxx_supportlib/Utils/MemoryBarrier.h +3 -2
- data/src/cxx_supportlib/Utils/MessageIO.h +3 -2
- data/src/cxx_supportlib/Utils/MessagePassing.h +4 -3
- data/src/cxx_supportlib/Utils/OptionParsing.h +3 -2
- data/src/cxx_supportlib/Utils/ProcessMetricsCollector.h +3 -2
- data/src/cxx_supportlib/Utils/ScopeGuard.h +3 -2
- data/src/cxx_supportlib/Utils/SpeedMeter.h +3 -2
- data/src/cxx_supportlib/Utils/StrIntUtils.cpp +3 -2
- data/src/cxx_supportlib/Utils/StrIntUtils.h +3 -2
- data/src/cxx_supportlib/Utils/StrIntUtilsNoStrictAliasing.cpp +3 -2
- data/src/cxx_supportlib/Utils/StringMap.h +3 -2
- data/src/cxx_supportlib/Utils/StringScanning.h +3 -2
- data/src/cxx_supportlib/Utils/SystemMetricsCollector.h +3 -2
- data/src/cxx_supportlib/Utils/SystemTime.cpp +3 -2
- data/src/cxx_supportlib/Utils/SystemTime.h +3 -2
- data/src/cxx_supportlib/Utils/Timer.h +3 -2
- data/src/cxx_supportlib/Utils/VariantMap.h +3 -2
- data/src/cxx_supportlib/{AgentsStarter.cpp → WatchdogLauncher.cpp} +42 -41
- data/src/cxx_supportlib/{AgentsStarter.h → WatchdogLauncher.h} +99 -112
- data/src/cxx_supportlib/oxt/backtrace.hpp +1 -1
- data/src/cxx_supportlib/oxt/detail/backtrace_disabled.hpp +1 -1
- data/src/cxx_supportlib/oxt/detail/backtrace_enabled.hpp +1 -1
- data/src/cxx_supportlib/oxt/detail/context.hpp +1 -1
- data/src/cxx_supportlib/oxt/detail/spin_lock_darwin.hpp +1 -1
- data/src/cxx_supportlib/oxt/detail/spin_lock_gcc_x86.hpp +1 -1
- data/src/cxx_supportlib/oxt/detail/spin_lock_portable.hpp +1 -1
- data/src/cxx_supportlib/oxt/detail/spin_lock_pthreads.hpp +1 -1
- data/src/cxx_supportlib/oxt/detail/tracable_exception_disabled.hpp +1 -1
- data/src/cxx_supportlib/oxt/detail/tracable_exception_enabled.hpp +1 -1
- data/src/cxx_supportlib/oxt/dynamic_thread_group.hpp +1 -1
- data/src/cxx_supportlib/oxt/implementation.cpp +1 -1
- data/src/cxx_supportlib/oxt/initialize.hpp +1 -1
- data/src/cxx_supportlib/oxt/macros.hpp +1 -1
- data/src/cxx_supportlib/oxt/spin_lock.hpp +1 -1
- data/src/cxx_supportlib/oxt/system_calls.cpp +1 -1
- data/src/cxx_supportlib/oxt/system_calls.hpp +1 -1
- data/src/cxx_supportlib/oxt/thread.hpp +1 -1
- data/src/cxx_supportlib/oxt/tracable_exception.hpp +1 -1
- data/src/cxx_supportlib/vendor-modified/boost/regex/v4/regex_raw_buffer.hpp +1 -1
- data/src/cxx_supportlib/vendor-modified/jsoncpp/jsoncpp.cpp +2 -2
- data/src/cxx_supportlib/{vendor-copy → vendor-modified}/libev/Changes +0 -0
- data/src/cxx_supportlib/{vendor-copy → vendor-modified}/libev/LICENSE +0 -0
- data/src/cxx_supportlib/{vendor-copy → vendor-modified}/libev/Makefile.am +0 -0
- data/src/cxx_supportlib/{vendor-copy → vendor-modified}/libev/Makefile.in +0 -0
- data/src/cxx_supportlib/{vendor-copy → vendor-modified}/libev/README +0 -0
- data/src/cxx_supportlib/{vendor-copy → vendor-modified}/libev/aclocal.m4 +0 -0
- data/src/cxx_supportlib/{vendor-copy → vendor-modified}/libev/autogen.sh +0 -0
- data/src/cxx_supportlib/{vendor-copy → vendor-modified}/libev/config.guess +0 -0
- data/src/cxx_supportlib/{vendor-copy → vendor-modified}/libev/config.h.in +0 -0
- data/src/cxx_supportlib/{vendor-copy → vendor-modified}/libev/config.sub +0 -0
- data/src/cxx_supportlib/{vendor-copy → vendor-modified}/libev/configure +0 -0
- data/src/cxx_supportlib/{vendor-copy → vendor-modified}/libev/configure.ac +0 -0
- data/src/cxx_supportlib/{vendor-copy → vendor-modified}/libev/depcomp +0 -0
- data/src/cxx_supportlib/{vendor-copy → vendor-modified}/libev/ev++.h +0 -0
- data/src/cxx_supportlib/{vendor-copy → vendor-modified}/libev/ev.c +0 -0
- data/src/cxx_supportlib/{vendor-copy → vendor-modified}/libev/ev.h +0 -0
- data/src/cxx_supportlib/{vendor-copy → vendor-modified}/libev/ev_epoll.c +0 -0
- data/src/cxx_supportlib/{vendor-copy → vendor-modified}/libev/ev_kqueue.c +0 -0
- data/src/cxx_supportlib/{vendor-copy → vendor-modified}/libev/ev_poll.c +0 -0
- data/src/cxx_supportlib/{vendor-copy → vendor-modified}/libev/ev_port.c +0 -0
- data/src/cxx_supportlib/{vendor-copy → vendor-modified}/libev/ev_select.c +0 -0
- data/src/cxx_supportlib/{vendor-copy → vendor-modified}/libev/ev_vars.h +0 -0
- data/src/cxx_supportlib/{vendor-copy → vendor-modified}/libev/ev_win32.c +0 -0
- data/src/cxx_supportlib/{vendor-copy → vendor-modified}/libev/ev_wrap.h +0 -0
- data/src/cxx_supportlib/{vendor-copy → vendor-modified}/libev/event.c +0 -0
- data/src/cxx_supportlib/{vendor-copy → vendor-modified}/libev/event.h +0 -0
- data/src/cxx_supportlib/{vendor-copy → vendor-modified}/libev/install-sh +0 -0
- data/src/cxx_supportlib/{vendor-copy → vendor-modified}/libev/libev.m4 +0 -0
- data/src/cxx_supportlib/{vendor-copy → vendor-modified}/libev/ltmain.sh +0 -0
- data/src/cxx_supportlib/{vendor-copy → vendor-modified}/libev/missing +0 -0
- data/src/cxx_supportlib/{vendor-copy → vendor-modified}/libev/mkinstalldirs +0 -0
- data/src/helper-scripts/backtrace-sanitizer.rb +3 -2
- data/src/helper-scripts/crash-watch.rb +1 -1
- data/src/helper-scripts/download_binaries/extconf.rb +3 -2
- data/src/helper-scripts/meteor-loader.rb +3 -2
- data/src/helper-scripts/node-loader.js +8 -5
- data/src/helper-scripts/prespawn +3 -2
- data/src/helper-scripts/rack-loader.rb +6 -3
- data/src/helper-scripts/rack-preloader.rb +6 -3
- data/src/helper-scripts/wsgi-loader.py +3 -2
- data/src/nginx_module/CacheLocationConfig.c +3 -2
- data/src/nginx_module/CacheLocationConfig.c.erb +3 -2
- data/src/nginx_module/Configuration.c +1 -1
- data/src/nginx_module/Configuration.h +1 -1
- data/src/nginx_module/ConfigurationCommands.c +3 -2
- data/src/nginx_module/ConfigurationCommands.c.erb +3 -2
- data/src/nginx_module/ConfigurationFields.h +3 -2
- data/src/nginx_module/ConfigurationFields.h.erb +3 -2
- data/src/nginx_module/ContentHandler.c +7 -7
- data/src/nginx_module/ContentHandler.h +1 -1
- data/src/nginx_module/CreateLocationConfig.c +3 -2
- data/src/nginx_module/CreateLocationConfig.c.erb +3 -2
- data/src/nginx_module/MergeLocationConfig.c +3 -2
- data/src/nginx_module/MergeLocationConfig.c.erb +3 -2
- data/src/nginx_module/StaticContentHandler.c +1 -1
- data/src/nginx_module/StaticContentHandler.h +1 -1
- data/src/nginx_module/config +1 -1
- data/src/nginx_module/ngx_http_passenger_module.c +46 -46
- data/src/nginx_module/ngx_http_passenger_module.h +3 -3
- data/src/nodejs_supportlib/phusion_passenger/line_reader.js +3 -2
- data/src/ruby_native_extension/extconf.rb +3 -2
- data/src/ruby_native_extension/passenger_native_support.c +6 -5
- data/src/ruby_supportlib/phusion_passenger.rb +4 -3
- data/src/ruby_supportlib/phusion_passenger/abstract_installer.rb +3 -2
- data/src/ruby_supportlib/phusion_passenger/admin_tools.rb +3 -2
- data/src/ruby_supportlib/phusion_passenger/admin_tools/instance.rb +3 -2
- data/src/ruby_supportlib/phusion_passenger/admin_tools/instance_registry.rb +3 -2
- data/src/ruby_supportlib/phusion_passenger/admin_tools/memory_stats.rb +3 -2
- data/src/ruby_supportlib/phusion_passenger/apache2/config_options.rb +3 -2
- data/src/ruby_supportlib/phusion_passenger/common_library.rb +6 -5
- data/src/ruby_supportlib/phusion_passenger/config/about_command.rb +3 -2
- data/src/ruby_supportlib/phusion_passenger/config/agent_compiler.rb +3 -2
- data/src/ruby_supportlib/phusion_passenger/config/api_call_command.rb +3 -2
- data/src/ruby_supportlib/phusion_passenger/config/build_native_support_command.rb +3 -2
- data/src/ruby_supportlib/phusion_passenger/config/command.rb +3 -2
- data/src/ruby_supportlib/phusion_passenger/config/compile_agent_command.rb +3 -2
- data/src/ruby_supportlib/phusion_passenger/config/compile_nginx_engine_command.rb +3 -2
- data/src/ruby_supportlib/phusion_passenger/config/detach_process_command.rb +3 -2
- data/src/ruby_supportlib/phusion_passenger/config/download_agent_command.rb +3 -2
- data/src/ruby_supportlib/phusion_passenger/config/download_nginx_engine_command.rb +3 -2
- data/src/ruby_supportlib/phusion_passenger/config/install_agent_command.rb +3 -2
- data/src/ruby_supportlib/phusion_passenger/config/install_standalone_runtime_command.rb +3 -2
- data/src/ruby_supportlib/phusion_passenger/config/installation_utils.rb +3 -2
- data/src/ruby_supportlib/phusion_passenger/config/list_instances_command.rb +3 -2
- data/src/ruby_supportlib/phusion_passenger/config/main.rb +3 -2
- data/src/ruby_supportlib/phusion_passenger/config/nginx_engine_compiler.rb +25 -3
- data/src/ruby_supportlib/phusion_passenger/config/reopen_logs_command.rb +3 -2
- data/src/ruby_supportlib/phusion_passenger/config/restart_app_command.rb +4 -3
- data/src/ruby_supportlib/phusion_passenger/config/system_metrics_command.rb +3 -2
- data/src/ruby_supportlib/phusion_passenger/config/utils.rb +3 -2
- data/src/ruby_supportlib/phusion_passenger/config/validate_install_command.rb +3 -2
- data/src/ruby_supportlib/phusion_passenger/console_text_template.rb +3 -2
- data/src/ruby_supportlib/phusion_passenger/constants.rb +3 -11
- data/src/ruby_supportlib/phusion_passenger/debug_logging.rb +3 -2
- data/src/ruby_supportlib/phusion_passenger/loader_shared_helpers.rb +21 -2
- data/src/ruby_supportlib/phusion_passenger/message_channel.rb +8 -2
- data/src/ruby_supportlib/phusion_passenger/message_client.rb +3 -2
- data/src/ruby_supportlib/phusion_passenger/native_support.rb +3 -2
- data/src/ruby_supportlib/phusion_passenger/nginx/config_options.rb +3 -2
- data/src/ruby_supportlib/phusion_passenger/packaging.rb +3 -2
- data/src/ruby_supportlib/phusion_passenger/platform_info.rb +3 -2
- data/src/ruby_supportlib/phusion_passenger/platform_info/apache.rb +3 -2
- data/src/ruby_supportlib/phusion_passenger/platform_info/apache_detector.rb +3 -2
- data/src/ruby_supportlib/phusion_passenger/platform_info/binary_compatibility.rb +3 -2
- data/src/ruby_supportlib/phusion_passenger/platform_info/compiler.rb +3 -2
- data/src/ruby_supportlib/phusion_passenger/platform_info/curl.rb +3 -2
- data/src/ruby_supportlib/phusion_passenger/platform_info/cxx_portability.rb +3 -2
- data/src/ruby_supportlib/phusion_passenger/platform_info/depcheck.rb +6 -0
- data/src/ruby_supportlib/phusion_passenger/platform_info/depcheck_specs/libs.rb +5 -1
- data/src/ruby_supportlib/phusion_passenger/platform_info/linux.rb +3 -2
- data/src/ruby_supportlib/phusion_passenger/platform_info/openssl.rb +61 -0
- data/src/ruby_supportlib/phusion_passenger/platform_info/operating_system.rb +3 -2
- data/src/ruby_supportlib/phusion_passenger/platform_info/ruby.rb +3 -2
- data/src/ruby_supportlib/phusion_passenger/platform_info/zlib.rb +3 -2
- data/src/ruby_supportlib/phusion_passenger/plugin.rb +3 -2
- data/src/ruby_supportlib/phusion_passenger/preloader_shared_helpers.rb +3 -2
- data/src/ruby_supportlib/phusion_passenger/public_api.rb +3 -2
- data/src/ruby_supportlib/phusion_passenger/rack/out_of_band_gc.rb +3 -2
- data/src/ruby_supportlib/phusion_passenger/rack/thread_handler_extension.rb +18 -6
- data/src/ruby_supportlib/phusion_passenger/request_handler.rb +3 -2
- data/src/ruby_supportlib/phusion_passenger/request_handler/thread_handler.rb +3 -2
- data/src/ruby_supportlib/phusion_passenger/ruby_core_enhancements.rb +45 -18
- data/src/ruby_supportlib/phusion_passenger/ruby_core_io_enhancements.rb +3 -2
- data/src/ruby_supportlib/phusion_passenger/simple_benchmarking.rb +3 -2
- data/src/ruby_supportlib/phusion_passenger/standalone/app_finder.rb +8 -7
- data/src/ruby_supportlib/phusion_passenger/standalone/command.rb +3 -2
- data/src/ruby_supportlib/phusion_passenger/standalone/config_utils.rb +4 -3
- data/src/ruby_supportlib/phusion_passenger/standalone/control_utils.rb +3 -2
- data/src/ruby_supportlib/phusion_passenger/standalone/main.rb +3 -2
- data/src/ruby_supportlib/phusion_passenger/standalone/start_command.rb +23 -20
- data/src/ruby_supportlib/phusion_passenger/standalone/start_command/builtin_engine.rb +3 -2
- data/src/ruby_supportlib/phusion_passenger/standalone/start_command/nginx_engine.rb +3 -2
- data/src/ruby_supportlib/phusion_passenger/standalone/status_command.rb +8 -3
- data/src/ruby_supportlib/phusion_passenger/standalone/stop_command.rb +8 -3
- data/src/ruby_supportlib/phusion_passenger/standalone/version_command.rb +5 -3
- data/src/ruby_supportlib/phusion_passenger/utils.rb +3 -2
- data/src/ruby_supportlib/phusion_passenger/utils/ansi_colors.rb +3 -2
- data/src/ruby_supportlib/phusion_passenger/utils/download.rb +3 -2
- data/src/ruby_supportlib/phusion_passenger/utils/file_system_watcher.rb +3 -2
- data/src/ruby_supportlib/phusion_passenger/utils/hosts_file_parser.rb +3 -2
- data/src/ruby_supportlib/phusion_passenger/utils/lock.rb +3 -2
- data/src/ruby_supportlib/phusion_passenger/utils/native_support_utils.rb +3 -2
- data/src/ruby_supportlib/phusion_passenger/utils/progress_bar.rb +3 -2
- data/src/ruby_supportlib/phusion_passenger/utils/terminal_choice_menu.rb +3 -2
- data/src/ruby_supportlib/phusion_passenger/utils/unseekable_socket.rb +3 -2
- metadata +36 -37
- metadata.gz.asc +7 -7
- data/src/cxx_supportlib/Account.h +0 -171
- data/src/cxx_supportlib/AccountsDatabase.h +0 -125
@@ -1,8 +1,9 @@
|
|
1
1
|
# encoding: binary
|
2
2
|
# Phusion Passenger - https://www.phusionpassenger.com/
|
3
|
-
# Copyright (c) 2010-2015 Phusion
|
3
|
+
# Copyright (c) 2010-2015 Phusion Holding B.V.
|
4
4
|
#
|
5
|
-
# "Phusion Passenger"
|
5
|
+
# "Passenger", "Phusion Passenger" and "Union Station" are registered
|
6
|
+
# trademarks of Phusion Holding B.V.
|
6
7
|
#
|
7
8
|
# Permission is hereby granted, free of charge, to any person obtaining a copy
|
8
9
|
# of this software and associated documentation files (the "Software"), to deal
|
@@ -1,7 +1,8 @@
|
|
1
1
|
# Phusion Passenger - https://www.phusionpassenger.com/
|
2
|
-
# Copyright (c) 2010-2014 Phusion
|
2
|
+
# Copyright (c) 2010-2014 Phusion Holding B.V.
|
3
3
|
#
|
4
|
-
# "Phusion Passenger"
|
4
|
+
# "Passenger", "Phusion Passenger" and "Union Station" are registered
|
5
|
+
# trademarks of Phusion Holding B.V.
|
5
6
|
#
|
6
7
|
# Permission is hereby granted, free of charge, to any person obtaining a copy
|
7
8
|
# of this software and associated documentation files (the "Software"), to deal
|
@@ -1,7 +1,8 @@
|
|
1
1
|
# Phusion Passenger - https://www.phusionpassenger.com/
|
2
|
-
# Copyright (c) 2013-2015 Phusion
|
2
|
+
# Copyright (c) 2013-2015 Phusion Holding B.V.
|
3
3
|
#
|
4
|
-
# "Phusion Passenger"
|
4
|
+
# "Passenger", "Phusion Passenger" and "Union Station" are registered
|
5
|
+
# trademarks of Phusion Holding B.V.
|
5
6
|
#
|
6
7
|
# Permission is hereby granted, free of charge, to any person obtaining a copy
|
7
8
|
# of this software and associated documentation files (the "Software"), to deal
|
@@ -1,7 +1,8 @@
|
|
1
1
|
# Phusion Passenger - https://www.phusionpassenger.com/
|
2
|
-
# Copyright (c) 2010-2015 Phusion
|
2
|
+
# Copyright (c) 2010-2015 Phusion Holding B.V.
|
3
3
|
#
|
4
|
-
# "Phusion Passenger"
|
4
|
+
# "Passenger", "Phusion Passenger" and "Union Station" are registered
|
5
|
+
# trademarks of Phusion Holding B.V.
|
5
6
|
#
|
6
7
|
# Permission is hereby granted, free of charge, to any person obtaining a copy
|
7
8
|
# of this software and associated documentation files (the "Software"), to deal
|
@@ -1,8 +1,9 @@
|
|
1
1
|
# encoding: binary
|
2
2
|
# Phusion Passenger - https://www.phusionpassenger.com/
|
3
|
-
# Copyright (c) 2010-2015 Phusion
|
3
|
+
# Copyright (c) 2010-2015 Phusion Holding B.V.
|
4
4
|
#
|
5
|
-
# "Phusion Passenger"
|
5
|
+
# "Passenger", "Phusion Passenger" and "Union Station" are registered
|
6
|
+
# trademarks of Phusion Holding B.V.
|
6
7
|
#
|
7
8
|
# Permission is hereby granted, free of charge, to any person obtaining a copy
|
8
9
|
# of this software and associated documentation files (the "Software"), to deal
|
@@ -1,8 +1,9 @@
|
|
1
1
|
# encoding: binary
|
2
2
|
# Phusion Passenger - https://www.phusionpassenger.com/
|
3
|
-
# Copyright (c) 2010-2015 Phusion
|
3
|
+
# Copyright (c) 2010-2015 Phusion Holding B.V.
|
4
4
|
#
|
5
|
-
# "Phusion Passenger"
|
5
|
+
# "Passenger", "Phusion Passenger" and "Union Station" are registered
|
6
|
+
# trademarks of Phusion Holding B.V.
|
6
7
|
#
|
7
8
|
# Permission is hereby granted, free of charge, to any person obtaining a copy
|
8
9
|
# of this software and associated documentation files (the "Software"), to deal
|
@@ -1,7 +1,8 @@
|
|
1
1
|
# Phusion Passenger - https://www.phusionpassenger.com/
|
2
|
-
# Copyright (c) 2013-2015 Phusion
|
2
|
+
# Copyright (c) 2013-2015 Phusion Holding B.V.
|
3
3
|
#
|
4
|
-
# "Phusion Passenger"
|
4
|
+
# "Passenger", "Phusion Passenger" and "Union Station" are registered
|
5
|
+
# trademarks of Phusion Holding B.V.
|
5
6
|
#
|
6
7
|
# Permission is hereby granted, free of charge, to any person obtaining a copy
|
7
8
|
# of this software and associated documentation files (the "Software"), to deal
|
@@ -1,7 +1,8 @@
|
|
1
1
|
# Phusion Passenger - https://www.phusionpassenger.com/
|
2
|
-
# Copyright (c) 2010 Phusion
|
2
|
+
# Copyright (c) 2010 Phusion Holding B.V.
|
3
3
|
#
|
4
|
-
# "Phusion Passenger"
|
4
|
+
# "Passenger", "Phusion Passenger" and "Union Station" are registered
|
5
|
+
# trademarks of Phusion Holding B.V.
|
5
6
|
#
|
6
7
|
# Permission is hereby granted, free of charge, to any person obtaining a copy
|
7
8
|
# of this software and associated documentation files (the "Software"), to deal
|
@@ -1,7 +1,8 @@
|
|
1
1
|
# Phusion Passenger - https://www.phusionpassenger.com/
|
2
|
-
# Copyright (c) 2010-2014 Phusion
|
2
|
+
# Copyright (c) 2010-2014 Phusion Holding B.V.
|
3
3
|
#
|
4
|
-
# "Phusion Passenger"
|
4
|
+
# "Passenger", "Phusion Passenger" and "Union Station" are registered
|
5
|
+
# trademarks of Phusion Holding B.V.
|
5
6
|
#
|
6
7
|
# Permission is hereby granted, free of charge, to any person obtaining a copy
|
7
8
|
# of this software and associated documentation files (the "Software"), to deal
|
@@ -1,7 +1,8 @@
|
|
1
1
|
# Phusion Passenger - https://www.phusionpassenger.com/
|
2
|
-
# Copyright (c) 2010 Phusion
|
2
|
+
# Copyright (c) 2010 Phusion Holding B.V.
|
3
3
|
#
|
4
|
-
# "Phusion Passenger"
|
4
|
+
# "Passenger", "Phusion Passenger" and "Union Station" are registered
|
5
|
+
# trademarks of Phusion Holding B.V.
|
5
6
|
#
|
6
7
|
# Permission is hereby granted, free of charge, to any person obtaining a copy
|
7
8
|
# of this software and associated documentation files (the "Software"), to deal
|
@@ -1,7 +1,8 @@
|
|
1
1
|
# Phusion Passenger - https://www.phusionpassenger.com/
|
2
|
-
# Copyright (c) 2010-2013 Phusion
|
2
|
+
# Copyright (c) 2010-2013 Phusion Holding B.V.
|
3
3
|
#
|
4
|
-
# "Phusion Passenger"
|
4
|
+
# "Passenger", "Phusion Passenger" and "Union Station" are registered
|
5
|
+
# trademarks of Phusion Holding B.V.
|
5
6
|
#
|
6
7
|
# Permission is hereby granted, free of charge, to any person obtaining a copy
|
7
8
|
# of this software and associated documentation files (the "Software"), to deal
|
@@ -2,6 +2,8 @@
|
|
2
2
|
PhusionPassenger.require_passenger_lib 'platform_info/ruby'
|
3
3
|
PhusionPassenger.require_passenger_lib 'platform_info/linux'
|
4
4
|
PhusionPassenger.require_passenger_lib 'platform_info/compiler'
|
5
|
+
PhusionPassenger.require_passenger_lib 'platform_info/openssl'
|
6
|
+
PhusionPassenger.require_passenger_lib 'platform_info/curl'
|
5
7
|
PhusionPassenger.require_passenger_lib 'platform_info/operating_system'
|
6
8
|
PhusionPassenger.require_passenger_lib 'utils/ansi_colors'
|
7
9
|
|
@@ -260,6 +262,10 @@ module PhusionPassenger
|
|
260
262
|
"<b>#{gem_command} install #{package_name}</b>")
|
261
263
|
end
|
262
264
|
|
265
|
+
def brew_install(package_name)
|
266
|
+
install_instructions("Please install it with <b>brew install #{package_name}</b>")
|
267
|
+
end
|
268
|
+
|
263
269
|
def install_osx_command_line_tools
|
264
270
|
PhusionPassenger.require_passenger_lib 'platform_info/compiler'
|
265
271
|
if PlatformInfo.xcode_select_version.to_s >= "2333"
|
@@ -2,7 +2,8 @@ define 'openssl-dev' do
|
|
2
2
|
name "OpenSSL development headers"
|
3
3
|
website "http://www.openssl.org/"
|
4
4
|
define_checker do
|
5
|
-
check_for_header('openssl/ssl.h'
|
5
|
+
check_for_header('openssl/ssl.h', :c,
|
6
|
+
PlatformInfo.openssl_extra_cflags)
|
6
7
|
end
|
7
8
|
|
8
9
|
on :debian do
|
@@ -11,6 +12,9 @@ define 'openssl-dev' do
|
|
11
12
|
on :redhat do
|
12
13
|
yum_install "openssl-devel"
|
13
14
|
end
|
15
|
+
on :macosx do
|
16
|
+
brew_install "openssl"
|
17
|
+
end
|
14
18
|
end
|
15
19
|
|
16
20
|
define 'libcurl-dev' do
|
@@ -1,8 +1,9 @@
|
|
1
1
|
# encoding: binary
|
2
2
|
# Phusion Passenger - https://www.phusionpassenger.com/
|
3
|
-
# Copyright (c) 2010-2014 Phusion
|
3
|
+
# Copyright (c) 2010-2014 Phusion Holding B.V.
|
4
4
|
#
|
5
|
-
# "Phusion Passenger"
|
5
|
+
# "Passenger", "Phusion Passenger" and "Union Station" are registered
|
6
|
+
# trademarks of Phusion Holding B.V.
|
6
7
|
#
|
7
8
|
# Permission is hereby granted, free of charge, to any person obtaining a copy
|
8
9
|
# of this software and associated documentation files (the "Software"), to deal
|
@@ -0,0 +1,61 @@
|
|
1
|
+
# Phusion Passenger - https://www.phusionpassenger.com/
|
2
|
+
# Copyright (c) 2015 Phusion Holding B.V.
|
3
|
+
#
|
4
|
+
# "Passenger", "Phusion Passenger" and "Union Station" are registered
|
5
|
+
# trademarks of Phusion Holding B.V.
|
6
|
+
#
|
7
|
+
# Permission is hereby granted, free of charge, to any person obtaining a copy
|
8
|
+
# of this software and associated documentation files (the "Software"), to deal
|
9
|
+
# in the Software without restriction, including without limitation the rights
|
10
|
+
# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
11
|
+
# copies of the Software, and to permit persons to whom the Software is
|
12
|
+
# furnished to do so, subject to the following conditions:
|
13
|
+
#
|
14
|
+
# The above copyright notice and this permission notice shall be included in
|
15
|
+
# all copies or substantial portions of the Software.
|
16
|
+
#
|
17
|
+
# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
18
|
+
# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
19
|
+
# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
20
|
+
# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
21
|
+
# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
22
|
+
# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
|
23
|
+
# THE SOFTWARE.
|
24
|
+
|
25
|
+
PhusionPassenger.require_passenger_lib 'platform_info'
|
26
|
+
PhusionPassenger.require_passenger_lib 'platform_info/operating_system'
|
27
|
+
|
28
|
+
module PhusionPassenger
|
29
|
+
|
30
|
+
module PlatformInfo
|
31
|
+
def self.openssl_extra_cflags
|
32
|
+
if PlatformInfo.os_name == "macosx"
|
33
|
+
if File.exist?("/usr/include/openssl")
|
34
|
+
""
|
35
|
+
else
|
36
|
+
# OS X >= 10.11 El Capitan no longer include
|
37
|
+
# OpenSSL development headers. Use the one from
|
38
|
+
# Homebrew.
|
39
|
+
"-I/usr/local/opt/openssl/include"
|
40
|
+
end
|
41
|
+
else
|
42
|
+
""
|
43
|
+
end
|
44
|
+
end
|
45
|
+
memoize :openssl_extra_cflags
|
46
|
+
|
47
|
+
def self.openssl_extra_ldflags
|
48
|
+
if PlatformInfo.os_name == "macosx"
|
49
|
+
if File.exist?("/usr/include/openssl")
|
50
|
+
""
|
51
|
+
else
|
52
|
+
"-L/usr/local/opt/openssl/lib"
|
53
|
+
end
|
54
|
+
else
|
55
|
+
""
|
56
|
+
end
|
57
|
+
end
|
58
|
+
memoize :openssl_extra_ldflags
|
59
|
+
end
|
60
|
+
|
61
|
+
end # module PhusionPassenger
|
@@ -1,7 +1,8 @@
|
|
1
1
|
# Phusion Passenger - https://www.phusionpassenger.com/
|
2
|
-
# Copyright (c) 2010-2013 Phusion
|
2
|
+
# Copyright (c) 2010-2013 Phusion Holding B.V.
|
3
3
|
#
|
4
|
-
# "Phusion Passenger"
|
4
|
+
# "Passenger", "Phusion Passenger" and "Union Station" are registered
|
5
|
+
# trademarks of Phusion Holding B.V.
|
5
6
|
#
|
6
7
|
# Permission is hereby granted, free of charge, to any person obtaining a copy
|
7
8
|
# of this software and associated documentation files (the "Software"), to deal
|
@@ -1,8 +1,9 @@
|
|
1
1
|
# encoding: binary
|
2
2
|
# Phusion Passenger - https://www.phusionpassenger.com/
|
3
|
-
# Copyright (c) 2010-2015 Phusion
|
3
|
+
# Copyright (c) 2010-2015 Phusion Holding B.V.
|
4
4
|
#
|
5
|
-
# "Phusion Passenger"
|
5
|
+
# "Passenger", "Phusion Passenger" and "Union Station" are registered
|
6
|
+
# trademarks of Phusion Holding B.V.
|
6
7
|
#
|
7
8
|
# Permission is hereby granted, free of charge, to any person obtaining a copy
|
8
9
|
# of this software and associated documentation files (the "Software"), to deal
|
@@ -1,7 +1,8 @@
|
|
1
1
|
# Phusion Passenger - https://www.phusionpassenger.com/
|
2
|
-
# Copyright (c) 2010 Phusion
|
2
|
+
# Copyright (c) 2010 Phusion Holding B.V.
|
3
3
|
#
|
4
|
-
# "Phusion Passenger"
|
4
|
+
# "Passenger", "Phusion Passenger" and "Union Station" are registered
|
5
|
+
# trademarks of Phusion Holding B.V.
|
5
6
|
#
|
6
7
|
# Permission is hereby granted, free of charge, to any person obtaining a copy
|
7
8
|
# of this software and associated documentation files (the "Software"), to deal
|
@@ -1,7 +1,8 @@
|
|
1
1
|
# Phusion Passenger - https://www.phusionpassenger.com/
|
2
|
-
# Copyright (c) 2010 Phusion
|
2
|
+
# Copyright (c) 2010 Phusion Holding B.V.
|
3
3
|
#
|
4
|
-
# "Phusion Passenger"
|
4
|
+
# "Passenger", "Phusion Passenger" and "Union Station" are registered
|
5
|
+
# trademarks of Phusion Holding B.V.
|
5
6
|
#
|
6
7
|
# Permission is hereby granted, free of charge, to any person obtaining a copy
|
7
8
|
# of this software and associated documentation files (the "Software"), to deal
|
@@ -1,8 +1,9 @@
|
|
1
1
|
# encoding: binary
|
2
2
|
# Phusion Passenger - https://www.phusionpassenger.com/
|
3
|
-
# Copyright (c) 2011-2014 Phusion
|
3
|
+
# Copyright (c) 2011-2014 Phusion Holding B.V.
|
4
4
|
#
|
5
|
-
# "Phusion Passenger"
|
5
|
+
# "Passenger", "Phusion Passenger" and "Union Station" are registered
|
6
|
+
# trademarks of Phusion Holding B.V.
|
6
7
|
#
|
7
8
|
# Permission is hereby granted, free of charge, to any person obtaining a copy
|
8
9
|
# of this software and associated documentation files (the "Software"), to deal
|
@@ -1,7 +1,8 @@
|
|
1
1
|
# Phusion Passenger - https://www.phusionpassenger.com/
|
2
|
-
# Copyright (c) 2010-2015 Phusion
|
2
|
+
# Copyright (c) 2010-2015 Phusion Holding B.V.
|
3
3
|
#
|
4
|
-
# "Phusion Passenger"
|
4
|
+
# "Passenger", "Phusion Passenger" and "Union Station" are registered
|
5
|
+
# trademarks of Phusion Holding B.V.
|
5
6
|
#
|
6
7
|
# Permission is hereby granted, free of charge, to any person obtaining a copy
|
7
8
|
# of this software and associated documentation files (the "Software"), to deal
|
@@ -1,8 +1,9 @@
|
|
1
1
|
# encoding: binary
|
2
2
|
# Phusion Passenger - https://www.phusionpassenger.com/
|
3
|
-
# Copyright (c) 2012-2014 Phusion
|
3
|
+
# Copyright (c) 2012-2014 Phusion Holding B.V.
|
4
4
|
#
|
5
|
-
# "Phusion Passenger"
|
5
|
+
# "Passenger", "Phusion Passenger" and "Union Station" are registered
|
6
|
+
# trademarks of Phusion Holding B.V.
|
6
7
|
#
|
7
8
|
# Permission is hereby granted, free of charge, to any person obtaining a copy
|
8
9
|
# of this software and associated documentation files (the "Software"), to deal
|
@@ -1,8 +1,9 @@
|
|
1
1
|
# encoding: binary
|
2
2
|
# Phusion Passenger - https://www.phusionpassenger.com/
|
3
|
-
# Copyright (c) 2010-2015 Phusion
|
3
|
+
# Copyright (c) 2010-2015 Phusion Holding B.V.
|
4
4
|
#
|
5
|
-
# "Phusion Passenger"
|
5
|
+
# "Passenger", "Phusion Passenger" and "Union Station" are registered
|
6
|
+
# trademarks of Phusion Holding B.V.
|
6
7
|
#
|
7
8
|
# Permission is hereby granted, free of charge, to any person obtaining a copy
|
8
9
|
# of this software and associated documentation files (the "Software"), to deal
|
@@ -44,7 +45,9 @@ module PhusionPassenger
|
|
44
45
|
SCRIPT_NAME = "SCRIPT_NAME" # :nodoc:
|
45
46
|
REQUEST_METHOD = "REQUEST_METHOD" # :nodoc:
|
46
47
|
TRANSFER_ENCODING_HEADER = "Transfer-Encoding" # :nodoc:
|
48
|
+
TRANSFER_ENCODING_HEADERS = ["Transfer-Encoding", "Transfer-encoding", "transfer-encoding"] # :nodoc:
|
47
49
|
CONTENT_LENGTH_HEADER = "Content-Length" # :nodoc:
|
50
|
+
CONTENT_LENGTH_HEADERS = ["Content-Length", "Content-length", "content-length"] # :nodoc:
|
48
51
|
X_SENDFILE_HEADER = "X-Sendfile" # :nodoc:
|
49
52
|
X_ACCEL_REDIRECT_HEADER = "X-Accel-Redirect" # :nodoc:
|
50
53
|
CONTENT_LENGTH_HEADER_AND_SEPARATOR = "Content-Length: " # :nodoc
|
@@ -199,12 +202,12 @@ module PhusionPassenger
|
|
199
202
|
# time that the body we write out is guaranteed to match what the headers say.
|
200
203
|
# Otherwise we disable keep-alive to prevent the app from being able to mess
|
201
204
|
# up the keep-alive connection.
|
202
|
-
if header = headers
|
205
|
+
if header = lookup_header(headers, CONTENT_LENGTH_HEADERS)
|
203
206
|
# Easiest case: app has a Content-Length header. The headers
|
204
207
|
# need no fixing.
|
205
208
|
message_length_type = :content_length
|
206
209
|
content_length = header.to_i
|
207
|
-
if headers
|
210
|
+
if lookup_header(headers, TRANSFER_ENCODING_HEADERS)
|
208
211
|
# Disallowed by the HTTP spec
|
209
212
|
raise "Response object may not contain both Content-Length and Transfer-Encoding"
|
210
213
|
end
|
@@ -224,7 +227,7 @@ module PhusionPassenger
|
|
224
227
|
end
|
225
228
|
end
|
226
229
|
end
|
227
|
-
elsif headers
|
230
|
+
elsif lookup_header(headers, TRANSFER_ENCODING_HEADERS)
|
228
231
|
# App has a Transfer-Encoding header. We assume that the app
|
229
232
|
# has already chunked the body. The headers need no fixing.
|
230
233
|
message_length_type = :chunked_by_app
|
@@ -234,7 +237,7 @@ module PhusionPassenger
|
|
234
237
|
# just to be safe.
|
235
238
|
@can_keepalive = false
|
236
239
|
end
|
237
|
-
if headers
|
240
|
+
if lookup_header(headers, CONTENT_LENGTH_HEADERS)
|
238
241
|
# Disallowed by the HTTP spec
|
239
242
|
raise "Response object may not contain both Content-Length and Transfer-Encoding"
|
240
243
|
end
|
@@ -348,6 +351,15 @@ module PhusionPassenger
|
|
348
351
|
return result
|
349
352
|
end
|
350
353
|
|
354
|
+
def lookup_header(haystack, needles)
|
355
|
+
needles.each do |needle|
|
356
|
+
if result = haystack[needle]
|
357
|
+
return result
|
358
|
+
end
|
359
|
+
end
|
360
|
+
nil
|
361
|
+
end
|
362
|
+
|
351
363
|
def should_output_body?(status, is_head_request)
|
352
364
|
return (status < 100 ||
|
353
365
|
(status >= 200 && status != 204 && status != 304)) &&
|
@@ -1,8 +1,9 @@
|
|
1
1
|
# encoding: binary
|
2
2
|
# Phusion Passenger - https://www.phusionpassenger.com/
|
3
|
-
# Copyright (c) 2010-2014 Phusion
|
3
|
+
# Copyright (c) 2010-2014 Phusion Holding B.V.
|
4
4
|
#
|
5
|
-
# "Phusion Passenger"
|
5
|
+
# "Passenger", "Phusion Passenger" and "Union Station" are registered
|
6
|
+
# trademarks of Phusion Holding B.V.
|
6
7
|
#
|
7
8
|
# Permission is hereby granted, free of charge, to any person obtaining a copy
|
8
9
|
# of this software and associated documentation files (the "Software"), to deal
|
@@ -1,7 +1,8 @@
|
|
1
1
|
# Phusion Passenger - https://www.phusionpassenger.com/
|
2
|
-
# Copyright (c) 2010-2015 Phusion
|
2
|
+
# Copyright (c) 2010-2015 Phusion Holding B.V.
|
3
3
|
#
|
4
|
-
# "Phusion Passenger"
|
4
|
+
# "Passenger", "Phusion Passenger" and "Union Station" are registered
|
5
|
+
# trademarks of Phusion Holding B.V.
|
5
6
|
#
|
6
7
|
# Permission is hereby granted, free of charge, to any person obtaining a copy
|
7
8
|
# of this software and associated documentation files (the "Software"), to deal
|
@@ -1,8 +1,9 @@
|
|
1
1
|
# encoding: binary
|
2
2
|
# Phusion Passenger - https://www.phusionpassenger.com/
|
3
|
-
# Copyright (c) 2010-2015 Phusion
|
3
|
+
# Copyright (c) 2010-2015 Phusion Holding B.V.
|
4
4
|
#
|
5
|
-
# "Phusion Passenger"
|
5
|
+
# "Passenger", "Phusion Passenger" and "Union Station" are registered
|
6
|
+
# trademarks of Phusion Holding B.V.
|
6
7
|
#
|
7
8
|
# Permission is hereby granted, free of charge, to any person obtaining a copy
|
8
9
|
# of this software and associated documentation files (the "Software"), to deal
|
@@ -37,6 +38,7 @@ if (!defined?(RUBY_ENGINE) || RUBY_ENGINE == "ruby") && RUBY_VERSION < "1.8.7"
|
|
37
38
|
"gem install fastthread"
|
38
39
|
end
|
39
40
|
end
|
41
|
+
require 'pathname'
|
40
42
|
|
41
43
|
class Exception
|
42
44
|
def backtrace_string(current_location = nil)
|
@@ -60,32 +62,57 @@ class Exception
|
|
60
62
|
end
|
61
63
|
|
62
64
|
class Dir
|
63
|
-
#
|
64
|
-
#
|
65
|
-
|
66
|
-
|
67
|
-
|
68
|
-
|
69
|
-
|
65
|
+
# The current working directory may contain one or more symlinks
|
66
|
+
# in its path. Both Dir.pwd and the C getcwd() call resolve symlinks
|
67
|
+
# in the path.
|
68
|
+
#
|
69
|
+
# It turns out that there is no such thing as a path without
|
70
|
+
# unresolved symlinks. The shell presents a working directory with
|
71
|
+
# unresolved symlinks (which it calls the "logical working directory"),
|
72
|
+
# but that is an illusion provided by the shell. The shell reports
|
73
|
+
# the logical working directory though the PWD environment variable.
|
74
|
+
#
|
75
|
+
# This method tries to use the PWD environment variable if it
|
76
|
+
# matches the actual working directory.
|
77
|
+
#
|
78
|
+
# See also:
|
79
|
+
# https://github.com/phusion/passenger/issues/1596#issuecomment-138154045
|
80
|
+
# http://git.savannah.gnu.org/cgit/coreutils.git/tree/src/pwd.c
|
81
|
+
# http://www.opensource.apple.com/source/shell_cmds/shell_cmds-170/pwd/pwd.c
|
82
|
+
def self.logical_pwd
|
83
|
+
physical_pwd = Dir.pwd
|
84
|
+
logical_pwd = ENV['PWD']
|
85
|
+
if logical_pwd.nil? || logical_pwd.empty?
|
86
|
+
return physical_pwd
|
70
87
|
end
|
71
|
-
|
72
|
-
|
73
|
-
|
74
|
-
|
88
|
+
|
89
|
+
# Check whether $PWD matches the actual working directory.
|
90
|
+
# This algorithm similar to the one used by GNU coreutils.
|
91
|
+
begin
|
92
|
+
logical_stat = File.stat(logical_pwd)
|
93
|
+
physical_stat = File.stat(physical_pwd)
|
94
|
+
if logical_stat.ino == physical_stat.ino &&
|
95
|
+
logical_stat.dev == physical_stat.dev
|
96
|
+
logical_pwd
|
97
|
+
else
|
98
|
+
physical_pwd
|
99
|
+
end
|
100
|
+
rescue SystemCallError
|
101
|
+
physical_pwd
|
75
102
|
end
|
76
103
|
end
|
77
104
|
end
|
78
105
|
|
79
106
|
class File
|
80
107
|
# Dir.pwd resolves symlinks. So in turn, File.expand_path/File.absolute_path
|
81
|
-
# do that too. This method fixes that by using Dir.
|
108
|
+
# do that too. This method fixes that by using Dir.logical_pwd.
|
82
109
|
if File.respond_to?(:absolute_path)
|
83
|
-
def self.
|
84
|
-
return File.absolute_path(path,
|
110
|
+
def self.absolute_logical_path(path, base = Dir.logical_pwd)
|
111
|
+
return File.absolute_path(path, base)
|
85
112
|
end
|
86
113
|
else
|
87
|
-
def self.
|
88
|
-
return File.expand_path(path,
|
114
|
+
def self.absolute_logical_path(path, base = Dir.logical_pwd)
|
115
|
+
return File.expand_path(path, base)
|
89
116
|
end
|
90
117
|
end
|
91
118
|
end
|