passenger 6.2.0 → 6.2.1
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 +33 -1
- data/CONTRIBUTING.md +7 -311
- data/CONTRIBUTORS +1 -0
- data/LICENSE +1 -1
- data/README.md +1 -1
- data/Rakefile +1 -1
- data/bin/passenger +1 -1
- data/bin/passenger-config +1 -1
- data/bin/passenger-install-apache2-module +1 -1
- data/bin/passenger-install-nginx-module +4 -9
- data/bin/passenger-memory-stats +1 -1
- data/bin/passenger-status +1 -1
- data/build/agent.rb +13 -15
- data/build/apache2.rb +13 -16
- data/build/basics.rb +10 -13
- data/build/common_library.rb +5 -9
- data/build/cxx_tests.rb +37 -12
- data/build/integration_tests.rb +5 -2
- data/build/misc.rb +1 -1
- data/build/nginx.rb +1 -1
- data/build/node_tests.rb +1 -1
- data/build/oxt_tests.rb +6 -8
- data/build/packaging.rb +1 -1
- data/build/ruby_extension.rb +1 -1
- data/build/ruby_tests.rb +1 -1
- data/build/schema_printer.rb +13 -15
- data/build/support/cplusplus.rb +61 -69
- data/build/support/cxx_dependency_map.rb +2 -1
- data/build/support/general.rb +1 -1
- data/build/support/vendor/cxx_hinted_parser/LICENSE.md +1 -1
- data/build/support/vendor/cxx_hinted_parser/lib/cxx_hinted_parser/parser.rb +1 -1
- data/build/support/vendor/cxx_hinted_parser/lib/cxx_hinted_parser.rb +1 -1
- data/build/support/vendor/cxxcodebuilder/LICENSE.md +1 -1
- data/build/support/vendor/cxxcodebuilder/lib/cxxcodebuilder/builder.rb +1 -1
- data/build/support/vendor/cxxcodebuilder/lib/cxxcodebuilder/initializer_builder.rb +1 -1
- data/build/support/vendor/cxxcodebuilder/lib/cxxcodebuilder.rb +1 -1
- data/build/test_basics.rb +1 -1
- data/dev/copy_boost_headers +1 -1
- data/dev/index_cxx_dependencies.rb +5 -1
- data/dev/libev-changes.patch +108 -0
- data/dev/nginx_version_sha256 +1 -1
- data/dev/ruby_server.rb +1 -6
- data/dev/upgrading_libuv.sh +16 -0
- data/doc/BasicArchitectureOverview.md +55 -0
- data/doc/BuildCaching.md +23 -0
- data/doc/BuildSystem.md +49 -0
- data/doc/DebuggingAndStressTesting.md +2 -0
- data/doc/DesignAspects/LimitedGemDependencies.md +1 -0
- data/doc/DevEnvironmentSetup.md +46 -0
- data/doc/DevHandbook.md +28 -0
- data/doc/Packaging.md +1 -1
- data/doc/RunningTests.md +88 -0
- data/doc/{TempFileHandling.md → SecureTempFileHandling.md} +1 -1
- data/doc/{CxxTestingGuide.md → WritingCxxTests.md} +1 -20
- data/src/agent/AgentMain.cpp +1 -1
- data/src/agent/Core/ApiServer.h +1 -1
- data/src/agent/Core/ApplicationPool/AbstractSession.h +1 -1
- data/src/agent/Core/ApplicationPool/BasicGroupInfo.h +1 -1
- data/src/agent/Core/ApplicationPool/BasicProcessInfo.h +1 -1
- data/src/agent/Core/ApplicationPool/Common.h +1 -1
- data/src/agent/Core/ApplicationPool/Context.h +1 -1
- data/src/agent/Core/ApplicationPool/Group/InitializationAndShutdown.cpp +1 -1
- data/src/agent/Core/ApplicationPool/Group/InternalUtils.cpp +1 -1
- data/src/agent/Core/ApplicationPool/Group/LifetimeAndBasics.cpp +1 -1
- data/src/agent/Core/ApplicationPool/Group/Miscellaneous.cpp +1 -1
- data/src/agent/Core/ApplicationPool/Group/OutOfBandWork.cpp +1 -1
- data/src/agent/Core/ApplicationPool/Group/ProcessListManagement.cpp +1 -1
- data/src/agent/Core/ApplicationPool/Group/SessionManagement.cpp +1 -1
- data/src/agent/Core/ApplicationPool/Group/SpawningAndRestarting.cpp +1 -1
- data/src/agent/Core/ApplicationPool/Group/StateInspection.cpp +1 -1
- data/src/agent/Core/ApplicationPool/Group/Verification.cpp +1 -1
- data/src/agent/Core/ApplicationPool/Group.h +1 -1
- data/src/agent/Core/ApplicationPool/Implementation.cpp +1 -1
- data/src/agent/Core/ApplicationPool/Options.h +1 -1
- data/src/agent/Core/ApplicationPool/Pool/AnalyticsCollection.cpp +1 -1
- data/src/agent/Core/ApplicationPool/Pool/GarbageCollection.cpp +1 -1
- data/src/agent/Core/ApplicationPool/Pool/GeneralUtils.cpp +1 -1
- data/src/agent/Core/ApplicationPool/Pool/GroupUtils.cpp +1 -1
- data/src/agent/Core/ApplicationPool/Pool/InitializationAndShutdown.cpp +1 -1
- data/src/agent/Core/ApplicationPool/Pool/Miscellaneous.cpp +1 -1
- data/src/agent/Core/ApplicationPool/Pool/ProcessUtils.cpp +1 -1
- data/src/agent/Core/ApplicationPool/Pool/StateInspection.cpp +1 -1
- data/src/agent/Core/ApplicationPool/Pool.h +1 -1
- data/src/agent/Core/ApplicationPool/Process.cpp +1 -1
- data/src/agent/Core/ApplicationPool/Process.h +1 -1
- data/src/agent/Core/ApplicationPool/Session.h +1 -1
- data/src/agent/Core/ApplicationPool/Socket.h +1 -1
- data/src/agent/Core/ApplicationPool/TestSession.h +1 -1
- data/src/agent/Core/Config.h +3 -2
- data/src/agent/Core/ConfigChange.cpp +1 -1
- data/src/agent/Core/ConfigChange.h +1 -1
- data/src/agent/Core/Controller/AppResponse.h +1 -1
- data/src/agent/Core/Controller/BufferBody.cpp +1 -1
- data/src/agent/Core/Controller/CheckoutSession.cpp +8 -5
- data/src/agent/Core/Controller/Client.h +1 -1
- data/src/agent/Core/Controller/Config.cpp +1 -1
- data/src/agent/Core/Controller/Config.h +2 -2
- data/src/agent/Core/Controller/ForwardResponse.cpp +2 -2
- data/src/agent/Core/Controller/Hooks.cpp +12 -9
- data/src/agent/Core/Controller/Implementation.cpp +1 -1
- data/src/agent/Core/Controller/InitRequest.cpp +1 -1
- data/src/agent/Core/Controller/InitializationAndShutdown.cpp +1 -1
- data/src/agent/Core/Controller/InternalUtils.cpp +1 -1
- data/src/agent/Core/Controller/Miscellaneous.cpp +1 -1
- data/src/agent/Core/Controller/Request.h +1 -1
- data/src/agent/Core/Controller/SendRequest.cpp +1 -1
- data/src/agent/Core/Controller/StateInspection.cpp +1 -1
- data/src/agent/Core/Controller/TurboCaching.h +1 -1
- data/src/agent/Core/Controller.h +1 -1
- data/src/agent/Core/CoreMain.cpp +1 -1
- data/src/agent/Core/OptionParser.h +1 -1
- data/src/agent/Core/ResponseCache.h +1 -1
- data/src/agent/Core/SecurityUpdateChecker.h +1 -1
- data/src/agent/Core/SpawningKit/Config/AutoGeneratedCode.h +1 -1
- data/src/agent/Core/SpawningKit/Config/AutoGeneratedCode.h.cxxcodebuilder +1 -1
- data/src/agent/Core/SpawningKit/Config.h +1 -1
- data/src/agent/Core/SpawningKit/Context.h +1 -1
- data/src/agent/Core/SpawningKit/DirectSpawner.h +1 -1
- data/src/agent/Core/SpawningKit/DummySpawner.h +1 -1
- data/src/agent/Core/SpawningKit/ErrorRenderer.h +1 -1
- data/src/agent/Core/SpawningKit/Exceptions.h +63 -2
- data/src/agent/Core/SpawningKit/Factory.h +1 -1
- data/src/agent/Core/SpawningKit/Handshake/BackgroundIOCapturer.h +1 -1
- data/src/agent/Core/SpawningKit/Handshake/Perform.h +3 -2
- data/src/agent/Core/SpawningKit/Handshake/Prepare.h +1 -1
- data/src/agent/Core/SpawningKit/Handshake/Session.h +1 -1
- data/src/agent/Core/SpawningKit/Handshake/WorkDir.h +1 -1
- data/src/agent/Core/SpawningKit/Journey.h +1 -1
- data/src/agent/Core/SpawningKit/PipeWatcher.h +1 -1
- data/src/agent/Core/SpawningKit/README.md +3 -3
- data/src/agent/Core/SpawningKit/Result/AutoGeneratedCode.h +1 -1
- data/src/agent/Core/SpawningKit/Result/AutoGeneratedCode.h.cxxcodebuilder +1 -1
- data/src/agent/Core/SpawningKit/Result.h +1 -1
- data/src/agent/Core/SpawningKit/SmartSpawner.h +17 -17
- data/src/agent/Core/SpawningKit/Spawner.h +1 -1
- data/src/agent/Core/SpawningKit/UserSwitchingRules.h +1 -1
- data/src/agent/Core/TelemetryCollector.h +1 -1
- data/src/agent/ExecHelper/ExecHelperMain.cpp +1 -1
- data/src/agent/FileReadHelper/FileReadHelperMain.cpp +1 -1
- data/src/agent/MainFunctions.h +1 -1
- data/src/agent/Shared/ApiAccountUtils.h +4 -3
- data/src/agent/Shared/ApiServerUtils.h +1 -2
- data/src/agent/Shared/ApplicationPoolApiKey.h +1 -1
- data/src/agent/Shared/Fundamentals/AbortHandler.cpp +1 -1
- data/src/agent/Shared/Fundamentals/AbortHandler.h +1 -1
- data/src/agent/Shared/Fundamentals/Initialization.cpp +1 -1
- data/src/agent/Shared/Fundamentals/Initialization.h +1 -1
- data/src/agent/Shared/Fundamentals/Utils.cpp +1 -1
- data/src/agent/Shared/Fundamentals/Utils.h +1 -1
- data/src/agent/SpawnEnvSetupper/SpawnEnvSetupperMain.cpp +1 -1
- data/src/agent/SystemMetrics/SystemMetricsMain.cpp +1 -1
- data/src/agent/TempDirToucher/TempDirToucherMain.cpp +1 -1
- data/src/agent/Watchdog/ApiServer.h +7 -6
- data/src/agent/Watchdog/Config.h +2 -2
- data/src/apache2_module/Bucket.cpp +1 -1
- data/src/apache2_module/Bucket.h +1 -1
- data/src/apache2_module/CBindings.cpp +1 -1
- data/src/apache2_module/Config.cpp +1 -1
- data/src/apache2_module/Config.h +1 -1
- data/src/apache2_module/ConfigGeneral/AutoGeneratedDefinitions.cpp +104 -104
- data/src/apache2_module/ConfigGeneral/AutoGeneratedDefinitions.cpp.cxxcodebuilder +2 -2
- data/src/apache2_module/ConfigGeneral/AutoGeneratedManifestDefaultsInitialization.cpp +1 -1
- data/src/apache2_module/ConfigGeneral/AutoGeneratedManifestDefaultsInitialization.cpp.cxxcodebuilder +1 -1
- data/src/apache2_module/ConfigGeneral/AutoGeneratedSetterFuncs.cpp +1 -1
- data/src/apache2_module/ConfigGeneral/AutoGeneratedSetterFuncs.cpp.cxxcodebuilder +1 -1
- data/src/apache2_module/ConfigGeneral/Common.h +1 -1
- data/src/apache2_module/ConfigGeneral/ManifestGeneration.h +1 -1
- data/src/apache2_module/ConfigGeneral/SetterFuncs.h +1 -1
- data/src/apache2_module/DirConfig/AutoGeneratedCreateFunction.cpp +1 -1
- data/src/apache2_module/DirConfig/AutoGeneratedCreateFunction.cpp.cxxcodebuilder +1 -1
- data/src/apache2_module/DirConfig/AutoGeneratedHeaderSerialization.cpp +1 -1
- data/src/apache2_module/DirConfig/AutoGeneratedHeaderSerialization.cpp.cxxcodebuilder +1 -1
- data/src/apache2_module/DirConfig/AutoGeneratedManifestGeneration.cpp +1 -1
- data/src/apache2_module/DirConfig/AutoGeneratedManifestGeneration.cpp.cxxcodebuilder +1 -1
- data/src/apache2_module/DirConfig/AutoGeneratedMergeFunction.cpp +1 -1
- data/src/apache2_module/DirConfig/AutoGeneratedMergeFunction.cpp.cxxcodebuilder +1 -1
- data/src/apache2_module/DirConfig/AutoGeneratedStruct.h +1 -1
- data/src/apache2_module/DirConfig/AutoGeneratedStruct.h.cxxcodebuilder +1 -1
- data/src/apache2_module/DirectoryMapper.h +1 -1
- data/src/apache2_module/Hooks.cpp +8 -2
- data/src/apache2_module/Hooks.h +1 -1
- data/src/apache2_module/ServerConfig/AutoGeneratedManifestGeneration.cpp +1 -1
- data/src/apache2_module/ServerConfig/AutoGeneratedManifestGeneration.cpp.cxxcodebuilder +1 -1
- data/src/apache2_module/ServerConfig/AutoGeneratedStruct.h +1 -1
- data/src/apache2_module/ServerConfig/AutoGeneratedStruct.h.cxxcodebuilder +1 -1
- data/src/apache2_module/Utils.h +1 -1
- data/src/apache2_module/mod_passenger.c +1 -1
- data/src/cxx_supportlib/Algorithms/Hasher.cpp +1 -1
- data/src/cxx_supportlib/Algorithms/Hasher.h +1 -1
- data/src/cxx_supportlib/Algorithms/MovingAverage.h +1 -1
- data/src/cxx_supportlib/AppLocalConfigFileUtils.h +1 -1
- data/src/cxx_supportlib/AppTypeDetector/CBindings.cpp +1 -1
- data/src/cxx_supportlib/AppTypeDetector/CBindings.h +1 -1
- data/src/cxx_supportlib/AppTypeDetector/Detector.h +1 -1
- data/src/cxx_supportlib/BackgroundEventLoop.cpp +1 -1
- data/src/cxx_supportlib/BackgroundEventLoop.h +1 -1
- data/src/cxx_supportlib/ConfigKit/AsyncUtils.h +1 -1
- data/src/cxx_supportlib/ConfigKit/Common.h +1 -1
- data/src/cxx_supportlib/ConfigKit/ConfigKit.h +1 -1
- data/src/cxx_supportlib/ConfigKit/DummyTranslator.h +1 -1
- data/src/cxx_supportlib/ConfigKit/IN_PRACTICE.md +1 -3
- data/src/cxx_supportlib/ConfigKit/PrefixTranslator.h +3 -3
- data/src/cxx_supportlib/ConfigKit/Schema.h +1 -1
- data/src/cxx_supportlib/ConfigKit/SchemaUtils.h +1 -1
- data/src/cxx_supportlib/ConfigKit/Store.h +1 -1
- data/src/cxx_supportlib/ConfigKit/SubComponentUtils.h +1 -1
- data/src/cxx_supportlib/ConfigKit/TableTranslator.h +1 -1
- data/src/cxx_supportlib/ConfigKit/Translator.h +1 -1
- data/src/cxx_supportlib/ConfigKit/Utils.h +1 -1
- data/src/cxx_supportlib/Constants.h +2 -2
- data/src/cxx_supportlib/Constants.h.cxxcodebuilder +1 -1
- data/src/cxx_supportlib/DataStructures/HashedStaticString.h +1 -1
- data/src/cxx_supportlib/DataStructures/LString.cpp +1 -1
- data/src/cxx_supportlib/DataStructures/LString.h +1 -1
- data/src/cxx_supportlib/DataStructures/StringKeyTable.h +1 -1
- data/src/cxx_supportlib/DataStructures/StringMap.h +1 -1
- data/src/cxx_supportlib/Exceptions.cpp +1 -1
- data/src/cxx_supportlib/Exceptions.h +1 -1
- data/src/cxx_supportlib/FileDescriptor.h +1 -1
- data/src/cxx_supportlib/FileTools/FileManip.cpp +1 -1
- data/src/cxx_supportlib/FileTools/FileManip.h +1 -1
- data/src/cxx_supportlib/FileTools/PathManip.cpp +1 -1
- data/src/cxx_supportlib/FileTools/PathManip.h +1 -1
- data/src/cxx_supportlib/FileTools/PathManipCBindings.cpp +1 -1
- data/src/cxx_supportlib/FileTools/PathManipCBindings.h +1 -1
- data/src/cxx_supportlib/FileTools/PathSecurityCheck.cpp +1 -1
- data/src/cxx_supportlib/FileTools/PathSecurityCheck.h +1 -1
- data/src/cxx_supportlib/Hooks.h +1 -1
- data/src/cxx_supportlib/IOTools/BufferedIO.h +1 -1
- data/src/cxx_supportlib/IOTools/IOUtils.cpp +10 -10
- data/src/cxx_supportlib/IOTools/IOUtils.h +1 -1
- data/src/cxx_supportlib/IOTools/MessageIO.h +1 -1
- data/src/cxx_supportlib/IOTools/MessageSerialization.h +1 -1
- data/src/cxx_supportlib/InstanceDirectory.h +1 -1
- data/src/cxx_supportlib/Integrations/LibevJsonUtils.h +1 -1
- data/src/cxx_supportlib/JsonTools/Autocast.h +1 -1
- data/src/cxx_supportlib/JsonTools/CBindings.cpp +1 -1
- data/src/cxx_supportlib/JsonTools/CBindings.h +1 -1
- data/src/cxx_supportlib/JsonTools/JsonUtils.h +1 -1
- data/src/cxx_supportlib/LoggingKit/Assert.h +1 -1
- data/src/cxx_supportlib/LoggingKit/Config.h +2 -1
- data/src/cxx_supportlib/LoggingKit/Context.h +1 -1
- data/src/cxx_supportlib/LoggingKit/Forward.h +1 -1
- data/src/cxx_supportlib/LoggingKit/Implementation.cpp +11 -1
- data/src/cxx_supportlib/LoggingKit/Logging.h +1 -1
- data/src/cxx_supportlib/LoggingKit/LoggingKit.h +1 -1
- data/src/cxx_supportlib/LveLoggingDecorator.h +1 -1
- data/src/cxx_supportlib/MemoryKit/mbuf.cpp +1 -1
- 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/ProcessManagement/Ruby.cpp +1 -1
- data/src/cxx_supportlib/ProcessManagement/Ruby.h +1 -1
- data/src/cxx_supportlib/ProcessManagement/Spawn.cpp +1 -1
- data/src/cxx_supportlib/ProcessManagement/Spawn.h +1 -1
- data/src/cxx_supportlib/ProcessManagement/Utils.cpp +1 -1
- data/src/cxx_supportlib/ProcessManagement/Utils.h +1 -1
- data/src/cxx_supportlib/RandomGenerator.h +1 -1
- data/src/cxx_supportlib/ResourceLocator.h +1 -1
- data/src/cxx_supportlib/SafeLibev.h +1 -1
- data/src/cxx_supportlib/SecurityKit/Crypto.cpp +9 -27
- data/src/cxx_supportlib/SecurityKit/Crypto.h +2 -2
- data/src/cxx_supportlib/SecurityKit/MemZeroGuard.h +1 -1
- data/src/cxx_supportlib/ServerKit/AcceptLoadBalancer.h +1 -1
- data/src/cxx_supportlib/ServerKit/Channel.h +1 -1
- data/src/cxx_supportlib/ServerKit/Client.h +1 -1
- data/src/cxx_supportlib/ServerKit/ClientRef.h +1 -1
- data/src/cxx_supportlib/ServerKit/Config.h +1 -1
- data/src/cxx_supportlib/ServerKit/Context.h +1 -1
- data/src/cxx_supportlib/ServerKit/CookieUtils.h +1 -1
- data/src/cxx_supportlib/ServerKit/Errors.h +1 -1
- data/src/cxx_supportlib/ServerKit/FdSinkChannel.h +1 -1
- data/src/cxx_supportlib/ServerKit/FdSourceChannel.h +1 -1
- data/src/cxx_supportlib/ServerKit/FileBufferedChannel.h +54 -2
- data/src/cxx_supportlib/ServerKit/FileBufferedFdSinkChannel.h +1 -1
- data/src/cxx_supportlib/ServerKit/HeaderTable.h +1 -1
- data/src/cxx_supportlib/ServerKit/Hooks.h +1 -1
- data/src/cxx_supportlib/ServerKit/HttpChunkedBodyParser.h +1 -1
- data/src/cxx_supportlib/ServerKit/HttpChunkedBodyParserState.h +1 -1
- data/src/cxx_supportlib/ServerKit/HttpClient.h +1 -1
- data/src/cxx_supportlib/ServerKit/HttpHeaderParser.h +1 -1
- data/src/cxx_supportlib/ServerKit/HttpHeaderParserState.h +1 -1
- data/src/cxx_supportlib/ServerKit/HttpRequest.h +1 -1
- data/src/cxx_supportlib/ServerKit/HttpRequestRef.h +1 -1
- data/src/cxx_supportlib/ServerKit/HttpServer.h +1 -1
- data/src/cxx_supportlib/ServerKit/Implementation.cpp +1 -1
- data/src/cxx_supportlib/ServerKit/Server.h +4 -2
- data/src/cxx_supportlib/StaticString.h +1 -1
- data/src/cxx_supportlib/StrIntTools/DateParsing.h +1 -1
- data/src/cxx_supportlib/StrIntTools/StrIntUtils.cpp +1 -1
- data/src/cxx_supportlib/StrIntTools/StrIntUtils.h +1 -1
- data/src/cxx_supportlib/StrIntTools/StrIntUtilsNoStrictAliasing.cpp +1 -1
- data/src/cxx_supportlib/StrIntTools/StringScanning.h +1 -1
- data/src/cxx_supportlib/StrIntTools/Template.h +1 -1
- data/src/cxx_supportlib/SystemTools/ContainerHelpers.h +1 -1
- data/src/cxx_supportlib/SystemTools/ProcessMetricsCollector.h +1 -1
- data/src/cxx_supportlib/SystemTools/SystemMetricsCollector.h +1 -1
- data/src/cxx_supportlib/SystemTools/SystemTime.cpp +1 -1
- data/src/cxx_supportlib/SystemTools/SystemTime.h +1 -1
- data/src/cxx_supportlib/SystemTools/UserDatabase.cpp +1 -1
- data/src/cxx_supportlib/SystemTools/UserDatabase.h +1 -1
- data/src/cxx_supportlib/Utils/AnsiColorConstants.h +1 -1
- data/src/cxx_supportlib/Utils/AsyncSignalSafeUtils.h +1 -1
- data/src/cxx_supportlib/Utils/BlockingQueue.h +1 -1
- data/src/cxx_supportlib/Utils/CachedFileStat.cpp +1 -1
- data/src/cxx_supportlib/Utils/CachedFileStat.h +1 -1
- data/src/cxx_supportlib/Utils/CachedFileStat.hpp +1 -1
- data/src/cxx_supportlib/Utils/ClassUtils.h +1 -1
- data/src/cxx_supportlib/Utils/Curl.h +1 -1
- data/src/cxx_supportlib/Utils/FastStringStream.h +1 -1
- data/src/cxx_supportlib/Utils/FileChangeChecker.h +1 -1
- data/src/cxx_supportlib/Utils/HttpConstants.h +1 -1
- data/src/cxx_supportlib/Utils/IniFile.h +1 -1
- data/src/cxx_supportlib/Utils/MessagePassing.h +1 -1
- data/src/cxx_supportlib/Utils/OptionParsing.h +1 -1
- data/src/cxx_supportlib/Utils/ReleaseableScopedPointer.h +1 -1
- data/src/cxx_supportlib/Utils/ScopeGuard.h +1 -1
- data/src/cxx_supportlib/Utils/SpeedMeter.h +1 -1
- data/src/cxx_supportlib/Utils/Timer.h +1 -1
- data/src/cxx_supportlib/Utils/VariantMap.h +1 -1
- data/src/cxx_supportlib/Utils.cpp +1 -1
- data/src/cxx_supportlib/Utils.h +1 -1
- data/src/cxx_supportlib/WatchdogLauncher.cpp +1 -1
- data/src/cxx_supportlib/WatchdogLauncher.h +1 -1
- data/src/cxx_supportlib/WrapperRegistry/CBindings.cpp +1 -1
- data/src/cxx_supportlib/WrapperRegistry/CBindings.h +1 -1
- data/src/cxx_supportlib/WrapperRegistry/Entry.h +1 -1
- data/src/cxx_supportlib/WrapperRegistry/Registry.h +1 -1
- 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/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-copy/adhoc_lve.h +1 -1
- data/src/cxx_supportlib/vendor-copy/libuv/AUTHORS +353 -3
- data/src/cxx_supportlib/vendor-copy/libuv/ChangeLog +3981 -2
- data/src/cxx_supportlib/vendor-copy/libuv/LICENSE +1 -28
- data/src/cxx_supportlib/vendor-copy/libuv/LICENSE-docs +396 -0
- data/src/cxx_supportlib/vendor-copy/libuv/LICENSE-extra +36 -0
- data/src/cxx_supportlib/vendor-copy/libuv/Makefile.am +275 -58
- data/src/cxx_supportlib/vendor-copy/libuv/Makefile.in +4380 -2125
- data/src/cxx_supportlib/vendor-copy/libuv/aclocal.m4 +425 -221
- data/src/cxx_supportlib/vendor-copy/libuv/ar-lib +30 -10
- data/src/cxx_supportlib/vendor-copy/libuv/compile +31 -14
- data/src/cxx_supportlib/vendor-copy/libuv/config.guess +1084 -690
- data/src/cxx_supportlib/vendor-copy/libuv/config.sub +1844 -1297
- data/src/cxx_supportlib/vendor-copy/libuv/configure +6935 -3664
- data/src/cxx_supportlib/vendor-copy/libuv/configure.ac +43 -19
- data/src/cxx_supportlib/vendor-copy/libuv/depcomp +12 -11
- data/src/cxx_supportlib/vendor-copy/libuv/include/{uv-darwin.h → uv/darwin.h} +3 -3
- data/src/cxx_supportlib/vendor-copy/libuv/include/{uv-errno.h → uv/errno.h} +119 -60
- data/src/cxx_supportlib/vendor-copy/libuv/include/{uv-linux.h → uv/linux.h} +1 -1
- data/src/cxx_supportlib/vendor-copy/libuv/include/uv/os390.h +33 -0
- data/src/cxx_supportlib/vendor-copy/libuv/include/uv/posix.h +31 -0
- data/src/cxx_supportlib/vendor-copy/libuv/include/{uv-threadpool.h → uv/threadpool.h} +1 -1
- data/src/cxx_supportlib/vendor-copy/libuv/include/{tree.h → uv/tree.h} +3 -250
- data/src/cxx_supportlib/vendor-copy/libuv/include/{uv-unix.h → uv/unix.h} +186 -60
- data/src/cxx_supportlib/vendor-copy/libuv/include/{uv-version.h → uv/version.h} +3 -3
- data/src/cxx_supportlib/vendor-copy/libuv/include/uv/win.h +703 -0
- data/src/cxx_supportlib/vendor-copy/libuv/include/uv.h +528 -40
- data/src/cxx_supportlib/vendor-copy/libuv/install-sh +110 -70
- data/src/cxx_supportlib/vendor-copy/libuv/libuv-static.pc.in +12 -0
- data/src/cxx_supportlib/vendor-copy/libuv/libuv.pc.in +4 -2
- data/src/cxx_supportlib/vendor-copy/libuv/ltmain.sh +995 -619
- data/src/cxx_supportlib/vendor-copy/libuv/m4/ax_pthread.m4 +485 -0
- data/src/cxx_supportlib/vendor-copy/libuv/m4/libtool.m4 +438 -289
- data/src/cxx_supportlib/vendor-copy/libuv/m4/libuv-check-flags.m4 +21 -4
- data/src/cxx_supportlib/vendor-copy/libuv/m4/libuv-check-versions.m4 +7 -0
- data/src/cxx_supportlib/vendor-copy/libuv/m4/ltoptions.m4 +69 -39
- data/src/cxx_supportlib/vendor-copy/libuv/m4/ltsugar.m4 +1 -1
- data/src/cxx_supportlib/vendor-copy/libuv/m4/ltversion.m4 +7 -6
- data/src/cxx_supportlib/vendor-copy/libuv/m4/lt~obsolete.m4 +2 -2
- data/src/cxx_supportlib/vendor-copy/libuv/missing +55 -34
- data/src/cxx_supportlib/vendor-copy/libuv/src/fs-poll.c +52 -20
- data/src/cxx_supportlib/vendor-copy/libuv/src/idna.c +560 -0
- data/src/cxx_supportlib/vendor-copy/libuv/src/idna.h +31 -0
- data/src/cxx_supportlib/vendor-copy/libuv/src/inet.c +5 -16
- data/src/cxx_supportlib/vendor-copy/libuv/src/queue.h +68 -86
- data/src/cxx_supportlib/vendor-copy/libuv/src/random.c +123 -0
- data/src/cxx_supportlib/vendor-copy/libuv/src/strscpy.c +38 -0
- data/src/cxx_supportlib/vendor-copy/libuv/src/strscpy.h +39 -0
- data/src/cxx_supportlib/vendor-copy/libuv/src/strtok.c +52 -0
- data/src/cxx_supportlib/vendor-copy/libuv/src/strtok.h +27 -0
- data/src/cxx_supportlib/vendor-copy/libuv/src/thread-common.c +175 -0
- data/src/cxx_supportlib/vendor-copy/libuv/src/threadpool.c +172 -57
- data/src/cxx_supportlib/vendor-copy/libuv/src/{unix/timer.c → timer.c} +57 -29
- data/src/cxx_supportlib/vendor-copy/libuv/src/unix/aix-common.c +89 -0
- data/src/cxx_supportlib/vendor-copy/libuv/src/unix/aix.c +418 -256
- data/src/cxx_supportlib/vendor-copy/libuv/src/unix/async.c +168 -129
- data/src/cxx_supportlib/vendor-copy/libuv/src/unix/bsd-ifaddrs.c +163 -0
- data/src/cxx_supportlib/vendor-copy/libuv/src/unix/bsd-proctitle.c +99 -0
- data/src/cxx_supportlib/vendor-copy/libuv/src/unix/core.c +1312 -378
- data/src/cxx_supportlib/vendor-copy/libuv/src/unix/cygwin.c +93 -0
- data/src/cxx_supportlib/vendor-copy/libuv/src/unix/darwin-proctitle.c +18 -32
- data/src/cxx_supportlib/vendor-copy/libuv/src/unix/darwin-stub.h +97 -0
- data/src/cxx_supportlib/vendor-copy/libuv/src/unix/darwin-syscalls.h +17 -0
- data/src/cxx_supportlib/vendor-copy/libuv/src/unix/darwin.c +41 -139
- data/src/cxx_supportlib/vendor-copy/libuv/src/unix/dl.c +1 -1
- data/src/cxx_supportlib/vendor-copy/libuv/src/unix/freebsd.c +75 -235
- data/src/cxx_supportlib/vendor-copy/libuv/src/unix/fs.c +1308 -299
- data/src/cxx_supportlib/vendor-copy/libuv/src/unix/fsevents.c +150 -148
- data/src/cxx_supportlib/vendor-copy/libuv/src/unix/getaddrinfo.c +58 -8
- data/src/cxx_supportlib/vendor-copy/libuv/src/unix/getnameinfo.c +3 -2
- data/src/cxx_supportlib/vendor-copy/libuv/src/unix/haiku.c +172 -0
- data/src/cxx_supportlib/vendor-copy/libuv/src/unix/hurd.c +172 -0
- data/src/cxx_supportlib/vendor-copy/libuv/src/unix/ibmi.c +542 -0
- data/src/cxx_supportlib/vendor-copy/libuv/src/unix/internal.h +297 -106
- data/src/cxx_supportlib/vendor-copy/libuv/src/unix/kqueue.c +325 -94
- data/src/cxx_supportlib/vendor-copy/libuv/src/unix/linux.c +2708 -0
- data/src/cxx_supportlib/vendor-copy/libuv/src/unix/loop-watcher.c +11 -11
- data/src/cxx_supportlib/vendor-copy/libuv/src/unix/loop.c +105 -24
- data/src/cxx_supportlib/vendor-copy/libuv/src/unix/netbsd.c +51 -157
- data/src/cxx_supportlib/vendor-copy/libuv/src/unix/no-fsevents.c +42 -0
- data/src/cxx_supportlib/vendor-copy/libuv/src/unix/no-proctitle.c +45 -0
- data/src/cxx_supportlib/vendor-copy/libuv/src/unix/openbsd.c +42 -183
- data/src/cxx_supportlib/vendor-copy/libuv/src/unix/os390-proctitle.c +136 -0
- data/src/cxx_supportlib/vendor-copy/libuv/src/unix/os390-syscalls.c +536 -0
- data/src/cxx_supportlib/vendor-copy/libuv/src/unix/os390-syscalls.h +75 -0
- data/src/cxx_supportlib/vendor-copy/libuv/src/unix/os390.c +1070 -0
- data/src/cxx_supportlib/vendor-copy/libuv/src/unix/pipe.c +324 -55
- data/src/cxx_supportlib/vendor-copy/libuv/src/unix/poll.c +58 -11
- data/src/cxx_supportlib/vendor-copy/libuv/src/unix/posix-hrtime.c +36 -0
- data/src/cxx_supportlib/vendor-copy/libuv/src/unix/posix-poll.c +385 -0
- data/src/cxx_supportlib/vendor-copy/libuv/src/unix/process.c +795 -248
- data/src/cxx_supportlib/vendor-copy/libuv/src/unix/procfs-exepath.c +45 -0
- data/src/cxx_supportlib/vendor-copy/libuv/src/unix/proctitle.c +77 -22
- data/src/cxx_supportlib/vendor-copy/libuv/src/unix/qnx.c +142 -0
- data/src/cxx_supportlib/vendor-copy/libuv/src/unix/random-devurandom.c +93 -0
- data/src/cxx_supportlib/vendor-copy/libuv/src/unix/random-getentropy.c +57 -0
- data/src/cxx_supportlib/vendor-copy/libuv/src/unix/random-getrandom.c +86 -0
- data/src/cxx_supportlib/vendor-copy/libuv/src/unix/random-sysctl-linux.c +99 -0
- data/src/cxx_supportlib/vendor-copy/libuv/src/unix/signal.c +147 -39
- data/src/cxx_supportlib/vendor-copy/libuv/src/unix/stream.c +426 -474
- data/src/cxx_supportlib/vendor-copy/libuv/src/unix/sunos.c +240 -98
- data/src/cxx_supportlib/vendor-copy/libuv/src/unix/sysinfo-loadavg.c +36 -0
- data/src/cxx_supportlib/vendor-copy/libuv/src/unix/sysinfo-memory.c +42 -0
- data/src/cxx_supportlib/vendor-copy/libuv/src/unix/tcp.c +402 -91
- data/src/cxx_supportlib/vendor-copy/libuv/src/unix/thread.c +497 -145
- data/src/cxx_supportlib/vendor-copy/libuv/src/unix/tty.c +269 -45
- data/src/cxx_supportlib/vendor-copy/libuv/src/unix/udp.c +695 -165
- data/src/cxx_supportlib/vendor-copy/libuv/src/uv-common.c +463 -61
- data/src/cxx_supportlib/vendor-copy/libuv/src/uv-common.h +248 -44
- data/src/cxx_supportlib/vendor-copy/libuv/src/uv-data-getter-setters.c +119 -0
- data/src/cxx_supportlib/vendor-copy/libuv/tsansupp.txt +2 -0
- data/src/cxx_supportlib/vendor-modified/libev/Changes +109 -0
- data/src/cxx_supportlib/vendor-modified/libev/Makefile.am +2 -1
- data/src/cxx_supportlib/vendor-modified/libev/Makefile.in +47 -33
- data/src/cxx_supportlib/vendor-modified/libev/README +2 -1
- data/src/cxx_supportlib/vendor-modified/libev/aclocal.m4 +1653 -1224
- data/src/cxx_supportlib/vendor-modified/libev/config.guess +376 -316
- data/src/cxx_supportlib/vendor-modified/libev/config.h.in +13 -2
- data/src/cxx_supportlib/vendor-modified/libev/config.sub +156 -154
- data/src/cxx_supportlib/vendor-modified/libev/configure +1431 -940
- data/src/cxx_supportlib/vendor-modified/libev/configure.ac +3 -3
- data/src/cxx_supportlib/vendor-modified/libev/depcomp +5 -5
- data/src/cxx_supportlib/vendor-modified/libev/ev++.h +109 -107
- data/src/cxx_supportlib/vendor-modified/libev/ev.c +807 -319
- data/src/cxx_supportlib/vendor-modified/libev/ev.h +111 -105
- data/src/cxx_supportlib/vendor-modified/libev/ev_epoll.c +42 -29
- data/src/cxx_supportlib/vendor-modified/libev/ev_iouring.c +694 -0
- data/src/cxx_supportlib/vendor-modified/libev/ev_kqueue.c +15 -9
- data/src/cxx_supportlib/vendor-modified/libev/ev_linuxaio.c +620 -0
- data/src/cxx_supportlib/vendor-modified/libev/ev_poll.c +19 -14
- data/src/cxx_supportlib/vendor-modified/libev/ev_port.c +8 -5
- data/src/cxx_supportlib/vendor-modified/libev/ev_select.c +6 -6
- data/src/cxx_supportlib/vendor-modified/libev/ev_vars.h +48 -3
- data/src/cxx_supportlib/vendor-modified/libev/ev_win32.c +2 -2
- data/src/cxx_supportlib/vendor-modified/libev/ev_wrap.h +72 -0
- data/src/cxx_supportlib/vendor-modified/libev/install-sh +23 -13
- data/src/cxx_supportlib/vendor-modified/libev/libev.m4 +6 -1
- data/src/cxx_supportlib/vendor-modified/libev/ltmain.sh +3581 -1993
- data/src/cxx_supportlib/vendor-modified/libev/missing +8 -8
- data/src/cxx_supportlib/vendor-modified/libev/mkinstalldirs +3 -3
- data/src/cxx_supportlib/vendor-modified/modp_b64_strict_aliasing.cpp +1 -1
- data/src/helper-scripts/backtrace-sanitizer.rb +1 -1
- data/src/helper-scripts/crash-watch.rb +1 -1
- data/src/helper-scripts/download_binaries/extconf.rb +1 -1
- data/src/helper-scripts/meteor-loader.rb +1 -1
- data/src/helper-scripts/node-loader.js +1 -1
- data/src/helper-scripts/prespawn +1 -1
- data/src/helper-scripts/rack-loader.rb +1 -1
- data/src/helper-scripts/rack-preloader.rb +1 -1
- data/src/helper-scripts/wsgi-loader.py +1 -1
- data/src/nginx_module/ConfigGeneral/AutoGeneratedDefinitions.c +1 -1
- data/src/nginx_module/ConfigGeneral/AutoGeneratedDefinitions.c.cxxcodebuilder +1 -1
- data/src/nginx_module/ConfigGeneral/AutoGeneratedManifestDefaultsInitialization.c +1 -1
- data/src/nginx_module/ConfigGeneral/AutoGeneratedManifestDefaultsInitialization.c.cxxcodebuilder +1 -1
- data/src/nginx_module/ConfigGeneral/AutoGeneratedSetterFuncs.c +1 -1
- data/src/nginx_module/ConfigGeneral/AutoGeneratedSetterFuncs.c.cxxcodebuilder +1 -1
- data/src/nginx_module/Configuration.c +1 -1
- data/src/nginx_module/Configuration.h +1 -1
- data/src/nginx_module/ContentHandler.c +1 -1
- data/src/nginx_module/ContentHandler.h +1 -1
- data/src/nginx_module/LocationConfig/AutoGeneratedCreateFunction.c +1 -1
- data/src/nginx_module/LocationConfig/AutoGeneratedCreateFunction.c.cxxcodebuilder +1 -1
- data/src/nginx_module/LocationConfig/AutoGeneratedHeaderSerialization.c +1 -1
- data/src/nginx_module/LocationConfig/AutoGeneratedHeaderSerialization.c.cxxcodebuilder +1 -1
- data/src/nginx_module/LocationConfig/AutoGeneratedManifestGeneration.c +1 -1
- data/src/nginx_module/LocationConfig/AutoGeneratedManifestGeneration.c.cxxcodebuilder +1 -1
- data/src/nginx_module/LocationConfig/AutoGeneratedMergeFunction.c +1 -1
- data/src/nginx_module/LocationConfig/AutoGeneratedMergeFunction.c.cxxcodebuilder +1 -1
- data/src/nginx_module/LocationConfig/AutoGeneratedStruct.h +1 -1
- data/src/nginx_module/LocationConfig/AutoGeneratedStruct.h.cxxcodebuilder +1 -1
- data/src/nginx_module/MainConfig/AutoGeneratedCreateFunction.c +1 -1
- data/src/nginx_module/MainConfig/AutoGeneratedCreateFunction.c.cxxcodebuilder +1 -1
- data/src/nginx_module/MainConfig/AutoGeneratedManifestGeneration.c +1 -1
- data/src/nginx_module/MainConfig/AutoGeneratedManifestGeneration.c.cxxcodebuilder +1 -1
- data/src/nginx_module/MainConfig/AutoGeneratedStruct.h +1 -1
- data/src/nginx_module/MainConfig/AutoGeneratedStruct.h.cxxcodebuilder +1 -1
- data/src/nginx_module/StaticContentHandler.c +1 -1
- data/src/nginx_module/StaticContentHandler.h +1 -1
- data/src/nginx_module/ngx_http_passenger_module.c +1 -1
- data/src/nginx_module/ngx_http_passenger_module.h +1 -1
- data/src/nodejs_supportlib/phusion_passenger/line_reader.js +1 -1
- data/src/ruby_native_extension/extconf.rb +1 -1
- data/src/ruby_native_extension/passenger_native_support.c +1 -1
- data/src/ruby_supportlib/phusion_passenger/abstract_installer.rb +1 -1
- data/src/ruby_supportlib/phusion_passenger/admin_tools/instance.rb +1 -1
- data/src/ruby_supportlib/phusion_passenger/admin_tools/instance_registry.rb +1 -1
- data/src/ruby_supportlib/phusion_passenger/admin_tools/memory_stats.rb +2 -12
- data/src/ruby_supportlib/phusion_passenger/admin_tools.rb +1 -1
- data/src/ruby_supportlib/phusion_passenger/apache2/config_options.rb +1 -1
- data/src/ruby_supportlib/phusion_passenger/apache2/config_utils.rb +1 -1
- data/src/ruby_supportlib/phusion_passenger/common_library.rb +8 -10
- data/src/ruby_supportlib/phusion_passenger/config/about_command.rb +1 -1
- data/src/ruby_supportlib/phusion_passenger/config/agent_compiler.rb +1 -1
- data/src/ruby_supportlib/phusion_passenger/config/api_call_command.rb +1 -1
- data/src/ruby_supportlib/phusion_passenger/config/build_native_support_command.rb +1 -1
- data/src/ruby_supportlib/phusion_passenger/config/command.rb +1 -1
- data/src/ruby_supportlib/phusion_passenger/config/compile_agent_command.rb +1 -1
- data/src/ruby_supportlib/phusion_passenger/config/compile_nginx_engine_command.rb +1 -1
- data/src/ruby_supportlib/phusion_passenger/config/detach_process_command.rb +1 -1
- data/src/ruby_supportlib/phusion_passenger/config/download_agent_command.rb +1 -1
- data/src/ruby_supportlib/phusion_passenger/config/download_nginx_engine_command.rb +1 -1
- data/src/ruby_supportlib/phusion_passenger/config/install_agent_command.rb +1 -1
- data/src/ruby_supportlib/phusion_passenger/config/install_standalone_runtime_command.rb +1 -1
- data/src/ruby_supportlib/phusion_passenger/config/installation_utils.rb +1 -1
- data/src/ruby_supportlib/phusion_passenger/config/list_instances_command.rb +1 -1
- data/src/ruby_supportlib/phusion_passenger/config/main.rb +1 -1
- data/src/ruby_supportlib/phusion_passenger/config/nginx_engine_compiler.rb +3 -2
- data/src/ruby_supportlib/phusion_passenger/config/reopen_logs_command.rb +6 -1
- data/src/ruby_supportlib/phusion_passenger/config/restart_app_command.rb +1 -1
- data/src/ruby_supportlib/phusion_passenger/config/system_metrics_command.rb +1 -1
- data/src/ruby_supportlib/phusion_passenger/config/system_properties_command.rb +1 -1
- data/src/ruby_supportlib/phusion_passenger/config/utils.rb +1 -1
- data/src/ruby_supportlib/phusion_passenger/config/validate_install_command.rb +1 -1
- data/src/ruby_supportlib/phusion_passenger/console_text_template.rb +1 -1
- data/src/ruby_supportlib/phusion_passenger/constants.rb +1 -1
- data/src/ruby_supportlib/phusion_passenger/debug_logging.rb +1 -1
- data/src/ruby_supportlib/phusion_passenger/loader_shared_helpers.rb +1 -1
- data/src/ruby_supportlib/phusion_passenger/message_channel.rb +1 -1
- data/src/ruby_supportlib/phusion_passenger/message_client.rb +1 -1
- data/src/ruby_supportlib/phusion_passenger/native_support.rb +1 -1
- data/src/ruby_supportlib/phusion_passenger/nginx/config_options.rb +1 -1
- data/src/ruby_supportlib/phusion_passenger/packaging.rb +4 -3
- data/src/ruby_supportlib/phusion_passenger/platform_info/apache.rb +1 -1
- data/src/ruby_supportlib/phusion_passenger/platform_info/apache_detector.rb +1 -1
- data/src/ruby_supportlib/phusion_passenger/platform_info/binary_compatibility.rb +1 -1
- data/src/ruby_supportlib/phusion_passenger/platform_info/compiler.rb +195 -11
- data/src/ruby_supportlib/phusion_passenger/platform_info/crypto.rb +1 -1
- data/src/ruby_supportlib/phusion_passenger/platform_info/curl.rb +1 -1
- data/src/ruby_supportlib/phusion_passenger/platform_info/cxx_portability.rb +1 -1
- data/src/ruby_supportlib/phusion_passenger/platform_info/linux.rb +1 -1
- data/src/ruby_supportlib/phusion_passenger/platform_info/networking.rb +1 -1
- data/src/ruby_supportlib/phusion_passenger/platform_info/openssl.rb +1 -1
- data/src/ruby_supportlib/phusion_passenger/platform_info/operating_system.rb +1 -1
- data/src/ruby_supportlib/phusion_passenger/platform_info/pcre.rb +1 -1
- data/src/ruby_supportlib/phusion_passenger/platform_info/ruby.rb +1 -1
- data/src/ruby_supportlib/phusion_passenger/platform_info/zlib.rb +1 -1
- data/src/ruby_supportlib/phusion_passenger/platform_info.rb +1 -1
- data/src/ruby_supportlib/phusion_passenger/plugin.rb +1 -1
- data/src/ruby_supportlib/phusion_passenger/preloader_shared_helpers.rb +1 -1
- data/src/ruby_supportlib/phusion_passenger/public_api.rb +1 -1
- data/src/ruby_supportlib/phusion_passenger/rack/handler.rb +1 -1
- data/src/ruby_supportlib/phusion_passenger/rack/out_of_band_gc.rb +1 -1
- data/src/ruby_supportlib/phusion_passenger/rack/thread_handler_extension.rb +1 -1
- data/src/ruby_supportlib/phusion_passenger/rack_handler.rb +1 -1
- data/src/ruby_supportlib/phusion_passenger/request_handler/thread_handler.rb +2 -7
- data/src/ruby_supportlib/phusion_passenger/request_handler.rb +1 -1
- data/src/ruby_supportlib/phusion_passenger/ruby_core_enhancements.rb +1 -1
- data/src/ruby_supportlib/phusion_passenger/ruby_core_io_enhancements.rb +1 -1
- data/src/ruby_supportlib/phusion_passenger/simple_benchmarking.rb +1 -1
- data/src/ruby_supportlib/phusion_passenger/standalone/app_finder.rb +1 -1
- data/src/ruby_supportlib/phusion_passenger/standalone/command.rb +1 -1
- data/src/ruby_supportlib/phusion_passenger/standalone/config_options_list.rb +1 -1
- data/src/ruby_supportlib/phusion_passenger/standalone/config_utils.rb +1 -1
- data/src/ruby_supportlib/phusion_passenger/standalone/control_utils.rb +1 -1
- data/src/ruby_supportlib/phusion_passenger/standalone/main.rb +1 -1
- data/src/ruby_supportlib/phusion_passenger/standalone/start_command/builtin_engine.rb +2 -2
- data/src/ruby_supportlib/phusion_passenger/standalone/start_command/nginx_engine.rb +4 -8
- data/src/ruby_supportlib/phusion_passenger/standalone/start_command.rb +1 -1
- data/src/ruby_supportlib/phusion_passenger/standalone/status_command.rb +1 -1
- data/src/ruby_supportlib/phusion_passenger/standalone/stop_command.rb +1 -1
- data/src/ruby_supportlib/phusion_passenger/standalone/version_command.rb +1 -1
- data/src/ruby_supportlib/phusion_passenger/utils/ansi_colors.rb +1 -1
- data/src/ruby_supportlib/phusion_passenger/utils/download.rb +1 -1
- data/src/ruby_supportlib/phusion_passenger/utils/file_system_watcher.rb +1 -1
- data/src/ruby_supportlib/phusion_passenger/utils/hosts_file_parser.rb +1 -1
- data/src/ruby_supportlib/phusion_passenger/utils/lock.rb +1 -1
- data/src/ruby_supportlib/phusion_passenger/utils/native_support_utils.rb +1 -1
- data/src/ruby_supportlib/phusion_passenger/utils/progress_bar.rb +1 -1
- data/src/ruby_supportlib/phusion_passenger/utils/strscan.rb +1 -1
- data/src/ruby_supportlib/phusion_passenger/utils/terminal_choice_menu.rb +1 -1
- data/src/ruby_supportlib/phusion_passenger/utils/unseekable_socket.rb +3 -13
- data/src/ruby_supportlib/phusion_passenger/utils.rb +1 -1
- data/src/ruby_supportlib/phusion_passenger/vendor/crash_watch/app.rb +1 -1
- data/src/ruby_supportlib/phusion_passenger/vendor/crash_watch/base.rb +1 -1
- data/src/ruby_supportlib/phusion_passenger/vendor/crash_watch/gdb_controller.rb +1 -1
- data/src/ruby_supportlib/phusion_passenger/vendor/crash_watch/lldb_controller.rb +1 -1
- data/src/ruby_supportlib/phusion_passenger/vendor/crash_watch/utils.rb +1 -1
- data/src/ruby_supportlib/phusion_passenger/vendor/crash_watch/version.rb +1 -1
- data/src/ruby_supportlib/phusion_passenger/vendor/daemon_controller/lock_file.rb +8 -6
- data/src/ruby_supportlib/phusion_passenger/vendor/daemon_controller/spawn.rb +4 -3
- data/src/ruby_supportlib/phusion_passenger/vendor/daemon_controller/version.rb +6 -4
- data/src/ruby_supportlib/phusion_passenger/vendor/daemon_controller.rb +395 -579
- data/src/ruby_supportlib/phusion_passenger.rb +8 -8
- data/src/schema_printer/SchemaPrinterMain.cpp +1 -1
- data/src/schema_printer/SchemaPrinterMain.cpp.cxxcodebuilder +1 -1
- metadata +69 -32
- data/doc/DeveloperQuickstart.md +0 -70
- data/src/README.md +0 -7
- data/src/cxx_supportlib/vendor-copy/libuv/README.md +0 -245
- data/src/cxx_supportlib/vendor-copy/libuv/checksparse.sh +0 -234
- data/src/cxx_supportlib/vendor-copy/libuv/common.gypi +0 -210
- data/src/cxx_supportlib/vendor-copy/libuv/gyp_uv.py +0 -93
- data/src/cxx_supportlib/vendor-copy/libuv/include/android-ifaddrs.h +0 -54
- data/src/cxx_supportlib/vendor-copy/libuv/include/pthread-fixes.h +0 -72
- data/src/cxx_supportlib/vendor-copy/libuv/src/unix/android-ifaddrs.c +0 -703
- data/src/cxx_supportlib/vendor-copy/libuv/src/unix/atomic-ops.h +0 -77
- data/src/cxx_supportlib/vendor-copy/libuv/src/unix/linux-core.c +0 -899
- data/src/cxx_supportlib/vendor-copy/libuv/src/unix/linux-inotify.c +0 -285
- data/src/cxx_supportlib/vendor-copy/libuv/src/unix/linux-syscalls.c +0 -471
- data/src/cxx_supportlib/vendor-copy/libuv/src/unix/linux-syscalls.h +0 -158
- data/src/cxx_supportlib/vendor-copy/libuv/src/unix/pthread-fixes.c +0 -104
- data/src/cxx_supportlib/vendor-copy/libuv/src/unix/spinlock.h +0 -53
- data/src/cxx_supportlib/vendor-copy/libuv/uv.gyp +0 -508
- /data/src/cxx_supportlib/vendor-copy/libuv/include/{uv-aix.h → uv/aix.h} +0 -0
- /data/src/cxx_supportlib/vendor-copy/libuv/include/{uv-bsd.h → uv/bsd.h} +0 -0
- /data/src/cxx_supportlib/vendor-copy/libuv/include/{uv-sunos.h → uv/sunos.h} +0 -0
|
@@ -22,10 +22,11 @@
|
|
|
22
22
|
#include "uv.h"
|
|
23
23
|
#include "uv-common.h"
|
|
24
24
|
|
|
25
|
-
#include <stdio.h>
|
|
26
25
|
#include <assert.h>
|
|
26
|
+
#include <errno.h>
|
|
27
27
|
#include <stdarg.h>
|
|
28
28
|
#include <stddef.h> /* NULL */
|
|
29
|
+
#include <stdio.h>
|
|
29
30
|
#include <stdlib.h> /* malloc */
|
|
30
31
|
#include <string.h> /* memset */
|
|
31
32
|
|
|
@@ -33,6 +34,7 @@
|
|
|
33
34
|
# include <malloc.h> /* malloc */
|
|
34
35
|
#else
|
|
35
36
|
# include <net/if.h> /* if_nametoindex */
|
|
37
|
+
# include <sys/un.h> /* AF_UNIX, sockaddr_un */
|
|
36
38
|
#endif
|
|
37
39
|
|
|
38
40
|
|
|
@@ -71,11 +73,20 @@ char* uv__strndup(const char* s, size_t n) {
|
|
|
71
73
|
}
|
|
72
74
|
|
|
73
75
|
void* uv__malloc(size_t size) {
|
|
74
|
-
|
|
76
|
+
if (size > 0)
|
|
77
|
+
return uv__allocator.local_malloc(size);
|
|
78
|
+
return NULL;
|
|
75
79
|
}
|
|
76
80
|
|
|
77
81
|
void uv__free(void* ptr) {
|
|
82
|
+
int saved_errno;
|
|
83
|
+
|
|
84
|
+
/* Libuv expects that free() does not clobber errno. The system allocator
|
|
85
|
+
* honors that assumption but custom allocators may not be so careful.
|
|
86
|
+
*/
|
|
87
|
+
saved_errno = errno;
|
|
78
88
|
uv__allocator.local_free(ptr);
|
|
89
|
+
errno = saved_errno;
|
|
79
90
|
}
|
|
80
91
|
|
|
81
92
|
void* uv__calloc(size_t count, size_t size) {
|
|
@@ -83,7 +94,21 @@ void* uv__calloc(size_t count, size_t size) {
|
|
|
83
94
|
}
|
|
84
95
|
|
|
85
96
|
void* uv__realloc(void* ptr, size_t size) {
|
|
86
|
-
|
|
97
|
+
if (size > 0)
|
|
98
|
+
return uv__allocator.local_realloc(ptr, size);
|
|
99
|
+
uv__free(ptr);
|
|
100
|
+
return NULL;
|
|
101
|
+
}
|
|
102
|
+
|
|
103
|
+
void* uv__reallocf(void* ptr, size_t size) {
|
|
104
|
+
void* newptr;
|
|
105
|
+
|
|
106
|
+
newptr = uv__realloc(ptr, size);
|
|
107
|
+
if (newptr == NULL)
|
|
108
|
+
if (size > 0)
|
|
109
|
+
uv__free(ptr);
|
|
110
|
+
|
|
111
|
+
return newptr;
|
|
87
112
|
}
|
|
88
113
|
|
|
89
114
|
int uv_replace_allocator(uv_malloc_func malloc_func,
|
|
@@ -103,6 +128,39 @@ int uv_replace_allocator(uv_malloc_func malloc_func,
|
|
|
103
128
|
return 0;
|
|
104
129
|
}
|
|
105
130
|
|
|
131
|
+
|
|
132
|
+
void uv_os_free_passwd(uv_passwd_t* pwd) {
|
|
133
|
+
if (pwd == NULL)
|
|
134
|
+
return;
|
|
135
|
+
|
|
136
|
+
/* On unix, the memory for name, shell, and homedir are allocated in a single
|
|
137
|
+
* uv__malloc() call. The base of the pointer is stored in pwd->username, so
|
|
138
|
+
* that is the field that needs to be freed.
|
|
139
|
+
*/
|
|
140
|
+
uv__free(pwd->username);
|
|
141
|
+
#ifdef _WIN32
|
|
142
|
+
uv__free(pwd->homedir);
|
|
143
|
+
#endif
|
|
144
|
+
pwd->username = NULL;
|
|
145
|
+
pwd->shell = NULL;
|
|
146
|
+
pwd->homedir = NULL;
|
|
147
|
+
}
|
|
148
|
+
|
|
149
|
+
|
|
150
|
+
void uv_os_free_group(uv_group_t *grp) {
|
|
151
|
+
if (grp == NULL)
|
|
152
|
+
return;
|
|
153
|
+
|
|
154
|
+
/* The memory for is allocated in a single uv__malloc() call. The base of the
|
|
155
|
+
* pointer is stored in grp->members, so that is the only field that needs to
|
|
156
|
+
* be freed.
|
|
157
|
+
*/
|
|
158
|
+
uv__free(grp->members);
|
|
159
|
+
grp->members = NULL;
|
|
160
|
+
grp->groupname = NULL;
|
|
161
|
+
}
|
|
162
|
+
|
|
163
|
+
|
|
106
164
|
#define XX(uc, lc) case UV_##uc: return sizeof(uv_##lc##_t);
|
|
107
165
|
|
|
108
166
|
size_t uv_handle_size(uv_handle_type type) {
|
|
@@ -147,6 +205,18 @@ static const char* uv__unknown_err_code(int err) {
|
|
|
147
205
|
return copy != NULL ? copy : "Unknown system error";
|
|
148
206
|
}
|
|
149
207
|
|
|
208
|
+
#define UV_ERR_NAME_GEN_R(name, _) \
|
|
209
|
+
case UV_## name: \
|
|
210
|
+
uv__strscpy(buf, #name, buflen); break;
|
|
211
|
+
char* uv_err_name_r(int err, char* buf, size_t buflen) {
|
|
212
|
+
switch (err) {
|
|
213
|
+
UV_ERRNO_MAP(UV_ERR_NAME_GEN_R)
|
|
214
|
+
default: snprintf(buf, buflen, "Unknown system error %d", err);
|
|
215
|
+
}
|
|
216
|
+
return buf;
|
|
217
|
+
}
|
|
218
|
+
#undef UV_ERR_NAME_GEN_R
|
|
219
|
+
|
|
150
220
|
|
|
151
221
|
#define UV_ERR_NAME_GEN(name, _) case UV_ ## name: return #name;
|
|
152
222
|
const char* uv_err_name(int err) {
|
|
@@ -158,6 +228,19 @@ const char* uv_err_name(int err) {
|
|
|
158
228
|
#undef UV_ERR_NAME_GEN
|
|
159
229
|
|
|
160
230
|
|
|
231
|
+
#define UV_STRERROR_GEN_R(name, msg) \
|
|
232
|
+
case UV_ ## name: \
|
|
233
|
+
snprintf(buf, buflen, "%s", msg); break;
|
|
234
|
+
char* uv_strerror_r(int err, char* buf, size_t buflen) {
|
|
235
|
+
switch (err) {
|
|
236
|
+
UV_ERRNO_MAP(UV_STRERROR_GEN_R)
|
|
237
|
+
default: snprintf(buf, buflen, "Unknown system error %d", err);
|
|
238
|
+
}
|
|
239
|
+
return buf;
|
|
240
|
+
}
|
|
241
|
+
#undef UV_STRERROR_GEN_R
|
|
242
|
+
|
|
243
|
+
|
|
161
244
|
#define UV_STRERROR_GEN(name, msg) case UV_ ## name: return msg;
|
|
162
245
|
const char* uv_strerror(int err) {
|
|
163
246
|
switch (err) {
|
|
@@ -172,6 +255,9 @@ int uv_ip4_addr(const char* ip, int port, struct sockaddr_in* addr) {
|
|
|
172
255
|
memset(addr, 0, sizeof(*addr));
|
|
173
256
|
addr->sin_family = AF_INET;
|
|
174
257
|
addr->sin_port = htons(port);
|
|
258
|
+
#ifdef SIN6_LEN
|
|
259
|
+
addr->sin_len = sizeof(*addr);
|
|
260
|
+
#endif
|
|
175
261
|
return uv_inet_pton(AF_INET, ip, &(addr->sin_addr.s_addr));
|
|
176
262
|
}
|
|
177
263
|
|
|
@@ -184,6 +270,9 @@ int uv_ip6_addr(const char* ip, int port, struct sockaddr_in6* addr) {
|
|
|
184
270
|
memset(addr, 0, sizeof(*addr));
|
|
185
271
|
addr->sin6_family = AF_INET6;
|
|
186
272
|
addr->sin6_port = htons(port);
|
|
273
|
+
#ifdef SIN6_LEN
|
|
274
|
+
addr->sin6_len = sizeof(*addr);
|
|
275
|
+
#endif
|
|
187
276
|
|
|
188
277
|
zone_index = strchr(ip, '%');
|
|
189
278
|
if (zone_index != NULL) {
|
|
@@ -218,6 +307,20 @@ int uv_ip6_name(const struct sockaddr_in6* src, char* dst, size_t size) {
|
|
|
218
307
|
}
|
|
219
308
|
|
|
220
309
|
|
|
310
|
+
int uv_ip_name(const struct sockaddr *src, char *dst, size_t size) {
|
|
311
|
+
switch (src->sa_family) {
|
|
312
|
+
case AF_INET:
|
|
313
|
+
return uv_inet_ntop(AF_INET, &((struct sockaddr_in *)src)->sin_addr,
|
|
314
|
+
dst, size);
|
|
315
|
+
case AF_INET6:
|
|
316
|
+
return uv_inet_ntop(AF_INET6, &((struct sockaddr_in6 *)src)->sin6_addr,
|
|
317
|
+
dst, size);
|
|
318
|
+
default:
|
|
319
|
+
return UV_EAFNOSUPPORT;
|
|
320
|
+
}
|
|
321
|
+
}
|
|
322
|
+
|
|
323
|
+
|
|
221
324
|
int uv_tcp_bind(uv_tcp_t* handle,
|
|
222
325
|
const struct sockaddr* addr,
|
|
223
326
|
unsigned int flags) {
|
|
@@ -225,7 +328,9 @@ int uv_tcp_bind(uv_tcp_t* handle,
|
|
|
225
328
|
|
|
226
329
|
if (handle->type != UV_TCP)
|
|
227
330
|
return UV_EINVAL;
|
|
228
|
-
|
|
331
|
+
if (uv__is_closing(handle)) {
|
|
332
|
+
return UV_EINVAL;
|
|
333
|
+
}
|
|
229
334
|
if (addr->sa_family == AF_INET)
|
|
230
335
|
addrlen = sizeof(struct sockaddr_in);
|
|
231
336
|
else if (addr->sa_family == AF_INET6)
|
|
@@ -237,6 +342,36 @@ int uv_tcp_bind(uv_tcp_t* handle,
|
|
|
237
342
|
}
|
|
238
343
|
|
|
239
344
|
|
|
345
|
+
int uv_udp_init_ex(uv_loop_t* loop, uv_udp_t* handle, unsigned flags) {
|
|
346
|
+
unsigned extra_flags;
|
|
347
|
+
int domain;
|
|
348
|
+
int rc;
|
|
349
|
+
|
|
350
|
+
/* Use the lower 8 bits for the domain. */
|
|
351
|
+
domain = flags & 0xFF;
|
|
352
|
+
if (domain != AF_INET && domain != AF_INET6 && domain != AF_UNSPEC)
|
|
353
|
+
return UV_EINVAL;
|
|
354
|
+
|
|
355
|
+
/* Use the higher bits for extra flags. */
|
|
356
|
+
extra_flags = flags & ~0xFF;
|
|
357
|
+
if (extra_flags & ~UV_UDP_RECVMMSG)
|
|
358
|
+
return UV_EINVAL;
|
|
359
|
+
|
|
360
|
+
rc = uv__udp_init_ex(loop, handle, flags, domain);
|
|
361
|
+
|
|
362
|
+
if (rc == 0)
|
|
363
|
+
if (extra_flags & UV_UDP_RECVMMSG)
|
|
364
|
+
handle->flags |= UV_HANDLE_UDP_RECVMMSG;
|
|
365
|
+
|
|
366
|
+
return rc;
|
|
367
|
+
}
|
|
368
|
+
|
|
369
|
+
|
|
370
|
+
int uv_udp_init(uv_loop_t* loop, uv_udp_t* handle) {
|
|
371
|
+
return uv_udp_init_ex(loop, handle, AF_UNSPEC);
|
|
372
|
+
}
|
|
373
|
+
|
|
374
|
+
|
|
240
375
|
int uv_udp_bind(uv_udp_t* handle,
|
|
241
376
|
const struct sockaddr* addr,
|
|
242
377
|
unsigned int flags) {
|
|
@@ -276,17 +411,20 @@ int uv_tcp_connect(uv_connect_t* req,
|
|
|
276
411
|
}
|
|
277
412
|
|
|
278
413
|
|
|
279
|
-
int
|
|
280
|
-
uv_udp_t* handle,
|
|
281
|
-
const uv_buf_t bufs[],
|
|
282
|
-
unsigned int nbufs,
|
|
283
|
-
const struct sockaddr* addr,
|
|
284
|
-
uv_udp_send_cb send_cb) {
|
|
414
|
+
int uv_udp_connect(uv_udp_t* handle, const struct sockaddr* addr) {
|
|
285
415
|
unsigned int addrlen;
|
|
286
416
|
|
|
287
417
|
if (handle->type != UV_UDP)
|
|
288
418
|
return UV_EINVAL;
|
|
289
419
|
|
|
420
|
+
/* Disconnect the handle */
|
|
421
|
+
if (addr == NULL) {
|
|
422
|
+
if (!(handle->flags & UV_HANDLE_UDP_CONNECTED))
|
|
423
|
+
return UV_ENOTCONN;
|
|
424
|
+
|
|
425
|
+
return uv__udp_disconnect(handle);
|
|
426
|
+
}
|
|
427
|
+
|
|
290
428
|
if (addr->sa_family == AF_INET)
|
|
291
429
|
addrlen = sizeof(struct sockaddr_in);
|
|
292
430
|
else if (addr->sa_family == AF_INET6)
|
|
@@ -294,6 +432,70 @@ int uv_udp_send(uv_udp_send_t* req,
|
|
|
294
432
|
else
|
|
295
433
|
return UV_EINVAL;
|
|
296
434
|
|
|
435
|
+
if (handle->flags & UV_HANDLE_UDP_CONNECTED)
|
|
436
|
+
return UV_EISCONN;
|
|
437
|
+
|
|
438
|
+
return uv__udp_connect(handle, addr, addrlen);
|
|
439
|
+
}
|
|
440
|
+
|
|
441
|
+
|
|
442
|
+
int uv__udp_is_connected(uv_udp_t* handle) {
|
|
443
|
+
struct sockaddr_storage addr;
|
|
444
|
+
int addrlen;
|
|
445
|
+
if (handle->type != UV_UDP)
|
|
446
|
+
return 0;
|
|
447
|
+
|
|
448
|
+
addrlen = sizeof(addr);
|
|
449
|
+
if (uv_udp_getpeername(handle, (struct sockaddr*) &addr, &addrlen) != 0)
|
|
450
|
+
return 0;
|
|
451
|
+
|
|
452
|
+
return addrlen > 0;
|
|
453
|
+
}
|
|
454
|
+
|
|
455
|
+
|
|
456
|
+
int uv__udp_check_before_send(uv_udp_t* handle, const struct sockaddr* addr) {
|
|
457
|
+
unsigned int addrlen;
|
|
458
|
+
|
|
459
|
+
if (handle->type != UV_UDP)
|
|
460
|
+
return UV_EINVAL;
|
|
461
|
+
|
|
462
|
+
if (addr != NULL && (handle->flags & UV_HANDLE_UDP_CONNECTED))
|
|
463
|
+
return UV_EISCONN;
|
|
464
|
+
|
|
465
|
+
if (addr == NULL && !(handle->flags & UV_HANDLE_UDP_CONNECTED))
|
|
466
|
+
return UV_EDESTADDRREQ;
|
|
467
|
+
|
|
468
|
+
if (addr != NULL) {
|
|
469
|
+
if (addr->sa_family == AF_INET)
|
|
470
|
+
addrlen = sizeof(struct sockaddr_in);
|
|
471
|
+
else if (addr->sa_family == AF_INET6)
|
|
472
|
+
addrlen = sizeof(struct sockaddr_in6);
|
|
473
|
+
#if defined(AF_UNIX) && !defined(_WIN32)
|
|
474
|
+
else if (addr->sa_family == AF_UNIX)
|
|
475
|
+
addrlen = sizeof(struct sockaddr_un);
|
|
476
|
+
#endif
|
|
477
|
+
else
|
|
478
|
+
return UV_EINVAL;
|
|
479
|
+
} else {
|
|
480
|
+
addrlen = 0;
|
|
481
|
+
}
|
|
482
|
+
|
|
483
|
+
return addrlen;
|
|
484
|
+
}
|
|
485
|
+
|
|
486
|
+
|
|
487
|
+
int uv_udp_send(uv_udp_send_t* req,
|
|
488
|
+
uv_udp_t* handle,
|
|
489
|
+
const uv_buf_t bufs[],
|
|
490
|
+
unsigned int nbufs,
|
|
491
|
+
const struct sockaddr* addr,
|
|
492
|
+
uv_udp_send_cb send_cb) {
|
|
493
|
+
int addrlen;
|
|
494
|
+
|
|
495
|
+
addrlen = uv__udp_check_before_send(handle, addr);
|
|
496
|
+
if (addrlen < 0)
|
|
497
|
+
return addrlen;
|
|
498
|
+
|
|
297
499
|
return uv__udp_send(req, handle, bufs, nbufs, addr, addrlen, send_cb);
|
|
298
500
|
}
|
|
299
501
|
|
|
@@ -302,17 +504,11 @@ int uv_udp_try_send(uv_udp_t* handle,
|
|
|
302
504
|
const uv_buf_t bufs[],
|
|
303
505
|
unsigned int nbufs,
|
|
304
506
|
const struct sockaddr* addr) {
|
|
305
|
-
|
|
507
|
+
int addrlen;
|
|
306
508
|
|
|
307
|
-
|
|
308
|
-
|
|
309
|
-
|
|
310
|
-
if (addr->sa_family == AF_INET)
|
|
311
|
-
addrlen = sizeof(struct sockaddr_in);
|
|
312
|
-
else if (addr->sa_family == AF_INET6)
|
|
313
|
-
addrlen = sizeof(struct sockaddr_in6);
|
|
314
|
-
else
|
|
315
|
-
return UV_EINVAL;
|
|
509
|
+
addrlen = uv__udp_check_before_send(handle, addr);
|
|
510
|
+
if (addrlen < 0)
|
|
511
|
+
return addrlen;
|
|
316
512
|
|
|
317
513
|
return uv__udp_try_send(handle, bufs, nbufs, addr, addrlen);
|
|
318
514
|
}
|
|
@@ -337,19 +533,19 @@ int uv_udp_recv_stop(uv_udp_t* handle) {
|
|
|
337
533
|
|
|
338
534
|
|
|
339
535
|
void uv_walk(uv_loop_t* loop, uv_walk_cb walk_cb, void* arg) {
|
|
340
|
-
|
|
341
|
-
|
|
536
|
+
struct uv__queue queue;
|
|
537
|
+
struct uv__queue* q;
|
|
342
538
|
uv_handle_t* h;
|
|
343
539
|
|
|
344
|
-
|
|
345
|
-
while (!
|
|
346
|
-
q =
|
|
347
|
-
h =
|
|
540
|
+
uv__queue_move(&loop->handle_queue, &queue);
|
|
541
|
+
while (!uv__queue_empty(&queue)) {
|
|
542
|
+
q = uv__queue_head(&queue);
|
|
543
|
+
h = uv__queue_data(q, uv_handle_t, handle_queue);
|
|
348
544
|
|
|
349
|
-
|
|
350
|
-
|
|
545
|
+
uv__queue_remove(q);
|
|
546
|
+
uv__queue_insert_tail(&loop->handle_queue, q);
|
|
351
547
|
|
|
352
|
-
if (h->flags &
|
|
548
|
+
if (h->flags & UV_HANDLE_INTERNAL) continue;
|
|
353
549
|
walk_cb(h, arg);
|
|
354
550
|
}
|
|
355
551
|
}
|
|
@@ -357,14 +553,17 @@ void uv_walk(uv_loop_t* loop, uv_walk_cb walk_cb, void* arg) {
|
|
|
357
553
|
|
|
358
554
|
static void uv__print_handles(uv_loop_t* loop, int only_active, FILE* stream) {
|
|
359
555
|
const char* type;
|
|
360
|
-
|
|
556
|
+
struct uv__queue* q;
|
|
361
557
|
uv_handle_t* h;
|
|
362
558
|
|
|
363
559
|
if (loop == NULL)
|
|
364
560
|
loop = uv_default_loop();
|
|
365
561
|
|
|
366
|
-
|
|
367
|
-
|
|
562
|
+
if (stream == NULL)
|
|
563
|
+
stream = stderr;
|
|
564
|
+
|
|
565
|
+
uv__queue_foreach(q, &loop->handle_queue) {
|
|
566
|
+
h = uv__queue_data(q, uv_handle_t, handle_queue);
|
|
368
567
|
|
|
369
568
|
if (only_active && !uv__is_active(h))
|
|
370
569
|
continue;
|
|
@@ -378,9 +577,9 @@ static void uv__print_handles(uv_loop_t* loop, int only_active, FILE* stream) {
|
|
|
378
577
|
|
|
379
578
|
fprintf(stream,
|
|
380
579
|
"[%c%c%c] %-8s %p\n",
|
|
381
|
-
"R-"[!(h->flags &
|
|
382
|
-
"A-"[!(h->flags &
|
|
383
|
-
"I-"[!(h->flags &
|
|
580
|
+
"R-"[!(h->flags & UV_HANDLE_REF)],
|
|
581
|
+
"A-"[!(h->flags & UV_HANDLE_ACTIVE)],
|
|
582
|
+
"I-"[!(h->flags & UV_HANDLE_INTERNAL)],
|
|
384
583
|
type,
|
|
385
584
|
(void*)h);
|
|
386
585
|
}
|
|
@@ -451,13 +650,14 @@ int uv_fs_event_getpath(uv_fs_event_t* handle, char* buffer, size_t* size) {
|
|
|
451
650
|
}
|
|
452
651
|
|
|
453
652
|
required_len = strlen(handle->path);
|
|
454
|
-
if (required_len
|
|
455
|
-
*size = required_len;
|
|
653
|
+
if (required_len >= *size) {
|
|
654
|
+
*size = required_len + 1;
|
|
456
655
|
return UV_ENOBUFS;
|
|
457
656
|
}
|
|
458
657
|
|
|
459
658
|
memcpy(buffer, handle->path, required_len);
|
|
460
659
|
*size = required_len;
|
|
660
|
+
buffer[required_len] = '\0';
|
|
461
661
|
|
|
462
662
|
return 0;
|
|
463
663
|
}
|
|
@@ -474,34 +674,65 @@ static unsigned int* uv__get_nbufs(uv_fs_t* req) {
|
|
|
474
674
|
#endif
|
|
475
675
|
}
|
|
476
676
|
|
|
677
|
+
/* uv_fs_scandir() uses the system allocator to allocate memory on non-Windows
|
|
678
|
+
* systems. So, the memory should be released using free(). On Windows,
|
|
679
|
+
* uv__malloc() is used, so use uv__free() to free memory.
|
|
680
|
+
*/
|
|
681
|
+
#ifdef _WIN32
|
|
682
|
+
# define uv__fs_scandir_free uv__free
|
|
683
|
+
#else
|
|
684
|
+
# define uv__fs_scandir_free free
|
|
685
|
+
#endif
|
|
686
|
+
|
|
477
687
|
void uv__fs_scandir_cleanup(uv_fs_t* req) {
|
|
478
688
|
uv__dirent_t** dents;
|
|
689
|
+
unsigned int* nbufs;
|
|
690
|
+
unsigned int i;
|
|
691
|
+
unsigned int n;
|
|
479
692
|
|
|
480
|
-
|
|
693
|
+
if (req->result >= 0) {
|
|
694
|
+
dents = req->ptr;
|
|
695
|
+
nbufs = uv__get_nbufs(req);
|
|
481
696
|
|
|
482
|
-
|
|
483
|
-
|
|
484
|
-
|
|
485
|
-
|
|
486
|
-
|
|
697
|
+
i = 0;
|
|
698
|
+
if (*nbufs > 0)
|
|
699
|
+
i = *nbufs - 1;
|
|
700
|
+
|
|
701
|
+
n = (unsigned int) req->result;
|
|
702
|
+
for (; i < n; i++)
|
|
703
|
+
uv__fs_scandir_free(dents[i]);
|
|
704
|
+
}
|
|
705
|
+
|
|
706
|
+
uv__fs_scandir_free(req->ptr);
|
|
707
|
+
req->ptr = NULL;
|
|
487
708
|
}
|
|
488
709
|
|
|
489
710
|
|
|
490
711
|
int uv_fs_scandir_next(uv_fs_t* req, uv_dirent_t* ent) {
|
|
491
712
|
uv__dirent_t** dents;
|
|
492
713
|
uv__dirent_t* dent;
|
|
714
|
+
unsigned int* nbufs;
|
|
715
|
+
|
|
716
|
+
/* Check to see if req passed */
|
|
717
|
+
if (req->result < 0)
|
|
718
|
+
return req->result;
|
|
719
|
+
|
|
720
|
+
/* Ptr will be null if req was canceled or no files found */
|
|
721
|
+
if (!req->ptr)
|
|
722
|
+
return UV_EOF;
|
|
493
723
|
|
|
494
|
-
|
|
724
|
+
nbufs = uv__get_nbufs(req);
|
|
725
|
+
assert(nbufs);
|
|
495
726
|
|
|
496
727
|
dents = req->ptr;
|
|
497
728
|
|
|
498
729
|
/* Free previous entity */
|
|
499
730
|
if (*nbufs > 0)
|
|
500
|
-
|
|
731
|
+
uv__fs_scandir_free(dents[*nbufs - 1]);
|
|
501
732
|
|
|
502
733
|
/* End was already reached */
|
|
503
734
|
if (*nbufs == (unsigned int) req->result) {
|
|
504
|
-
|
|
735
|
+
uv__fs_scandir_free(dents);
|
|
505
736
|
req->ptr = NULL;
|
|
506
737
|
return UV_EOF;
|
|
507
738
|
}
|
|
@@ -509,37 +740,66 @@ int uv_fs_scandir_next(uv_fs_t* req, uv_dirent_t* ent) {
|
|
|
509
740
|
dent = dents[(*nbufs)++];
|
|
510
741
|
|
|
511
742
|
ent->name = dent->d_name;
|
|
743
|
+
ent->type = uv__fs_get_dirent_type(dent);
|
|
744
|
+
|
|
745
|
+
return 0;
|
|
746
|
+
}
|
|
747
|
+
|
|
748
|
+
uv_dirent_type_t uv__fs_get_dirent_type(uv__dirent_t* dent) {
|
|
749
|
+
uv_dirent_type_t type;
|
|
750
|
+
|
|
512
751
|
#ifdef HAVE_DIRENT_TYPES
|
|
513
752
|
switch (dent->d_type) {
|
|
514
753
|
case UV__DT_DIR:
|
|
515
|
-
|
|
754
|
+
type = UV_DIRENT_DIR;
|
|
516
755
|
break;
|
|
517
756
|
case UV__DT_FILE:
|
|
518
|
-
|
|
757
|
+
type = UV_DIRENT_FILE;
|
|
519
758
|
break;
|
|
520
759
|
case UV__DT_LINK:
|
|
521
|
-
|
|
760
|
+
type = UV_DIRENT_LINK;
|
|
522
761
|
break;
|
|
523
762
|
case UV__DT_FIFO:
|
|
524
|
-
|
|
763
|
+
type = UV_DIRENT_FIFO;
|
|
525
764
|
break;
|
|
526
765
|
case UV__DT_SOCKET:
|
|
527
|
-
|
|
766
|
+
type = UV_DIRENT_SOCKET;
|
|
528
767
|
break;
|
|
529
768
|
case UV__DT_CHAR:
|
|
530
|
-
|
|
769
|
+
type = UV_DIRENT_CHAR;
|
|
531
770
|
break;
|
|
532
771
|
case UV__DT_BLOCK:
|
|
533
|
-
|
|
772
|
+
type = UV_DIRENT_BLOCK;
|
|
534
773
|
break;
|
|
535
774
|
default:
|
|
536
|
-
|
|
775
|
+
type = UV_DIRENT_UNKNOWN;
|
|
537
776
|
}
|
|
538
777
|
#else
|
|
539
|
-
|
|
778
|
+
type = UV_DIRENT_UNKNOWN;
|
|
540
779
|
#endif
|
|
541
780
|
|
|
542
|
-
return
|
|
781
|
+
return type;
|
|
782
|
+
}
|
|
783
|
+
|
|
784
|
+
void uv__fs_readdir_cleanup(uv_fs_t* req) {
|
|
785
|
+
uv_dir_t* dir;
|
|
786
|
+
uv_dirent_t* dirents;
|
|
787
|
+
int i;
|
|
788
|
+
|
|
789
|
+
if (req->ptr == NULL)
|
|
790
|
+
return;
|
|
791
|
+
|
|
792
|
+
dir = req->ptr;
|
|
793
|
+
dirents = dir->dirents;
|
|
794
|
+
req->ptr = NULL;
|
|
795
|
+
|
|
796
|
+
if (dirents == NULL)
|
|
797
|
+
return;
|
|
798
|
+
|
|
799
|
+
for (i = 0; i < req->result; ++i) {
|
|
800
|
+
uv__free((char*) dirents[i].name);
|
|
801
|
+
dirents[i].name = NULL;
|
|
802
|
+
}
|
|
543
803
|
}
|
|
544
804
|
|
|
545
805
|
|
|
@@ -589,22 +849,27 @@ uv_loop_t* uv_loop_new(void) {
|
|
|
589
849
|
|
|
590
850
|
|
|
591
851
|
int uv_loop_close(uv_loop_t* loop) {
|
|
592
|
-
|
|
852
|
+
struct uv__queue* q;
|
|
593
853
|
uv_handle_t* h;
|
|
854
|
+
#ifndef NDEBUG
|
|
855
|
+
void* saved_data;
|
|
856
|
+
#endif
|
|
594
857
|
|
|
595
|
-
if (
|
|
858
|
+
if (uv__has_active_reqs(loop))
|
|
596
859
|
return UV_EBUSY;
|
|
597
860
|
|
|
598
|
-
|
|
599
|
-
h =
|
|
600
|
-
if (!(h->flags &
|
|
861
|
+
uv__queue_foreach(q, &loop->handle_queue) {
|
|
862
|
+
h = uv__queue_data(q, uv_handle_t, handle_queue);
|
|
863
|
+
if (!(h->flags & UV_HANDLE_INTERNAL))
|
|
601
864
|
return UV_EBUSY;
|
|
602
865
|
}
|
|
603
866
|
|
|
604
867
|
uv__loop_close(loop);
|
|
605
868
|
|
|
606
869
|
#ifndef NDEBUG
|
|
870
|
+
saved_data = loop->data;
|
|
607
871
|
memset(loop, -1, sizeof(*loop));
|
|
872
|
+
loop->data = saved_data;
|
|
608
873
|
#endif
|
|
609
874
|
if (loop == default_loop_ptr)
|
|
610
875
|
default_loop_ptr = NULL;
|
|
@@ -625,3 +890,140 @@ void uv_loop_delete(uv_loop_t* loop) {
|
|
|
625
890
|
if (loop != default_loop)
|
|
626
891
|
uv__free(loop);
|
|
627
892
|
}
|
|
893
|
+
|
|
894
|
+
|
|
895
|
+
int uv_read_start(uv_stream_t* stream,
|
|
896
|
+
uv_alloc_cb alloc_cb,
|
|
897
|
+
uv_read_cb read_cb) {
|
|
898
|
+
if (stream == NULL || alloc_cb == NULL || read_cb == NULL)
|
|
899
|
+
return UV_EINVAL;
|
|
900
|
+
|
|
901
|
+
if (stream->flags & UV_HANDLE_CLOSING)
|
|
902
|
+
return UV_EINVAL;
|
|
903
|
+
|
|
904
|
+
if (stream->flags & UV_HANDLE_READING)
|
|
905
|
+
return UV_EALREADY;
|
|
906
|
+
|
|
907
|
+
if (!(stream->flags & UV_HANDLE_READABLE))
|
|
908
|
+
return UV_ENOTCONN;
|
|
909
|
+
|
|
910
|
+
return uv__read_start(stream, alloc_cb, read_cb);
|
|
911
|
+
}
|
|
912
|
+
|
|
913
|
+
|
|
914
|
+
void uv_os_free_environ(uv_env_item_t* envitems, int count) {
|
|
915
|
+
int i;
|
|
916
|
+
|
|
917
|
+
for (i = 0; i < count; i++) {
|
|
918
|
+
uv__free(envitems[i].name);
|
|
919
|
+
}
|
|
920
|
+
|
|
921
|
+
uv__free(envitems);
|
|
922
|
+
}
|
|
923
|
+
|
|
924
|
+
|
|
925
|
+
void uv_free_cpu_info(uv_cpu_info_t* cpu_infos, int count) {
|
|
926
|
+
#ifdef __linux__
|
|
927
|
+
(void) &count;
|
|
928
|
+
uv__free(cpu_infos);
|
|
929
|
+
#else
|
|
930
|
+
int i;
|
|
931
|
+
|
|
932
|
+
for (i = 0; i < count; i++)
|
|
933
|
+
uv__free(cpu_infos[i].model);
|
|
934
|
+
|
|
935
|
+
uv__free(cpu_infos);
|
|
936
|
+
#endif /* __linux__ */
|
|
937
|
+
}
|
|
938
|
+
|
|
939
|
+
|
|
940
|
+
/* Also covers __clang__ and __INTEL_COMPILER. Disabled on Windows because
|
|
941
|
+
* threads have already been forcibly terminated by the operating system
|
|
942
|
+
* by the time destructors run, ergo, it's not safe to try to clean them up.
|
|
943
|
+
*/
|
|
944
|
+
#if defined(__GNUC__) && !defined(_WIN32)
|
|
945
|
+
__attribute__((destructor))
|
|
946
|
+
#endif
|
|
947
|
+
void uv_library_shutdown(void) {
|
|
948
|
+
static int was_shutdown;
|
|
949
|
+
|
|
950
|
+
if (uv__exchange_int_relaxed(&was_shutdown, 1))
|
|
951
|
+
return;
|
|
952
|
+
|
|
953
|
+
uv__process_title_cleanup();
|
|
954
|
+
uv__signal_cleanup();
|
|
955
|
+
#ifdef __MVS__
|
|
956
|
+
/* TODO(itodorov) - zos: revisit when Woz compiler is available. */
|
|
957
|
+
uv__os390_cleanup();
|
|
958
|
+
#else
|
|
959
|
+
uv__threadpool_cleanup();
|
|
960
|
+
#endif
|
|
961
|
+
}
|
|
962
|
+
|
|
963
|
+
|
|
964
|
+
void uv__metrics_update_idle_time(uv_loop_t* loop) {
|
|
965
|
+
uv__loop_metrics_t* loop_metrics;
|
|
966
|
+
uint64_t entry_time;
|
|
967
|
+
uint64_t exit_time;
|
|
968
|
+
|
|
969
|
+
if (!(uv__get_internal_fields(loop)->flags & UV_METRICS_IDLE_TIME))
|
|
970
|
+
return;
|
|
971
|
+
|
|
972
|
+
loop_metrics = uv__get_loop_metrics(loop);
|
|
973
|
+
|
|
974
|
+
/* The thread running uv__metrics_update_idle_time() is always the same
|
|
975
|
+
* thread that sets provider_entry_time. So it's unnecessary to lock before
|
|
976
|
+
* retrieving this value.
|
|
977
|
+
*/
|
|
978
|
+
if (loop_metrics->provider_entry_time == 0)
|
|
979
|
+
return;
|
|
980
|
+
|
|
981
|
+
exit_time = uv_hrtime();
|
|
982
|
+
|
|
983
|
+
uv_mutex_lock(&loop_metrics->lock);
|
|
984
|
+
entry_time = loop_metrics->provider_entry_time;
|
|
985
|
+
loop_metrics->provider_entry_time = 0;
|
|
986
|
+
loop_metrics->provider_idle_time += exit_time - entry_time;
|
|
987
|
+
uv_mutex_unlock(&loop_metrics->lock);
|
|
988
|
+
}
|
|
989
|
+
|
|
990
|
+
|
|
991
|
+
void uv__metrics_set_provider_entry_time(uv_loop_t* loop) {
|
|
992
|
+
uv__loop_metrics_t* loop_metrics;
|
|
993
|
+
uint64_t now;
|
|
994
|
+
|
|
995
|
+
if (!(uv__get_internal_fields(loop)->flags & UV_METRICS_IDLE_TIME))
|
|
996
|
+
return;
|
|
997
|
+
|
|
998
|
+
now = uv_hrtime();
|
|
999
|
+
loop_metrics = uv__get_loop_metrics(loop);
|
|
1000
|
+
uv_mutex_lock(&loop_metrics->lock);
|
|
1001
|
+
loop_metrics->provider_entry_time = now;
|
|
1002
|
+
uv_mutex_unlock(&loop_metrics->lock);
|
|
1003
|
+
}
|
|
1004
|
+
|
|
1005
|
+
|
|
1006
|
+
int uv_metrics_info(uv_loop_t* loop, uv_metrics_t* metrics) {
|
|
1007
|
+
memcpy(metrics,
|
|
1008
|
+
&uv__get_loop_metrics(loop)->metrics,
|
|
1009
|
+
sizeof(*metrics));
|
|
1010
|
+
|
|
1011
|
+
return 0;
|
|
1012
|
+
}
|
|
1013
|
+
|
|
1014
|
+
|
|
1015
|
+
uint64_t uv_metrics_idle_time(uv_loop_t* loop) {
|
|
1016
|
+
uv__loop_metrics_t* loop_metrics;
|
|
1017
|
+
uint64_t entry_time;
|
|
1018
|
+
uint64_t idle_time;
|
|
1019
|
+
|
|
1020
|
+
loop_metrics = uv__get_loop_metrics(loop);
|
|
1021
|
+
uv_mutex_lock(&loop_metrics->lock);
|
|
1022
|
+
idle_time = loop_metrics->provider_idle_time;
|
|
1023
|
+
entry_time = loop_metrics->provider_entry_time;
|
|
1024
|
+
uv_mutex_unlock(&loop_metrics->lock);
|
|
1025
|
+
|
|
1026
|
+
if (entry_time > 0)
|
|
1027
|
+
idle_time += uv_hrtime() - entry_time;
|
|
1028
|
+
return idle_time;
|
|
1029
|
+
}
|