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
|
/*
|
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
|
@@ -22,8 +23,8 @@
|
|
22
23
|
* OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
|
23
24
|
* THE SOFTWARE.
|
24
25
|
*/
|
25
|
-
#ifndef
|
26
|
-
#define
|
26
|
+
#ifndef _PASSENGER_WATCHDOG_LAUNCHER_HPsg
|
27
|
+
#define _PASSENGER_WATCHDOG_LAUNCHER_HPsg
|
27
28
|
|
28
29
|
|
29
30
|
#include <sys/types.h>
|
@@ -34,51 +35,51 @@
|
|
34
35
|
#endif
|
35
36
|
|
36
37
|
typedef enum {
|
37
|
-
|
38
|
-
|
39
|
-
|
40
|
-
}
|
38
|
+
IM_APACHE,
|
39
|
+
IM_NGINX,
|
40
|
+
IM_STANDALONE
|
41
|
+
} PsgIntegrationMode;
|
41
42
|
|
42
|
-
typedef void
|
43
|
-
typedef void
|
44
|
-
typedef void (*
|
43
|
+
typedef void PsgWatchdogLauncher;
|
44
|
+
typedef void PsgVariantMap;
|
45
|
+
typedef void (*PsgAfterForkCallback)(void *);
|
45
46
|
|
46
|
-
|
47
|
-
void
|
47
|
+
PsgVariantMap *psg_variant_map_new();
|
48
|
+
void psg_variant_map_set(PsgVariantMap *m,
|
48
49
|
const char *name,
|
49
50
|
const char *value,
|
50
51
|
unsigned int value_len);
|
51
|
-
void
|
52
|
+
void psg_variant_map_set2(PsgVariantMap *m,
|
52
53
|
const char *name,
|
53
54
|
unsigned int name_len,
|
54
55
|
const char *value,
|
55
56
|
unsigned int value_len);
|
56
|
-
void
|
57
|
+
void psg_variant_map_set_int(PsgVariantMap *m,
|
57
58
|
const char *name,
|
58
59
|
int value);
|
59
|
-
void
|
60
|
+
void psg_variant_map_set_bool(PsgVariantMap *m,
|
60
61
|
const char *name,
|
61
62
|
int value);
|
62
|
-
void
|
63
|
+
void psg_variant_map_set_strset(PsgVariantMap *m,
|
63
64
|
const char *name,
|
64
65
|
const char **strs,
|
65
66
|
unsigned int count);
|
66
|
-
void
|
67
|
+
void psg_variant_map_free(PsgVariantMap *m);
|
67
68
|
|
68
|
-
|
69
|
+
PsgWatchdogLauncher *psg_watchdog_launcher_new(PsgIntegrationMode mode,
|
69
70
|
char **error_message);
|
70
|
-
int
|
71
|
+
int psg_watchdog_launcher_start(PsgWatchdogLauncher *launcher,
|
71
72
|
const char *passengerRoot,
|
72
|
-
|
73
|
-
const
|
73
|
+
PsgVariantMap *params,
|
74
|
+
const PsgAfterForkCallback afterFork,
|
74
75
|
void *callbackArgument,
|
75
76
|
char **errorMessage);
|
76
|
-
const char *
|
77
|
-
const char *
|
78
|
-
const char *
|
79
|
-
pid_t
|
80
|
-
void
|
81
|
-
void
|
77
|
+
const char *psg_watchdog_launcher_get_core_address(PsgWatchdogLauncher *launcher, unsigned int *size);
|
78
|
+
const char *psg_watchdog_launcher_get_core_password(PsgWatchdogLauncher *launcher, unsigned int *size);
|
79
|
+
const char *psg_watchdog_launcher_get_instance_dir(PsgWatchdogLauncher *launcher, unsigned int *size);
|
80
|
+
pid_t psg_watchdog_launcher_get_pid(PsgWatchdogLauncher *launcher);
|
81
|
+
void psg_watchdog_launcher_detach(PsgWatchdogLauncher *launcher);
|
82
|
+
void psg_watchdog_launcher_free(PsgWatchdogLauncher *launcher);
|
82
83
|
|
83
84
|
#ifdef __cplusplus
|
84
85
|
} /* extern "C" */
|
@@ -108,6 +109,7 @@ void pp_agents_starter_free(PP_AgentsStarter *as);
|
|
108
109
|
#include <Utils/Timer.h>
|
109
110
|
#include <Utils/ScopeGuard.h>
|
110
111
|
#include <Utils/VariantMap.h>
|
112
|
+
#include <Utils/ClassUtils.h>
|
111
113
|
|
112
114
|
namespace Passenger {
|
113
115
|
|
@@ -116,32 +118,52 @@ using namespace boost;
|
|
116
118
|
using namespace oxt;
|
117
119
|
|
118
120
|
/**
|
119
|
-
* Utility class for starting various
|
121
|
+
* Utility class for starting various the Passenger watchdog.
|
120
122
|
*/
|
121
|
-
class
|
122
|
-
|
123
|
-
|
123
|
+
class WatchdogLauncher {
|
124
|
+
/**
|
125
|
+
* Whether the starter process is Apache, Nginx or
|
126
|
+
* Passenger Standalone.
|
127
|
+
*/
|
128
|
+
P_RO_PROPERTY(private, PsgIntegrationMode, IntegrationMode);
|
124
129
|
|
125
|
-
/**
|
126
|
-
*
|
127
|
-
|
130
|
+
/**
|
131
|
+
* The watchdog's PID. Equals 0 if the watchdog hasn't been started yet
|
132
|
+
* or if `detach()` is called.
|
133
|
+
*/
|
134
|
+
P_RO_PROPERTY(private, pid_t, Pid);
|
128
135
|
|
129
|
-
|
136
|
+
// Note: the use of `CONST_REF` in the properties below is intentional.
|
137
|
+
// The C getter functions return the string pointer directly.
|
130
138
|
|
131
|
-
|
132
|
-
|
139
|
+
/**
|
140
|
+
* The address on which the Passenger core listens for HTTP requests,
|
141
|
+
* and the corresponding password.
|
142
|
+
*
|
143
|
+
* Only valid when `getPid() != 0`.
|
144
|
+
*/
|
145
|
+
P_RO_PROPERTY_CONST_REF(private, string, CoreAddress);
|
146
|
+
P_RO_PROPERTY_CONST_REF(private, string, CorePassword);
|
133
147
|
|
134
|
-
/**
|
148
|
+
/**
|
149
|
+
* The address on which the Passenger UstRouter listens, and the
|
135
150
|
* corresponding password.
|
151
|
+
*
|
152
|
+
* Only valid when `getPid() != 0`.
|
136
153
|
*/
|
137
|
-
string
|
138
|
-
string
|
154
|
+
P_RO_PROPERTY_CONST_REF(private, string, UstRouterAddress);
|
155
|
+
P_RO_PROPERTY_CONST_REF(private, string, UstRouterPassword);
|
139
156
|
|
140
|
-
/**
|
141
|
-
|
142
|
-
|
157
|
+
/**
|
158
|
+
* The path to the instance directory that the Watchdog has created.
|
159
|
+
*
|
160
|
+
* Only valid when `getPid() != 0`.
|
161
|
+
*/
|
162
|
+
P_RO_PROPERTY_CONST_REF(private, string, InstanceDir);
|
143
163
|
|
144
|
-
|
164
|
+
private:
|
165
|
+
/** The watchdog's feedback file descriptor. */
|
166
|
+
FileDescriptor feedbackFd;
|
145
167
|
|
146
168
|
/**
|
147
169
|
* Safely dup2() the given file descriptor to 3 (FEEDBACK_FD).
|
@@ -157,7 +179,8 @@ private:
|
|
157
179
|
NULL);
|
158
180
|
_exit(1);
|
159
181
|
} catch (...) {
|
160
|
-
fprintf(stderr,
|
182
|
+
fprintf(stderr,
|
183
|
+
"Passenger WatchdogLauncher: dup2() failed: %s (%d)\n",
|
161
184
|
strerror(e), e);
|
162
185
|
fflush(stderr);
|
163
186
|
_exit(1);
|
@@ -209,15 +232,15 @@ private:
|
|
209
232
|
}
|
210
233
|
}
|
211
234
|
|
212
|
-
void throwEnrichedWatchdogFailReason(string simpleReason) {
|
213
|
-
if (
|
235
|
+
void throwEnrichedWatchdogFailReason(const string &simpleReason) {
|
236
|
+
if (mIntegrationMode == IM_STANDALONE) {
|
214
237
|
throw RuntimeException("Unable to start " PROGRAM_NAME ": " + simpleReason +
|
215
238
|
". This probably means that your " SHORT_PROGRAM_NAME
|
216
239
|
" installation is broken or incomplete. Please try reinstalling " SHORT_PROGRAM_NAME);
|
217
240
|
} else {
|
218
241
|
string passengerRootConfig;
|
219
242
|
string docURL;
|
220
|
-
if (
|
243
|
+
if (mIntegrationMode == IM_APACHE) {
|
221
244
|
passengerRootConfig = "PassengerRoot";
|
222
245
|
docURL = "https://www.phusionpassenger.com/library/config/apache/reference/#passengerroot";
|
223
246
|
} else {
|
@@ -262,18 +285,16 @@ private:
|
|
262
285
|
|
263
286
|
public:
|
264
287
|
/**
|
265
|
-
* Construct a
|
266
|
-
*
|
267
|
-
*
|
268
|
-
* @param type Whether the start process is Apache or Nginx.
|
288
|
+
* Construct a WatchdogLauncher object. The watchdog won't be started
|
289
|
+
* until you call `start()`.
|
269
290
|
*/
|
270
|
-
|
271
|
-
|
272
|
-
|
273
|
-
|
291
|
+
WatchdogLauncher(PsgIntegrationMode _integrationMode)
|
292
|
+
: mIntegrationMode(_integrationMode),
|
293
|
+
mPid(0)
|
294
|
+
{ }
|
274
295
|
|
275
|
-
~
|
276
|
-
if (
|
296
|
+
~WatchdogLauncher() {
|
297
|
+
if (mPid != 0) {
|
277
298
|
this_thread::disable_syscall_interruption dsi;
|
278
299
|
|
279
300
|
/* Send a message down the feedback fd to tell the watchdog
|
@@ -282,57 +303,23 @@ public:
|
|
282
303
|
*/
|
283
304
|
syscalls::write(feedbackFd, "c", 1);
|
284
305
|
feedbackFd.close();
|
285
|
-
syscalls::waitpid(
|
306
|
+
syscalls::waitpid(mPid, NULL, 0);
|
286
307
|
}
|
287
308
|
}
|
288
309
|
|
289
|
-
PP_AgentsStarterType getType() const {
|
290
|
-
return type;
|
291
|
-
}
|
292
|
-
|
293
|
-
/**
|
294
|
-
* Returns the watchdog's PID. Equals 0 if the watchdog hasn't been started yet
|
295
|
-
* or if detach() is called.
|
296
|
-
*/
|
297
|
-
pid_t getPid() const {
|
298
|
-
return pid;
|
299
|
-
}
|
300
|
-
|
301
310
|
const char *getIntegrationModeString() const {
|
302
|
-
switch (
|
303
|
-
case
|
311
|
+
switch (mIntegrationMode) {
|
312
|
+
case IM_APACHE:
|
304
313
|
return "apache";
|
305
|
-
case
|
314
|
+
case IM_NGINX:
|
306
315
|
return "nginx";
|
307
|
-
case
|
316
|
+
case IM_STANDALONE:
|
308
317
|
return "standalone";
|
309
318
|
default:
|
310
319
|
return "unknown";
|
311
320
|
}
|
312
321
|
}
|
313
322
|
|
314
|
-
// The 'const string &' here is on purpose. The C getter functions
|
315
|
-
// return the string pointer directly.
|
316
|
-
const string &getCoreAddress() const {
|
317
|
-
return coreAddress;
|
318
|
-
}
|
319
|
-
|
320
|
-
const string &getCorePassword() const {
|
321
|
-
return corePassword;
|
322
|
-
}
|
323
|
-
|
324
|
-
const string &getUstRouterAddress() const {
|
325
|
-
return ustRouterAddress;
|
326
|
-
}
|
327
|
-
|
328
|
-
const string &getUstRouterPassword() const {
|
329
|
-
return ustRouterPassword;
|
330
|
-
}
|
331
|
-
|
332
|
-
const string &getInstanceDir() const {
|
333
|
-
return instanceDir;
|
334
|
-
}
|
335
|
-
|
336
323
|
/**
|
337
324
|
* Start the agents through the watchdog.
|
338
325
|
*
|
@@ -420,7 +407,7 @@ public:
|
|
420
407
|
NULL);
|
421
408
|
_exit(1);
|
422
409
|
} catch (...) {
|
423
|
-
fprintf(stderr, "Passenger
|
410
|
+
fprintf(stderr, "Passenger WatchdogLauncher: could not execute %s: %s (%d)\n",
|
424
411
|
agentFilename.c_str(), strerror(e), e);
|
425
412
|
fflush(stderr);
|
426
413
|
_exit(1);
|
@@ -436,9 +423,9 @@ public:
|
|
436
423
|
vector<string> args;
|
437
424
|
bool result = false;
|
438
425
|
|
439
|
-
ScopeGuard guard(boost::bind(&
|
426
|
+
ScopeGuard guard(boost::bind(&WatchdogLauncher::killProcessGroupAndWait, &pid, 0));
|
440
427
|
fds[1].close();
|
441
|
-
P_LOG_FILE_DESCRIPTOR_PURPOSE(feedbackFd, "
|
428
|
+
P_LOG_FILE_DESCRIPTOR_PURPOSE(feedbackFd, "WatchdogLauncher: feedback FD");
|
442
429
|
|
443
430
|
|
444
431
|
/****** Send arguments to watchdog through the feedback channel ******/
|
@@ -495,13 +482,13 @@ public:
|
|
495
482
|
info.set(key, value);
|
496
483
|
}
|
497
484
|
|
498
|
-
|
499
|
-
this->feedbackFd
|
500
|
-
|
501
|
-
|
502
|
-
|
503
|
-
|
504
|
-
|
485
|
+
mPid = pid;
|
486
|
+
this->feedbackFd = feedbackFd;
|
487
|
+
mCoreAddress = info.get("core_address");
|
488
|
+
mCorePassword = info.get("core_password");
|
489
|
+
mInstanceDir = info.get("instance_dir");
|
490
|
+
mUstRouterAddress = info.get("ust_router_address");
|
491
|
+
mUstRouterPassword = info.get("ust_router_password");
|
505
492
|
guard.clear();
|
506
493
|
} else if (args[0] == "Watchdog startup error") {
|
507
494
|
killProcessGroupAndWait(&pid, 5000);
|
@@ -534,14 +521,14 @@ public:
|
|
534
521
|
}
|
535
522
|
|
536
523
|
/**
|
537
|
-
* Close any file descriptors that this object has, and make it so that
|
538
|
-
* doesn't try to shut down the
|
524
|
+
* Close any file descriptors that this object has, and make it so that
|
525
|
+
* the destructor doesn't try to shut down the watchdog.
|
539
526
|
*
|
540
527
|
* @post getPid() == 0
|
541
528
|
*/
|
542
529
|
void detach() {
|
543
530
|
feedbackFd.close();
|
544
|
-
|
531
|
+
mPid = 0;
|
545
532
|
}
|
546
533
|
};
|
547
534
|
|
@@ -549,4 +536,4 @@ public:
|
|
549
536
|
|
550
537
|
#endif /* __cplusplus */
|
551
538
|
|
552
|
-
#endif /*
|
539
|
+
#endif /* _PASSENGER_WATCHDOG_LAUNCHER_HPsg */
|
@@ -2,7 +2,7 @@
|
|
2
2
|
* OXT - OS eXtensions for boosT
|
3
3
|
* Provides important functionality necessary for writing robust server software.
|
4
4
|
*
|
5
|
-
* Copyright (c) 2010 Phusion
|
5
|
+
* Copyright (c) 2010 Phusion Holding B.V.
|
6
6
|
*
|
7
7
|
* Permission is hereby granted, free of charge, to any person obtaining a copy
|
8
8
|
* of this software and associated documentation files (the "Software"), to deal
|
@@ -2,7 +2,7 @@
|
|
2
2
|
* OXT - OS eXtensions for boosT
|
3
3
|
* Provides important functionality necessary for writing robust server software.
|
4
4
|
*
|
5
|
-
* Copyright (c) 2010-2014 Phusion
|
5
|
+
* Copyright (c) 2010-2014 Phusion Holding B.V.
|
6
6
|
*
|
7
7
|
* Permission is hereby granted, free of charge, to any person obtaining a copy
|
8
8
|
* of this software and associated documentation files (the "Software"), to deal
|
@@ -2,7 +2,7 @@
|
|
2
2
|
* OXT - OS eXtensions for boosT
|
3
3
|
* Provides important functionality necessary for writing robust server software.
|
4
4
|
*
|
5
|
-
* Copyright (c) 2010-2014 Phusion
|
5
|
+
* Copyright (c) 2010-2014 Phusion Holding B.V.
|
6
6
|
*
|
7
7
|
* Permission is hereby granted, free of charge, to any person obtaining a copy
|
8
8
|
* of this software and associated documentation files (the "Software"), to deal
|
@@ -2,7 +2,7 @@
|
|
2
2
|
* OXT - OS eXtensions for boosT
|
3
3
|
* Provides important functionality necessary for writing robust server software.
|
4
4
|
*
|
5
|
-
* Copyright (c) 2012 Phusion
|
5
|
+
* Copyright (c) 2012 Phusion Holding B.V.
|
6
6
|
*
|
7
7
|
* Permission is hereby granted, free of charge, to any person obtaining a copy
|
8
8
|
* of this software and associated documentation files (the "Software"), to deal
|
@@ -2,7 +2,7 @@
|
|
2
2
|
* OXT - OS eXtensions for boosT
|
3
3
|
* Provides important functionality necessary for writing robust server software.
|
4
4
|
*
|
5
|
-
* Copyright (c) 2010 Phusion
|
5
|
+
* Copyright (c) 2010 Phusion Holding B.V.
|
6
6
|
*
|
7
7
|
* Permission is hereby granted, free of charge, to any person obtaining a copy
|
8
8
|
* of this software and associated documentation files (the "Software"), to deal
|
@@ -2,7 +2,7 @@
|
|
2
2
|
* OXT - OS eXtensions for boosT
|
3
3
|
* Provides important functionality necessary for writing robust server software.
|
4
4
|
*
|
5
|
-
* Copyright (c) 2010 Phusion
|
5
|
+
* Copyright (c) 2010 Phusion Holding B.V.
|
6
6
|
*
|
7
7
|
* Permission is hereby granted, free of charge, to any person obtaining a copy
|
8
8
|
* of this software and associated documentation files (the "Software"), to deal
|
@@ -2,7 +2,7 @@
|
|
2
2
|
* OXT - OS eXtensions for boosT
|
3
3
|
* Provides important functionality necessary for writing robust server software.
|
4
4
|
*
|
5
|
-
* Copyright (c) 2010 Phusion
|
5
|
+
* Copyright (c) 2010 Phusion Holding B.V.
|
6
6
|
*
|
7
7
|
* Permission is hereby granted, free of charge, to any person obtaining a copy
|
8
8
|
* of this software and associated documentation files (the "Software"), to deal
|
@@ -2,7 +2,7 @@
|
|
2
2
|
* OXT - OS eXtensions for boosT
|
3
3
|
* Provides important functionality necessary for writing robust server software.
|
4
4
|
*
|
5
|
-
* Copyright (c) 2010 Phusion
|
5
|
+
* Copyright (c) 2010 Phusion Holding B.V.
|
6
6
|
*
|
7
7
|
* Permission is hereby granted, free of charge, to any person obtaining a copy
|
8
8
|
* of this software and associated documentation files (the "Software"), to deal
|
@@ -2,7 +2,7 @@
|
|
2
2
|
* OXT - OS eXtensions for boosT
|
3
3
|
* Provides important functionality necessary for writing robust server software.
|
4
4
|
*
|
5
|
-
* Copyright (c) 2010-2013 Phusion
|
5
|
+
* Copyright (c) 2010-2013 Phusion Holding B.V.
|
6
6
|
*
|
7
7
|
* Permission is hereby granted, free of charge, to any person obtaining a copy
|
8
8
|
* of this software and associated documentation files (the "Software"), to deal
|
@@ -2,7 +2,7 @@
|
|
2
2
|
* OXT - OS eXtensions for boosT
|
3
3
|
* Provides important functionality necessary for writing robust server software.
|
4
4
|
*
|
5
|
-
* Copyright (c) 2010-2013 Phusion
|
5
|
+
* Copyright (c) 2010-2013 Phusion Holding B.V.
|
6
6
|
*
|
7
7
|
* Permission is hereby granted, free of charge, to any person obtaining a copy
|
8
8
|
* of this software and associated documentation files (the "Software"), to deal
|