passenger 5.1.12 → 5.2.0
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 +4 -4
- data/CHANGELOG +18 -1
- data/Rakefile +4 -1
- data/build/agent.rb +2 -2
- data/build/apache2.rb +17 -10
- data/build/basics.rb +18 -4
- data/build/common_library.rb +7 -3
- data/build/cxx_tests.rb +2 -7
- data/build/misc.rb +3 -1
- data/build/nginx.rb +11 -5
- data/build/oxt_tests.rb +0 -3
- data/build/packaging.rb +3 -2
- data/build/schema_printer.rb +103 -0
- data/build/support/cplusplus.rb +2 -2
- data/build/support/cxx_dependency_map.rb +2575 -868
- data/dev/ci/lib/functions.sh +1 -1
- data/dev/ci/lib/set-container-envvars.sh +1 -1
- data/dev/ci/lib/setup-container.sh +1 -1
- data/dev/ci/run-tests-natively +1 -1
- data/dev/ci/run-tests-with-docker +1 -1
- data/dev/ci/scripts/debug-console-wrapper.sh +1 -1
- data/dev/ci/scripts/docker-entrypoint-stage2.sh +1 -1
- data/dev/ci/scripts/docker-entrypoint.sh +1 -1
- data/dev/ci/scripts/inituidgid +1 -1
- data/dev/ci/scripts/run-tests-natively-stage2.sh +1 -1
- data/dev/ci/scripts/setup-host-natively.sh +1 -1
- data/dev/ci/setup-host +1 -1
- data/dev/ci/tests/apache2/run +1 -1
- data/dev/ci/tests/apache2/setup +1 -1
- data/dev/ci/tests/cxx/run +1 -1
- data/dev/ci/tests/cxx/setup +1 -1
- data/dev/ci/tests/debian/Jenkinsfile +0 -1
- data/dev/ci/tests/debian/run +1 -1
- data/dev/ci/tests/nginx-dynamic/run +1 -1
- data/dev/ci/tests/nginx-dynamic/setup +1 -1
- data/dev/ci/tests/nginx/run +1 -1
- data/dev/ci/tests/nginx/setup +1 -1
- data/dev/ci/tests/nodejs/run +1 -1
- data/dev/ci/tests/nodejs/setup +1 -1
- data/dev/ci/tests/rpm/run +1 -1
- data/dev/ci/tests/ruby/run +1 -1
- data/dev/ci/tests/ruby/setup +1 -1
- data/dev/ci/tests/source-packaging/run +1 -1
- data/dev/ci/tests/source-packaging/setup +1 -1
- data/dev/ci/tests/standalone/run +1 -1
- data/dev/ci/tests/standalone/setup +1 -1
- data/dev/configkit-schemas/index.json +1708 -0
- data/dev/configkit-schemas/update_schema_inline_comments.rb +118 -0
- data/dev/copy_boost_headers +13 -1
- data/dev/index_cxx_dependencies.rb +20 -7
- data/dev/vagrant/provision.sh +1 -1
- data/resources/mime.types +1 -0
- data/resources/templates/standalone/http.erb +1 -6
- data/src/agent/Core/AdminPanelConnector.h +550 -0
- data/src/agent/Core/ApiServer.h +159 -97
- data/src/agent/Core/ApplicationPool/Group.h +2 -0
- data/src/agent/Core/ApplicationPool/Group/InternalUtils.cpp +3 -2
- data/src/agent/Core/ApplicationPool/Group/StateInspection.cpp +109 -0
- data/src/agent/Core/ApplicationPool/Implementation.cpp +5 -3
- data/src/agent/Core/ApplicationPool/Options.h +5 -6
- data/src/agent/Core/ApplicationPool/Pool.h +59 -2
- data/src/agent/Core/ApplicationPool/Pool/GeneralUtils.cpp +3 -3
- data/src/agent/Core/ApplicationPool/Pool/InitializationAndShutdown.cpp +2 -2
- data/src/agent/Core/ApplicationPool/Pool/Miscellaneous.cpp +6 -0
- data/src/agent/Core/ApplicationPool/Pool/StateInspection.cpp +129 -0
- data/src/agent/Core/Config.h +475 -0
- data/src/agent/Core/ConfigChange.cpp +349 -0
- data/src/agent/Core/ConfigChange.h +54 -0
- data/src/agent/Core/Controller.h +35 -3
- data/src/agent/Core/Controller/CheckoutSession.cpp +1 -1
- data/src/agent/Core/Controller/Config.cpp +0 -2
- data/src/agent/Core/Controller/Config.h +168 -104
- data/src/agent/Core/Controller/ForwardResponse.cpp +1 -1
- data/src/agent/Core/Controller/InitRequest.cpp +14 -15
- data/src/agent/Core/Controller/InitializationAndShutdown.cpp +34 -44
- data/src/agent/Core/Controller/Request.h +0 -1
- data/src/agent/Core/CoreMain.cpp +236 -349
- data/src/agent/Core/OptionParser.h +75 -89
- data/src/agent/Core/SecurityUpdateChecker.h +263 -100
- data/src/agent/Core/SpawningKit/Config.h +6 -2
- data/src/agent/Core/SpawningKit/Spawner.h +0 -45
- data/src/agent/Core/SpawningKit/UserSwitchingRules.h +1 -0
- data/src/agent/Shared/ApiAccountUtils.h +318 -0
- data/src/agent/Shared/ApiServerUtils.h +3 -104
- data/src/agent/Shared/Fundamentals/Initialization.cpp +81 -44
- data/src/agent/Shared/Fundamentals/Initialization.h +12 -7
- data/src/agent/TempDirToucher/TempDirToucherMain.cpp +21 -0
- data/src/agent/Watchdog/AgentWatcher.cpp +1 -1
- data/src/agent/Watchdog/ApiServer.h +100 -14
- data/src/agent/Watchdog/Config.h +340 -0
- data/src/agent/Watchdog/CoreWatcher.cpp +27 -13
- data/src/agent/Watchdog/InstanceDirToucher.cpp +1 -1
- data/src/agent/Watchdog/WatchdogMain.cpp +190 -206
- data/src/apache2_module/Bucket.cpp +4 -0
- data/src/apache2_module/Bucket.h +7 -3
- data/src/apache2_module/CBindings.cpp +49 -0
- data/src/apache2_module/Config.cpp +242 -0
- data/src/apache2_module/Config.h +109 -0
- data/src/apache2_module/ConfigGeneral/AutoGeneratedDefinitions.cpp +485 -0
- data/src/apache2_module/{ConfigurationCommands.cpp.cxxcodebuilder → ConfigGeneral/AutoGeneratedDefinitions.cpp.cxxcodebuilder} +29 -15
- data/src/apache2_module/ConfigGeneral/AutoGeneratedManifestDefaultsInitialization.cpp +298 -0
- data/src/apache2_module/ConfigGeneral/AutoGeneratedManifestDefaultsInitialization.cpp.cxxcodebuilder +171 -0
- data/src/apache2_module/ConfigGeneral/AutoGeneratedSetterFuncs.cpp +854 -0
- data/src/apache2_module/ConfigGeneral/AutoGeneratedSetterFuncs.cpp.cxxcodebuilder +188 -0
- data/src/apache2_module/ConfigGeneral/ManifestGeneration.h +610 -0
- data/src/apache2_module/ConfigGeneral/SetterFuncs.h +65 -0
- data/src/apache2_module/DirConfig/AutoGeneratedCreateFunction.cpp +174 -0
- data/src/apache2_module/{MergeDirConfig.cpp.cxxcodebuilder → DirConfig/AutoGeneratedCreateFunction.cpp.cxxcodebuilder} +54 -32
- data/src/apache2_module/DirConfig/AutoGeneratedHeaderSerialization.cpp +113 -0
- data/src/apache2_module/{SetHeaders.cpp.cxxcodebuilder → DirConfig/AutoGeneratedHeaderSerialization.cpp.cxxcodebuilder} +34 -23
- data/src/apache2_module/DirConfig/AutoGeneratedManifestGeneration.cpp +426 -0
- data/src/apache2_module/DirConfig/AutoGeneratedManifestGeneration.cpp.cxxcodebuilder +165 -0
- data/src/apache2_module/DirConfig/AutoGeneratedMergeFunction.cpp +269 -0
- data/src/apache2_module/DirConfig/AutoGeneratedMergeFunction.cpp.cxxcodebuilder +148 -0
- data/src/apache2_module/DirConfig/AutoGeneratedStruct.h +534 -0
- data/src/apache2_module/DirConfig/AutoGeneratedStruct.h.cxxcodebuilder +230 -0
- data/src/apache2_module/DirectoryMapper.h +19 -16
- data/src/apache2_module/Hooks.cpp +124 -138
- data/src/apache2_module/Hooks.h +9 -14
- data/src/apache2_module/ServerConfig/AutoGeneratedManifestGeneration.cpp +263 -0
- data/src/apache2_module/ServerConfig/AutoGeneratedManifestGeneration.cpp.cxxcodebuilder +152 -0
- data/src/apache2_module/ServerConfig/AutoGeneratedStruct.h +299 -0
- data/src/apache2_module/{ConfigurationFields.hpp.cxxcodebuilder → ServerConfig/AutoGeneratedStruct.h.cxxcodebuilder} +105 -18
- data/src/apache2_module/Utils.h +215 -0
- data/src/apache2_module/mod_passenger.c +16 -8
- data/src/cxx_supportlib/AppTypes.h +2 -0
- data/src/cxx_supportlib/ConfigKit/ConfigKit.h +1 -1
- data/src/cxx_supportlib/ConfigKit/DummyTranslator.h +8 -8
- data/src/cxx_supportlib/ConfigKit/IN_PRACTICE.md +7 -41
- data/src/cxx_supportlib/ConfigKit/PrefixTranslator.h +12 -66
- data/src/cxx_supportlib/ConfigKit/Schema.h +62 -11
- data/src/cxx_supportlib/ConfigKit/{ValidationUtils.h → SchemaUtils.h} +12 -3
- data/src/cxx_supportlib/ConfigKit/Store.h +17 -9
- data/src/cxx_supportlib/ConfigKit/SubComponentUtils.h +2 -1
- data/src/cxx_supportlib/ConfigKit/TableTranslator.h +13 -70
- data/src/cxx_supportlib/ConfigKit/Translator.h +125 -0
- data/src/cxx_supportlib/Constants.h +1 -3
- data/src/cxx_supportlib/FileTools/FileManip.cpp +297 -0
- data/src/cxx_supportlib/FileTools/FileManip.h +162 -0
- data/src/cxx_supportlib/{Utils → FileTools}/LargeFiles.cpp +6 -3
- data/src/cxx_supportlib/{Utils → FileTools}/LargeFiles.h +7 -5
- data/src/cxx_supportlib/FileTools/PathManip.cpp +240 -0
- data/src/cxx_supportlib/FileTools/PathManip.h +91 -0
- data/src/cxx_supportlib/FileTools/PathManipCBindings.cpp +62 -0
- data/src/{apache2_module/Configuration.h → cxx_supportlib/FileTools/PathManipCBindings.h} +12 -19
- data/src/cxx_supportlib/Hooks.h +19 -16
- data/src/cxx_supportlib/InstanceDirectory.h +11 -0
- data/src/cxx_supportlib/JsonTools/Autocast.h +79 -0
- data/src/cxx_supportlib/JsonTools/CBindings.cpp +364 -0
- data/src/cxx_supportlib/JsonTools/CBindings.h +101 -0
- data/src/cxx_supportlib/LoggingKit/Config.h +13 -0
- data/src/cxx_supportlib/LoggingKit/Context.h +5 -2
- data/src/cxx_supportlib/LoggingKit/Forward.h +0 -1
- data/src/cxx_supportlib/LoggingKit/Implementation.cpp +12 -4
- data/src/cxx_supportlib/ResourceLocator.h +15 -0
- data/src/cxx_supportlib/ServerKit/Config.h +156 -0
- data/src/cxx_supportlib/ServerKit/Context.h +59 -38
- data/src/cxx_supportlib/ServerKit/FileBufferedChannel.h +3 -2
- data/src/cxx_supportlib/ServerKit/HttpHeaderParser.h +2 -2
- data/src/cxx_supportlib/ServerKit/HttpServer.h +16 -2
- data/src/cxx_supportlib/ServerKit/Server.h +32 -15
- data/src/cxx_supportlib/Utils.cpp +0 -441
- data/src/cxx_supportlib/Utils.h +0 -158
- data/src/cxx_supportlib/Utils/Curl.h +1 -0
- data/src/cxx_supportlib/Utils/ProcessMetricsCollector.h +1 -0
- data/src/cxx_supportlib/Utils/StrIntUtilsNoStrictAliasing.cpp +2 -0
- data/src/cxx_supportlib/Utils/VariantMap.h +31 -0
- data/src/cxx_supportlib/WatchdogLauncher.cpp +7 -79
- data/src/cxx_supportlib/WatchdogLauncher.h +50 -53
- data/src/cxx_supportlib/WebSocketCommandReverseServer.h +981 -0
- data/src/cxx_supportlib/oxt/macros.hpp +9 -0
- data/src/cxx_supportlib/vendor-copy/websocketpp/COPYING +145 -0
- data/src/cxx_supportlib/vendor-copy/websocketpp/changelog.md +342 -0
- data/src/cxx_supportlib/vendor-copy/websocketpp/readme.md +49 -0
- data/src/cxx_supportlib/vendor-copy/websocketpp/websocketpp/base64/base64.hpp +178 -0
- data/src/cxx_supportlib/vendor-copy/websocketpp/websocketpp/client.hpp +33 -0
- data/src/cxx_supportlib/vendor-copy/websocketpp/websocketpp/close.hpp +342 -0
- data/src/cxx_supportlib/vendor-copy/websocketpp/websocketpp/common/asio.hpp +131 -0
- data/src/cxx_supportlib/vendor-copy/websocketpp/websocketpp/common/asio_ssl.hpp +39 -0
- data/src/cxx_supportlib/vendor-copy/websocketpp/websocketpp/common/chrono.hpp +68 -0
- data/src/cxx_supportlib/vendor-copy/websocketpp/websocketpp/common/connection_hdl.hpp +52 -0
- data/src/cxx_supportlib/vendor-copy/websocketpp/websocketpp/common/cpp11.hpp +162 -0
- data/src/cxx_supportlib/vendor-copy/websocketpp/websocketpp/common/functional.hpp +105 -0
- data/src/cxx_supportlib/vendor-copy/websocketpp/websocketpp/common/md5.hpp +448 -0
- data/src/cxx_supportlib/vendor-copy/websocketpp/websocketpp/common/memory.hpp +89 -0
- data/src/cxx_supportlib/vendor-copy/websocketpp/websocketpp/common/network.hpp +106 -0
- data/src/cxx_supportlib/vendor-copy/websocketpp/websocketpp/common/platforms.hpp +46 -0
- data/src/cxx_supportlib/vendor-copy/websocketpp/websocketpp/common/random.hpp +82 -0
- data/src/cxx_supportlib/vendor-copy/websocketpp/websocketpp/common/regex.hpp +59 -0
- data/src/cxx_supportlib/vendor-copy/websocketpp/websocketpp/common/stdint.hpp +73 -0
- data/src/cxx_supportlib/vendor-copy/websocketpp/websocketpp/common/system_error.hpp +84 -0
- data/src/cxx_supportlib/vendor-copy/websocketpp/websocketpp/common/thread.hpp +84 -0
- data/src/cxx_supportlib/vendor-copy/websocketpp/websocketpp/common/time.hpp +56 -0
- data/src/cxx_supportlib/vendor-copy/websocketpp/websocketpp/common/type_traits.hpp +65 -0
- data/src/cxx_supportlib/vendor-copy/websocketpp/websocketpp/concurrency/basic.hpp +46 -0
- data/src/cxx_supportlib/vendor-copy/websocketpp/websocketpp/concurrency/none.hpp +80 -0
- data/src/cxx_supportlib/vendor-copy/websocketpp/websocketpp/config/asio.hpp +77 -0
- data/src/cxx_supportlib/vendor-copy/websocketpp/websocketpp/config/asio_client.hpp +77 -0
- data/src/cxx_supportlib/vendor-copy/websocketpp/websocketpp/config/asio_no_tls.hpp +73 -0
- data/src/cxx_supportlib/vendor-copy/websocketpp/websocketpp/config/asio_no_tls_client.hpp +73 -0
- data/src/cxx_supportlib/vendor-copy/websocketpp/websocketpp/config/boost_config.hpp +72 -0
- data/src/cxx_supportlib/vendor-copy/websocketpp/websocketpp/config/core.hpp +285 -0
- data/src/cxx_supportlib/vendor-copy/websocketpp/websocketpp/config/core_client.hpp +294 -0
- data/src/cxx_supportlib/vendor-copy/websocketpp/websocketpp/config/debug.hpp +286 -0
- data/src/cxx_supportlib/vendor-copy/websocketpp/websocketpp/config/debug_asio.hpp +77 -0
- data/src/cxx_supportlib/vendor-copy/websocketpp/websocketpp/config/debug_asio_no_tls.hpp +73 -0
- data/src/cxx_supportlib/vendor-copy/websocketpp/websocketpp/config/minimal_client.hpp +72 -0
- data/src/cxx_supportlib/vendor-copy/websocketpp/websocketpp/config/minimal_server.hpp +312 -0
- data/src/cxx_supportlib/vendor-copy/websocketpp/websocketpp/connection.hpp +1651 -0
- data/src/cxx_supportlib/vendor-copy/websocketpp/websocketpp/connection_base.hpp +38 -0
- data/src/cxx_supportlib/vendor-copy/websocketpp/websocketpp/endpoint.hpp +700 -0
- data/src/cxx_supportlib/vendor-copy/websocketpp/websocketpp/endpoint_base.hpp +38 -0
- data/src/cxx_supportlib/vendor-copy/websocketpp/websocketpp/error.hpp +277 -0
- data/src/cxx_supportlib/vendor-copy/websocketpp/websocketpp/extensions/extension.hpp +102 -0
- data/src/cxx_supportlib/vendor-copy/websocketpp/websocketpp/extensions/permessage_deflate/disabled.hpp +128 -0
- data/src/cxx_supportlib/vendor-copy/websocketpp/websocketpp/extensions/permessage_deflate/enabled.hpp +752 -0
- data/src/cxx_supportlib/vendor-copy/websocketpp/websocketpp/frame.hpp +861 -0
- data/src/cxx_supportlib/vendor-copy/websocketpp/websocketpp/http/constants.hpp +308 -0
- data/src/cxx_supportlib/vendor-copy/websocketpp/websocketpp/http/impl/parser.hpp +196 -0
- data/src/cxx_supportlib/vendor-copy/websocketpp/websocketpp/http/impl/request.hpp +191 -0
- data/src/cxx_supportlib/vendor-copy/websocketpp/websocketpp/http/impl/response.hpp +266 -0
- data/src/cxx_supportlib/vendor-copy/websocketpp/websocketpp/http/parser.hpp +619 -0
- data/src/cxx_supportlib/vendor-copy/websocketpp/websocketpp/http/request.hpp +124 -0
- data/src/cxx_supportlib/vendor-copy/websocketpp/websocketpp/http/response.hpp +188 -0
- data/src/cxx_supportlib/vendor-copy/websocketpp/websocketpp/impl/connection_impl.hpp +2372 -0
- data/src/cxx_supportlib/vendor-copy/websocketpp/websocketpp/impl/endpoint_impl.hpp +269 -0
- data/src/cxx_supportlib/vendor-copy/websocketpp/websocketpp/impl/utilities_impl.hpp +87 -0
- data/src/cxx_supportlib/vendor-copy/websocketpp/websocketpp/logger/basic.hpp +199 -0
- data/src/cxx_supportlib/vendor-copy/websocketpp/websocketpp/logger/levels.hpp +203 -0
- data/src/cxx_supportlib/vendor-copy/websocketpp/websocketpp/logger/stub.hpp +119 -0
- data/src/cxx_supportlib/vendor-copy/websocketpp/websocketpp/logger/syslog.hpp +146 -0
- data/src/cxx_supportlib/vendor-copy/websocketpp/websocketpp/message_buffer/alloc.hpp +105 -0
- data/src/cxx_supportlib/vendor-copy/websocketpp/websocketpp/message_buffer/message.hpp +340 -0
- data/src/cxx_supportlib/vendor-copy/websocketpp/websocketpp/message_buffer/pool.hpp +229 -0
- data/src/cxx_supportlib/vendor-copy/websocketpp/websocketpp/processors/base.hpp +299 -0
- data/src/cxx_supportlib/vendor-copy/websocketpp/websocketpp/processors/hybi00.hpp +462 -0
- data/src/cxx_supportlib/vendor-copy/websocketpp/websocketpp/processors/hybi07.hpp +78 -0
- data/src/cxx_supportlib/vendor-copy/websocketpp/websocketpp/processors/hybi08.hpp +83 -0
- data/src/cxx_supportlib/vendor-copy/websocketpp/websocketpp/processors/hybi13.hpp +1056 -0
- data/src/cxx_supportlib/vendor-copy/websocketpp/websocketpp/processors/processor.hpp +407 -0
- data/src/cxx_supportlib/vendor-copy/websocketpp/websocketpp/random/none.hpp +60 -0
- data/src/cxx_supportlib/vendor-copy/websocketpp/websocketpp/random/random_device.hpp +80 -0
- data/src/cxx_supportlib/vendor-copy/websocketpp/websocketpp/roles/client_endpoint.hpp +173 -0
- data/src/cxx_supportlib/vendor-copy/websocketpp/websocketpp/roles/server_endpoint.hpp +190 -0
- data/src/cxx_supportlib/vendor-copy/websocketpp/websocketpp/server.hpp +33 -0
- data/src/cxx_supportlib/vendor-copy/websocketpp/websocketpp/sha1/sha1.hpp +189 -0
- data/src/cxx_supportlib/vendor-copy/websocketpp/websocketpp/transport/asio/base.hpp +232 -0
- data/src/cxx_supportlib/vendor-copy/websocketpp/websocketpp/transport/asio/connection.hpp +1204 -0
- data/src/cxx_supportlib/vendor-copy/websocketpp/websocketpp/transport/asio/endpoint.hpp +1147 -0
- data/src/cxx_supportlib/vendor-copy/websocketpp/websocketpp/transport/asio/security/base.hpp +159 -0
- data/src/cxx_supportlib/vendor-copy/websocketpp/websocketpp/transport/asio/security/none.hpp +370 -0
- data/src/cxx_supportlib/vendor-copy/websocketpp/websocketpp/transport/asio/security/tls.hpp +484 -0
- data/src/cxx_supportlib/vendor-copy/websocketpp/websocketpp/transport/base/connection.hpp +238 -0
- data/src/cxx_supportlib/vendor-copy/websocketpp/websocketpp/transport/base/endpoint.hpp +77 -0
- data/src/cxx_supportlib/vendor-copy/websocketpp/websocketpp/transport/debug/base.hpp +104 -0
- data/src/cxx_supportlib/vendor-copy/websocketpp/websocketpp/transport/debug/connection.hpp +412 -0
- data/src/cxx_supportlib/vendor-copy/websocketpp/websocketpp/transport/debug/endpoint.hpp +140 -0
- data/src/cxx_supportlib/vendor-copy/websocketpp/websocketpp/transport/iostream/base.hpp +133 -0
- data/src/cxx_supportlib/vendor-copy/websocketpp/websocketpp/transport/iostream/connection.hpp +714 -0
- data/src/cxx_supportlib/vendor-copy/websocketpp/websocketpp/transport/iostream/endpoint.hpp +222 -0
- data/src/cxx_supportlib/vendor-copy/websocketpp/websocketpp/transport/stub/base.hpp +95 -0
- data/src/cxx_supportlib/vendor-copy/websocketpp/websocketpp/transport/stub/connection.hpp +286 -0
- data/src/cxx_supportlib/vendor-copy/websocketpp/websocketpp/transport/stub/endpoint.hpp +140 -0
- data/src/cxx_supportlib/vendor-copy/websocketpp/websocketpp/uri.hpp +355 -0
- data/src/cxx_supportlib/vendor-copy/websocketpp/websocketpp/utf8_validator.hpp +154 -0
- data/src/cxx_supportlib/vendor-copy/websocketpp/websocketpp/utilities.hpp +182 -0
- data/src/cxx_supportlib/vendor-copy/websocketpp/websocketpp/version.hpp +61 -0
- data/src/cxx_supportlib/vendor-modified/boost/asio.hpp +121 -0
- data/src/cxx_supportlib/vendor-modified/boost/asio/async_result.hpp +96 -0
- data/src/cxx_supportlib/vendor-modified/boost/asio/basic_datagram_socket.hpp +951 -0
- data/src/cxx_supportlib/vendor-modified/boost/asio/basic_deadline_timer.hpp +520 -0
- data/src/cxx_supportlib/vendor-modified/boost/asio/basic_io_object.hpp +258 -0
- data/src/cxx_supportlib/vendor-modified/boost/asio/basic_raw_socket.hpp +942 -0
- data/src/cxx_supportlib/vendor-modified/boost/asio/basic_seq_packet_socket.hpp +567 -0
- data/src/cxx_supportlib/vendor-modified/boost/asio/basic_serial_port.hpp +697 -0
- data/src/cxx_supportlib/vendor-modified/boost/asio/basic_signal_set.hpp +386 -0
- data/src/cxx_supportlib/vendor-modified/boost/asio/basic_socket.hpp +1519 -0
- data/src/cxx_supportlib/vendor-modified/boost/asio/basic_socket_acceptor.hpp +1137 -0
- data/src/cxx_supportlib/vendor-modified/boost/asio/basic_socket_iostream.hpp +288 -0
- data/src/cxx_supportlib/vendor-modified/boost/asio/basic_socket_streambuf.hpp +569 -0
- data/src/cxx_supportlib/vendor-modified/boost/asio/basic_stream_socket.hpp +854 -0
- data/src/cxx_supportlib/vendor-modified/boost/asio/basic_streambuf.hpp +371 -0
- data/src/cxx_supportlib/vendor-modified/boost/asio/basic_streambuf_fwd.hpp +35 -0
- data/src/cxx_supportlib/vendor-modified/boost/asio/basic_waitable_timer.hpp +521 -0
- data/src/cxx_supportlib/vendor-modified/boost/asio/buffer.hpp +2241 -0
- data/src/cxx_supportlib/vendor-modified/boost/asio/buffered_read_stream.hpp +246 -0
- data/src/cxx_supportlib/vendor-modified/boost/asio/buffered_read_stream_fwd.hpp +27 -0
- data/src/cxx_supportlib/vendor-modified/boost/asio/buffered_stream.hpp +260 -0
- data/src/cxx_supportlib/vendor-modified/boost/asio/buffered_stream_fwd.hpp +27 -0
- data/src/cxx_supportlib/vendor-modified/boost/asio/buffered_write_stream.hpp +238 -0
- data/src/cxx_supportlib/vendor-modified/boost/asio/buffered_write_stream_fwd.hpp +27 -0
- data/src/cxx_supportlib/vendor-modified/boost/asio/buffers_iterator.hpp +483 -0
- data/src/cxx_supportlib/vendor-modified/boost/asio/completion_condition.hpp +220 -0
- data/src/cxx_supportlib/vendor-modified/boost/asio/connect.hpp +825 -0
- data/src/cxx_supportlib/vendor-modified/boost/asio/coroutine.hpp +330 -0
- data/src/cxx_supportlib/vendor-modified/boost/asio/datagram_socket_service.hpp +438 -0
- data/src/cxx_supportlib/vendor-modified/boost/asio/deadline_timer.hpp +40 -0
- data/src/cxx_supportlib/vendor-modified/boost/asio/deadline_timer_service.hpp +173 -0
- data/src/cxx_supportlib/vendor-modified/boost/asio/detail/addressof.hpp +40 -0
- data/src/cxx_supportlib/vendor-modified/boost/asio/detail/array.hpp +40 -0
- data/src/cxx_supportlib/vendor-modified/boost/asio/detail/array_fwd.hpp +34 -0
- data/src/cxx_supportlib/vendor-modified/boost/asio/detail/assert.hpp +32 -0
- data/src/cxx_supportlib/vendor-modified/boost/asio/detail/atomic_count.hpp +47 -0
- data/src/cxx_supportlib/vendor-modified/boost/asio/detail/base_from_completion_cond.hpp +70 -0
- data/src/cxx_supportlib/vendor-modified/boost/asio/detail/bind_handler.hpp +491 -0
- data/src/cxx_supportlib/vendor-modified/boost/asio/detail/buffer_resize_guard.hpp +68 -0
- data/src/cxx_supportlib/vendor-modified/boost/asio/detail/buffer_sequence_adapter.hpp +385 -0
- data/src/cxx_supportlib/vendor-modified/boost/asio/detail/buffered_stream_storage.hpp +128 -0
- data/src/cxx_supportlib/vendor-modified/boost/asio/detail/call_stack.hpp +127 -0
- data/src/cxx_supportlib/vendor-modified/boost/asio/detail/chrono_time_traits.hpp +192 -0
- data/src/cxx_supportlib/vendor-modified/boost/asio/detail/completion_handler.hpp +83 -0
- data/src/cxx_supportlib/vendor-modified/boost/asio/detail/config.hpp +1050 -0
- data/src/cxx_supportlib/vendor-modified/boost/asio/detail/consuming_buffers.hpp +294 -0
- data/src/cxx_supportlib/vendor-modified/boost/asio/detail/cstdint.hpp +48 -0
- data/src/cxx_supportlib/vendor-modified/boost/asio/detail/date_time_fwd.hpp +34 -0
- data/src/cxx_supportlib/vendor-modified/boost/asio/detail/deadline_timer_service.hpp +229 -0
- data/src/cxx_supportlib/vendor-modified/boost/asio/detail/dependent_type.hpp +38 -0
- data/src/cxx_supportlib/vendor-modified/boost/asio/detail/descriptor_ops.hpp +119 -0
- data/src/cxx_supportlib/vendor-modified/boost/asio/detail/descriptor_read_op.hpp +121 -0
- data/src/cxx_supportlib/vendor-modified/boost/asio/detail/descriptor_write_op.hpp +121 -0
- data/src/cxx_supportlib/vendor-modified/boost/asio/detail/dev_poll_reactor.hpp +208 -0
- data/src/cxx_supportlib/vendor-modified/boost/asio/detail/epoll_reactor.hpp +244 -0
- data/src/cxx_supportlib/vendor-modified/boost/asio/detail/event.hpp +50 -0
- data/src/cxx_supportlib/vendor-modified/boost/asio/detail/eventfd_select_interrupter.hpp +85 -0
- data/src/cxx_supportlib/vendor-modified/boost/asio/detail/fd_set_adapter.hpp +41 -0
- data/src/cxx_supportlib/vendor-modified/boost/asio/detail/fenced_block.hpp +82 -0
- data/src/cxx_supportlib/vendor-modified/boost/asio/detail/function.hpp +40 -0
- data/src/cxx_supportlib/vendor-modified/boost/asio/detail/gcc_arm_fenced_block.hpp +91 -0
- data/src/cxx_supportlib/vendor-modified/boost/asio/detail/gcc_hppa_fenced_block.hpp +68 -0
- data/src/cxx_supportlib/vendor-modified/boost/asio/detail/gcc_sync_fenced_block.hpp +65 -0
- data/src/cxx_supportlib/vendor-modified/boost/asio/detail/gcc_x86_fenced_block.hpp +99 -0
- data/src/cxx_supportlib/vendor-modified/boost/asio/detail/handler_alloc_helpers.hpp +82 -0
- data/src/cxx_supportlib/vendor-modified/boost/asio/detail/handler_cont_helpers.hpp +45 -0
- data/src/cxx_supportlib/vendor-modified/boost/asio/detail/handler_invoke_helpers.hpp +57 -0
- data/src/cxx_supportlib/vendor-modified/boost/asio/detail/handler_tracking.hpp +161 -0
- data/src/cxx_supportlib/vendor-modified/boost/asio/detail/handler_type_requirements.hpp +480 -0
- data/src/cxx_supportlib/vendor-modified/boost/asio/detail/hash_map.hpp +333 -0
- data/src/cxx_supportlib/vendor-modified/boost/asio/detail/impl/buffer_sequence_adapter.ipp +120 -0
- data/src/cxx_supportlib/vendor-modified/boost/asio/detail/impl/descriptor_ops.ipp +453 -0
- data/src/cxx_supportlib/vendor-modified/boost/asio/detail/impl/dev_poll_reactor.hpp +80 -0
- data/src/cxx_supportlib/vendor-modified/boost/asio/detail/impl/dev_poll_reactor.ipp +432 -0
- data/src/cxx_supportlib/vendor-modified/boost/asio/detail/impl/epoll_reactor.hpp +78 -0
- data/src/cxx_supportlib/vendor-modified/boost/asio/detail/impl/epoll_reactor.ipp +688 -0
- data/src/cxx_supportlib/vendor-modified/boost/asio/detail/impl/eventfd_select_interrupter.ipp +167 -0
- data/src/cxx_supportlib/vendor-modified/boost/asio/detail/impl/handler_tracking.ipp +307 -0
- data/src/cxx_supportlib/vendor-modified/boost/asio/detail/impl/kqueue_reactor.hpp +82 -0
- data/src/cxx_supportlib/vendor-modified/boost/asio/detail/impl/kqueue_reactor.ipp +498 -0
- data/src/cxx_supportlib/vendor-modified/boost/asio/detail/impl/pipe_select_interrupter.ipp +126 -0
- data/src/cxx_supportlib/vendor-modified/boost/asio/detail/impl/posix_event.ipp +49 -0
- data/src/cxx_supportlib/vendor-modified/boost/asio/detail/impl/posix_mutex.ipp +48 -0
- data/src/cxx_supportlib/vendor-modified/boost/asio/detail/impl/posix_thread.ipp +76 -0
- data/src/cxx_supportlib/vendor-modified/boost/asio/detail/impl/posix_tss_ptr.ipp +48 -0
- data/src/cxx_supportlib/vendor-modified/boost/asio/detail/impl/reactive_descriptor_service.ipp +210 -0
- data/src/cxx_supportlib/vendor-modified/boost/asio/detail/impl/reactive_serial_port_service.ipp +153 -0
- data/src/cxx_supportlib/vendor-modified/boost/asio/detail/impl/reactive_socket_service_base.ipp +269 -0
- data/src/cxx_supportlib/vendor-modified/boost/asio/detail/impl/resolver_service_base.ipp +132 -0
- data/src/cxx_supportlib/vendor-modified/boost/asio/detail/impl/select_reactor.hpp +89 -0
- data/src/cxx_supportlib/vendor-modified/boost/asio/detail/impl/select_reactor.ipp +315 -0
- data/src/cxx_supportlib/vendor-modified/boost/asio/detail/impl/service_registry.hpp +90 -0
- data/src/cxx_supportlib/vendor-modified/boost/asio/detail/impl/service_registry.ipp +190 -0
- data/src/cxx_supportlib/vendor-modified/boost/asio/detail/impl/signal_set_service.ipp +649 -0
- data/src/cxx_supportlib/vendor-modified/boost/asio/detail/impl/socket_ops.ipp +3470 -0
- data/src/cxx_supportlib/vendor-modified/boost/asio/detail/impl/socket_select_interrupter.ipp +178 -0
- data/src/cxx_supportlib/vendor-modified/boost/asio/detail/impl/strand_service.hpp +120 -0
- data/src/cxx_supportlib/vendor-modified/boost/asio/detail/impl/strand_service.ipp +178 -0
- data/src/cxx_supportlib/vendor-modified/boost/asio/detail/impl/task_io_service.hpp +80 -0
- data/src/cxx_supportlib/vendor-modified/boost/asio/detail/impl/task_io_service.ipp +476 -0
- data/src/cxx_supportlib/vendor-modified/boost/asio/detail/impl/throw_error.ipp +47 -0
- data/src/cxx_supportlib/vendor-modified/boost/asio/detail/impl/timer_queue_ptime.ipp +86 -0
- data/src/cxx_supportlib/vendor-modified/boost/asio/detail/impl/timer_queue_set.ipp +103 -0
- data/src/cxx_supportlib/vendor-modified/boost/asio/detail/io_control.hpp +136 -0
- data/src/cxx_supportlib/vendor-modified/boost/asio/detail/keyword_tss_ptr.hpp +72 -0
- data/src/cxx_supportlib/vendor-modified/boost/asio/detail/kqueue_reactor.hpp +222 -0
- data/src/cxx_supportlib/vendor-modified/boost/asio/detail/limits.hpp +26 -0
- data/src/cxx_supportlib/vendor-modified/boost/asio/detail/local_free_on_block_exit.hpp +61 -0
- data/src/cxx_supportlib/vendor-modified/boost/asio/detail/macos_fenced_block.hpp +63 -0
- data/src/cxx_supportlib/vendor-modified/boost/asio/detail/memory.hpp +31 -0
- data/src/cxx_supportlib/vendor-modified/boost/asio/detail/mutex.hpp +50 -0
- data/src/cxx_supportlib/vendor-modified/boost/asio/detail/noncopyable.hpp +45 -0
- data/src/cxx_supportlib/vendor-modified/boost/asio/detail/null_event.hpp +90 -0
- data/src/cxx_supportlib/vendor-modified/boost/asio/detail/null_fenced_block.hpp +47 -0
- data/src/cxx_supportlib/vendor-modified/boost/asio/detail/null_mutex.hpp +66 -0
- data/src/cxx_supportlib/vendor-modified/boost/asio/detail/null_reactor.hpp +69 -0
- data/src/cxx_supportlib/vendor-modified/boost/asio/detail/null_signal_blocker.hpp +71 -0
- data/src/cxx_supportlib/vendor-modified/boost/asio/detail/null_socket_service.hpp +500 -0
- data/src/cxx_supportlib/vendor-modified/boost/asio/detail/null_static_mutex.hpp +62 -0
- data/src/cxx_supportlib/vendor-modified/boost/asio/detail/null_thread.hpp +63 -0
- data/src/cxx_supportlib/vendor-modified/boost/asio/detail/null_tss_ptr.hpp +70 -0
- data/src/cxx_supportlib/vendor-modified/boost/asio/detail/object_pool.hpp +148 -0
- data/src/cxx_supportlib/vendor-modified/boost/asio/detail/old_win_sdk_compat.hpp +216 -0
- data/src/cxx_supportlib/vendor-modified/boost/asio/detail/op_queue.hpp +158 -0
- data/src/cxx_supportlib/vendor-modified/boost/asio/detail/operation.hpp +40 -0
- data/src/cxx_supportlib/vendor-modified/boost/asio/detail/pipe_select_interrupter.hpp +91 -0
- data/src/cxx_supportlib/vendor-modified/boost/asio/detail/pop_options.hpp +131 -0
- data/src/cxx_supportlib/vendor-modified/boost/asio/detail/posix_event.hpp +128 -0
- data/src/cxx_supportlib/vendor-modified/boost/asio/detail/posix_fd_set_adapter.hpp +120 -0
- data/src/cxx_supportlib/vendor-modified/boost/asio/detail/posix_mutex.hpp +78 -0
- data/src/cxx_supportlib/vendor-modified/boost/asio/detail/posix_signal_blocker.hpp +87 -0
- data/src/cxx_supportlib/vendor-modified/boost/asio/detail/posix_static_mutex.hpp +66 -0
- data/src/cxx_supportlib/vendor-modified/boost/asio/detail/posix_thread.hpp +107 -0
- data/src/cxx_supportlib/vendor-modified/boost/asio/detail/posix_tss_ptr.hpp +81 -0
- data/src/cxx_supportlib/vendor-modified/boost/asio/detail/push_options.hpp +166 -0
- data/src/cxx_supportlib/vendor-modified/boost/asio/detail/reactive_descriptor_service.hpp +324 -0
- data/src/cxx_supportlib/vendor-modified/boost/asio/detail/reactive_null_buffers_op.hpp +90 -0
- data/src/cxx_supportlib/vendor-modified/boost/asio/detail/reactive_serial_port_service.hpp +236 -0
- data/src/cxx_supportlib/vendor-modified/boost/asio/detail/reactive_socket_accept_op.hpp +138 -0
- data/src/cxx_supportlib/vendor-modified/boost/asio/detail/reactive_socket_connect_op.hpp +108 -0
- data/src/cxx_supportlib/vendor-modified/boost/asio/detail/reactive_socket_recv_op.hpp +125 -0
- data/src/cxx_supportlib/vendor-modified/boost/asio/detail/reactive_socket_recvfrom_op.hpp +135 -0
- data/src/cxx_supportlib/vendor-modified/boost/asio/detail/reactive_socket_recvmsg_op.hpp +127 -0
- data/src/cxx_supportlib/vendor-modified/boost/asio/detail/reactive_socket_send_op.hpp +122 -0
- data/src/cxx_supportlib/vendor-modified/boost/asio/detail/reactive_socket_sendto_op.hpp +125 -0
- data/src/cxx_supportlib/vendor-modified/boost/asio/detail/reactive_socket_service.hpp +460 -0
- data/src/cxx_supportlib/vendor-modified/boost/asio/detail/reactive_socket_service_base.hpp +452 -0
- data/src/cxx_supportlib/vendor-modified/boost/asio/detail/reactor.hpp +32 -0
- data/src/cxx_supportlib/vendor-modified/boost/asio/detail/reactor_fwd.hpp +42 -0
- data/src/cxx_supportlib/vendor-modified/boost/asio/detail/reactor_op.hpp +63 -0
- data/src/cxx_supportlib/vendor-modified/boost/asio/detail/reactor_op_queue.hpp +170 -0
- data/src/cxx_supportlib/vendor-modified/boost/asio/detail/regex_fwd.hpp +35 -0
- data/src/cxx_supportlib/vendor-modified/boost/asio/detail/resolve_endpoint_op.hpp +123 -0
- data/src/cxx_supportlib/vendor-modified/boost/asio/detail/resolve_op.hpp +133 -0
- data/src/cxx_supportlib/vendor-modified/boost/asio/detail/resolver_service.hpp +131 -0
- data/src/cxx_supportlib/vendor-modified/boost/asio/detail/resolver_service_base.hpp +131 -0
- data/src/cxx_supportlib/vendor-modified/boost/asio/detail/scoped_lock.hpp +103 -0
- data/src/cxx_supportlib/vendor-modified/boost/asio/detail/scoped_ptr.hpp +81 -0
- data/src/cxx_supportlib/vendor-modified/boost/asio/detail/select_interrupter.hpp +48 -0
- data/src/cxx_supportlib/vendor-modified/boost/asio/detail/select_reactor.hpp +221 -0
- data/src/cxx_supportlib/vendor-modified/boost/asio/detail/service_registry.hpp +146 -0
- data/src/cxx_supportlib/vendor-modified/boost/asio/detail/shared_ptr.hpp +40 -0
- data/src/cxx_supportlib/vendor-modified/boost/asio/detail/signal_blocker.hpp +46 -0
- data/src/cxx_supportlib/vendor-modified/boost/asio/detail/signal_handler.hpp +84 -0
- data/src/cxx_supportlib/vendor-modified/boost/asio/detail/signal_init.hpp +49 -0
- data/src/cxx_supportlib/vendor-modified/boost/asio/detail/signal_op.hpp +51 -0
- data/src/cxx_supportlib/vendor-modified/boost/asio/detail/signal_set_service.hpp +218 -0
- data/src/cxx_supportlib/vendor-modified/boost/asio/detail/socket_holder.hpp +100 -0
- data/src/cxx_supportlib/vendor-modified/boost/asio/detail/socket_ops.hpp +336 -0
- data/src/cxx_supportlib/vendor-modified/boost/asio/detail/socket_option.hpp +318 -0
- data/src/cxx_supportlib/vendor-modified/boost/asio/detail/socket_select_interrupter.hpp +93 -0
- data/src/cxx_supportlib/vendor-modified/boost/asio/detail/socket_types.hpp +410 -0
- data/src/cxx_supportlib/vendor-modified/boost/asio/detail/solaris_fenced_block.hpp +63 -0
- data/src/cxx_supportlib/vendor-modified/boost/asio/detail/static_mutex.hpp +54 -0
- data/src/cxx_supportlib/vendor-modified/boost/asio/detail/std_event.hpp +178 -0
- data/src/cxx_supportlib/vendor-modified/boost/asio/detail/std_fenced_block.hpp +64 -0
- data/src/cxx_supportlib/vendor-modified/boost/asio/detail/std_mutex.hpp +75 -0
- data/src/cxx_supportlib/vendor-modified/boost/asio/detail/std_static_mutex.hpp +83 -0
- data/src/cxx_supportlib/vendor-modified/boost/asio/detail/std_thread.hpp +67 -0
- data/src/cxx_supportlib/vendor-modified/boost/asio/detail/strand_service.hpp +144 -0
- data/src/cxx_supportlib/vendor-modified/boost/asio/detail/task_io_service.hpp +203 -0
- data/src/cxx_supportlib/vendor-modified/boost/asio/detail/task_io_service_operation.hpp +78 -0
- data/src/cxx_supportlib/vendor-modified/boost/asio/detail/task_io_service_thread_info.hpp +42 -0
- data/src/cxx_supportlib/vendor-modified/boost/asio/detail/thread.hpp +58 -0
- data/src/cxx_supportlib/vendor-modified/boost/asio/detail/thread_info_base.hpp +93 -0
- data/src/cxx_supportlib/vendor-modified/boost/asio/detail/throw_error.hpp +55 -0
- data/src/cxx_supportlib/vendor-modified/boost/asio/detail/throw_exception.hpp +53 -0
- data/src/cxx_supportlib/vendor-modified/boost/asio/detail/timer_queue.hpp +333 -0
- data/src/cxx_supportlib/vendor-modified/boost/asio/detail/timer_queue_base.hpp +70 -0
- data/src/cxx_supportlib/vendor-modified/boost/asio/detail/timer_queue_ptime.hpp +95 -0
- data/src/cxx_supportlib/vendor-modified/boost/asio/detail/timer_queue_set.hpp +68 -0
- data/src/cxx_supportlib/vendor-modified/boost/asio/detail/timer_scheduler.hpp +35 -0
- data/src/cxx_supportlib/vendor-modified/boost/asio/detail/timer_scheduler_fwd.hpp +42 -0
- data/src/cxx_supportlib/vendor-modified/boost/asio/detail/tss_ptr.hpp +71 -0
- data/src/cxx_supportlib/vendor-modified/boost/asio/detail/type_traits.hpp +60 -0
- data/src/cxx_supportlib/vendor-modified/boost/asio/detail/variadic_templates.hpp +63 -0
- data/src/cxx_supportlib/vendor-modified/boost/asio/detail/wait_handler.hpp +85 -0
- data/src/cxx_supportlib/vendor-modified/boost/asio/detail/wait_op.hpp +47 -0
- data/src/cxx_supportlib/vendor-modified/boost/asio/detail/weak_ptr.hpp +40 -0
- data/src/cxx_supportlib/vendor-modified/boost/asio/detail/win_iocp_serial_port_service.hpp +230 -0
- data/src/cxx_supportlib/vendor-modified/boost/asio/detail/winsock_init.hpp +130 -0
- data/src/cxx_supportlib/vendor-modified/boost/asio/detail/wrapped_handler.hpp +293 -0
- data/src/cxx_supportlib/vendor-modified/boost/asio/error.hpp +345 -0
- data/src/cxx_supportlib/vendor-modified/boost/asio/generic/basic_endpoint.hpp +195 -0
- data/src/cxx_supportlib/vendor-modified/boost/asio/generic/datagram_protocol.hpp +125 -0
- data/src/cxx_supportlib/vendor-modified/boost/asio/generic/detail/endpoint.hpp +135 -0
- data/src/cxx_supportlib/vendor-modified/boost/asio/generic/detail/impl/endpoint.ipp +111 -0
- data/src/cxx_supportlib/vendor-modified/boost/asio/generic/raw_protocol.hpp +123 -0
- data/src/cxx_supportlib/vendor-modified/boost/asio/generic/seq_packet_protocol.hpp +124 -0
- data/src/cxx_supportlib/vendor-modified/boost/asio/generic/stream_protocol.hpp +129 -0
- data/src/cxx_supportlib/vendor-modified/boost/asio/handler_alloc_hook.hpp +83 -0
- data/src/cxx_supportlib/vendor-modified/boost/asio/handler_continuation_hook.hpp +56 -0
- data/src/cxx_supportlib/vendor-modified/boost/asio/handler_invoke_hook.hpp +87 -0
- data/src/cxx_supportlib/vendor-modified/boost/asio/handler_type.hpp +114 -0
- data/src/cxx_supportlib/vendor-modified/boost/asio/high_resolution_timer.hpp +65 -0
- data/src/cxx_supportlib/vendor-modified/boost/asio/impl/buffered_read_stream.hpp +360 -0
- data/src/cxx_supportlib/vendor-modified/boost/asio/impl/buffered_write_stream.hpp +340 -0
- data/src/cxx_supportlib/vendor-modified/boost/asio/impl/connect.hpp +432 -0
- data/src/cxx_supportlib/vendor-modified/boost/asio/impl/error.ipp +130 -0
- data/src/cxx_supportlib/vendor-modified/boost/asio/impl/handler_alloc_hook.ipp +79 -0
- data/src/cxx_supportlib/vendor-modified/boost/asio/impl/io_service.hpp +156 -0
- data/src/cxx_supportlib/vendor-modified/boost/asio/impl/io_service.ipp +157 -0
- data/src/cxx_supportlib/vendor-modified/boost/asio/impl/read.hpp +755 -0
- data/src/cxx_supportlib/vendor-modified/boost/asio/impl/read_at.hpp +812 -0
- data/src/cxx_supportlib/vendor-modified/boost/asio/impl/read_until.hpp +1149 -0
- data/src/cxx_supportlib/vendor-modified/boost/asio/impl/serial_port_base.hpp +61 -0
- data/src/cxx_supportlib/vendor-modified/boost/asio/impl/serial_port_base.ipp +556 -0
- data/src/cxx_supportlib/vendor-modified/boost/asio/impl/spawn.hpp +355 -0
- data/src/cxx_supportlib/vendor-modified/boost/asio/impl/src.cpp +25 -0
- data/src/cxx_supportlib/vendor-modified/boost/asio/impl/src.hpp +73 -0
- data/src/cxx_supportlib/vendor-modified/boost/asio/impl/use_future.hpp +179 -0
- data/src/cxx_supportlib/vendor-modified/boost/asio/impl/write.hpp +767 -0
- data/src/cxx_supportlib/vendor-modified/boost/asio/impl/write_at.hpp +827 -0
- data/src/cxx_supportlib/vendor-modified/boost/asio/io_service.hpp +772 -0
- data/src/cxx_supportlib/vendor-modified/boost/asio/ip/address.hpp +202 -0
- data/src/cxx_supportlib/vendor-modified/boost/asio/ip/address_v4.hpp +243 -0
- data/src/cxx_supportlib/vendor-modified/boost/asio/ip/address_v6.hpp +248 -0
- data/src/cxx_supportlib/vendor-modified/boost/asio/ip/basic_endpoint.hpp +265 -0
- data/src/cxx_supportlib/vendor-modified/boost/asio/ip/basic_resolver.hpp +270 -0
- data/src/cxx_supportlib/vendor-modified/boost/asio/ip/basic_resolver_entry.hpp +96 -0
- data/src/cxx_supportlib/vendor-modified/boost/asio/ip/basic_resolver_iterator.hpp +262 -0
- data/src/cxx_supportlib/vendor-modified/boost/asio/ip/basic_resolver_query.hpp +246 -0
- data/src/cxx_supportlib/vendor-modified/boost/asio/ip/detail/endpoint.hpp +141 -0
- data/src/cxx_supportlib/vendor-modified/boost/asio/ip/detail/impl/endpoint.ipp +206 -0
- data/src/cxx_supportlib/vendor-modified/boost/asio/ip/detail/socket_option.hpp +571 -0
- data/src/cxx_supportlib/vendor-modified/boost/asio/ip/host_name.hpp +44 -0
- data/src/cxx_supportlib/vendor-modified/boost/asio/ip/icmp.hpp +117 -0
- data/src/cxx_supportlib/vendor-modified/boost/asio/ip/impl/address.hpp +55 -0
- data/src/cxx_supportlib/vendor-modified/boost/asio/ip/impl/address.ipp +228 -0
- data/src/cxx_supportlib/vendor-modified/boost/asio/ip/impl/address_v4.hpp +55 -0
- data/src/cxx_supportlib/vendor-modified/boost/asio/ip/impl/address_v4.ipp +180 -0
- data/src/cxx_supportlib/vendor-modified/boost/asio/ip/impl/address_v6.hpp +55 -0
- data/src/cxx_supportlib/vendor-modified/boost/asio/ip/impl/address_v6.ipp +300 -0
- data/src/cxx_supportlib/vendor-modified/boost/asio/ip/impl/basic_endpoint.hpp +57 -0
- data/src/cxx_supportlib/vendor-modified/boost/asio/ip/impl/host_name.ipp +56 -0
- data/src/cxx_supportlib/vendor-modified/boost/asio/ip/multicast.hpp +193 -0
- data/src/cxx_supportlib/vendor-modified/boost/asio/ip/resolver_query_base.hpp +132 -0
- data/src/cxx_supportlib/vendor-modified/boost/asio/ip/resolver_service.hpp +178 -0
- data/src/cxx_supportlib/vendor-modified/boost/asio/ip/tcp.hpp +157 -0
- data/src/cxx_supportlib/vendor-modified/boost/asio/ip/udp.hpp +113 -0
- data/src/cxx_supportlib/vendor-modified/boost/asio/ip/unicast.hpp +72 -0
- data/src/cxx_supportlib/vendor-modified/boost/asio/ip/v6_only.hpp +71 -0
- data/src/cxx_supportlib/vendor-modified/boost/asio/is_read_buffered.hpp +61 -0
- data/src/cxx_supportlib/vendor-modified/boost/asio/is_write_buffered.hpp +61 -0
- data/src/cxx_supportlib/vendor-modified/boost/asio/local/basic_endpoint.hpp +241 -0
- data/src/cxx_supportlib/vendor-modified/boost/asio/local/connect_pair.hpp +106 -0
- data/src/cxx_supportlib/vendor-modified/boost/asio/local/datagram_protocol.hpp +82 -0
- data/src/cxx_supportlib/vendor-modified/boost/asio/local/detail/endpoint.hpp +135 -0
- data/src/cxx_supportlib/vendor-modified/boost/asio/local/detail/impl/endpoint.ipp +130 -0
- data/src/cxx_supportlib/vendor-modified/boost/asio/local/stream_protocol.hpp +92 -0
- data/src/cxx_supportlib/vendor-modified/boost/asio/placeholders.hpp +125 -0
- data/src/cxx_supportlib/vendor-modified/boost/asio/posix/basic_descriptor.hpp +492 -0
- data/src/cxx_supportlib/vendor-modified/boost/asio/posix/basic_stream_descriptor.hpp +364 -0
- data/src/cxx_supportlib/vendor-modified/boost/asio/posix/descriptor_base.hpp +99 -0
- data/src/cxx_supportlib/vendor-modified/boost/asio/posix/stream_descriptor.hpp +39 -0
- data/src/cxx_supportlib/vendor-modified/boost/asio/posix/stream_descriptor_service.hpp +262 -0
- data/src/cxx_supportlib/vendor-modified/boost/asio/raw_socket_service.hpp +438 -0
- data/src/cxx_supportlib/vendor-modified/boost/asio/read.hpp +633 -0
- data/src/cxx_supportlib/vendor-modified/boost/asio/read_at.hpp +666 -0
- data/src/cxx_supportlib/vendor-modified/boost/asio/read_until.hpp +925 -0
- data/src/cxx_supportlib/vendor-modified/boost/asio/seq_packet_socket_service.hpp +386 -0
- data/src/cxx_supportlib/vendor-modified/boost/asio/serial_port.hpp +38 -0
- data/src/cxx_supportlib/vendor-modified/boost/asio/serial_port_base.hpp +169 -0
- data/src/cxx_supportlib/vendor-modified/boost/asio/serial_port_service.hpp +255 -0
- data/src/cxx_supportlib/vendor-modified/boost/asio/signal_set.hpp +30 -0
- data/src/cxx_supportlib/vendor-modified/boost/asio/signal_set_service.hpp +136 -0
- data/src/cxx_supportlib/vendor-modified/boost/asio/socket_acceptor_service.hpp +308 -0
- data/src/cxx_supportlib/vendor-modified/boost/asio/socket_base.hpp +522 -0
- data/src/cxx_supportlib/vendor-modified/boost/asio/spawn.hpp +267 -0
- data/src/cxx_supportlib/vendor-modified/boost/asio/ssl.hpp +30 -0
- data/src/cxx_supportlib/vendor-modified/boost/asio/ssl/basic_context.hpp +42 -0
- data/src/cxx_supportlib/vendor-modified/boost/asio/ssl/context.hpp +789 -0
- data/src/cxx_supportlib/vendor-modified/boost/asio/ssl/context_base.hpp +194 -0
- data/src/cxx_supportlib/vendor-modified/boost/asio/ssl/context_service.hpp +42 -0
- data/src/cxx_supportlib/vendor-modified/boost/asio/ssl/detail/buffered_handshake_op.hpp +112 -0
- data/src/cxx_supportlib/vendor-modified/boost/asio/ssl/detail/engine.hpp +166 -0
- data/src/cxx_supportlib/vendor-modified/boost/asio/ssl/detail/handshake_op.hpp +70 -0
- data/src/cxx_supportlib/vendor-modified/boost/asio/ssl/detail/impl/engine.ipp +327 -0
- data/src/cxx_supportlib/vendor-modified/boost/asio/ssl/detail/impl/openssl_init.ipp +166 -0
- data/src/cxx_supportlib/vendor-modified/boost/asio/ssl/detail/io.hpp +351 -0
- data/src/cxx_supportlib/vendor-modified/boost/asio/ssl/detail/openssl_init.hpp +103 -0
- data/src/cxx_supportlib/vendor-modified/boost/asio/ssl/detail/openssl_types.hpp +30 -0
- data/src/cxx_supportlib/vendor-modified/boost/asio/ssl/detail/password_callback.hpp +74 -0
- data/src/cxx_supportlib/vendor-modified/boost/asio/ssl/detail/read_op.hpp +75 -0
- data/src/cxx_supportlib/vendor-modified/boost/asio/ssl/detail/shutdown_op.hpp +62 -0
- data/src/cxx_supportlib/vendor-modified/boost/asio/ssl/detail/stream_core.hpp +128 -0
- data/src/cxx_supportlib/vendor-modified/boost/asio/ssl/detail/verify_callback.hpp +70 -0
- data/src/cxx_supportlib/vendor-modified/boost/asio/ssl/detail/write_op.hpp +75 -0
- data/src/cxx_supportlib/vendor-modified/boost/asio/ssl/error.hpp +115 -0
- data/src/cxx_supportlib/vendor-modified/boost/asio/ssl/impl/context.hpp +73 -0
- data/src/cxx_supportlib/vendor-modified/boost/asio/ssl/impl/context.ipp +1177 -0
- data/src/cxx_supportlib/vendor-modified/boost/asio/ssl/impl/error.ipp +102 -0
- data/src/cxx_supportlib/vendor-modified/boost/asio/ssl/impl/rfc2818_verification.ipp +168 -0
- data/src/cxx_supportlib/vendor-modified/boost/asio/ssl/impl/src.hpp +28 -0
- data/src/cxx_supportlib/vendor-modified/boost/asio/ssl/old/basic_context.hpp +436 -0
- data/src/cxx_supportlib/vendor-modified/boost/asio/ssl/old/context_service.hpp +176 -0
- data/src/cxx_supportlib/vendor-modified/boost/asio/ssl/old/detail/openssl_context_service.hpp +396 -0
- data/src/cxx_supportlib/vendor-modified/boost/asio/ssl/old/detail/openssl_operation.hpp +526 -0
- data/src/cxx_supportlib/vendor-modified/boost/asio/ssl/old/detail/openssl_stream_service.hpp +573 -0
- data/src/cxx_supportlib/vendor-modified/boost/asio/ssl/old/stream.hpp +503 -0
- data/src/cxx_supportlib/vendor-modified/boost/asio/ssl/old/stream_service.hpp +186 -0
- data/src/cxx_supportlib/vendor-modified/boost/asio/ssl/rfc2818_verification.hpp +102 -0
- data/src/cxx_supportlib/vendor-modified/boost/asio/ssl/stream.hpp +758 -0
- data/src/cxx_supportlib/vendor-modified/boost/asio/ssl/stream_base.hpp +54 -0
- data/src/cxx_supportlib/vendor-modified/boost/asio/ssl/stream_service.hpp +42 -0
- data/src/cxx_supportlib/vendor-modified/boost/asio/ssl/verify_context.hpp +75 -0
- data/src/cxx_supportlib/vendor-modified/boost/asio/ssl/verify_mode.hpp +65 -0
- data/src/cxx_supportlib/vendor-modified/boost/asio/steady_timer.hpp +63 -0
- data/src/cxx_supportlib/vendor-modified/boost/asio/strand.hpp +254 -0
- data/src/cxx_supportlib/vendor-modified/boost/asio/stream_socket_service.hpp +382 -0
- data/src/cxx_supportlib/vendor-modified/boost/asio/streambuf.hpp +35 -0
- data/src/cxx_supportlib/vendor-modified/boost/asio/system_timer.hpp +59 -0
- data/src/cxx_supportlib/vendor-modified/boost/asio/time_traits.hpp +88 -0
- data/src/cxx_supportlib/vendor-modified/boost/asio/unyield.hpp +21 -0
- data/src/cxx_supportlib/vendor-modified/boost/asio/use_future.hpp +94 -0
- data/src/cxx_supportlib/vendor-modified/boost/asio/version.hpp +23 -0
- data/src/cxx_supportlib/vendor-modified/boost/asio/wait_traits.hpp +43 -0
- data/src/cxx_supportlib/vendor-modified/boost/asio/waitable_timer_service.hpp +170 -0
- data/src/cxx_supportlib/vendor-modified/boost/asio/windows/basic_handle.hpp +283 -0
- data/src/cxx_supportlib/vendor-modified/boost/asio/windows/basic_object_handle.hpp +180 -0
- data/src/cxx_supportlib/vendor-modified/boost/asio/windows/basic_random_access_handle.hpp +378 -0
- data/src/cxx_supportlib/vendor-modified/boost/asio/windows/basic_stream_handle.hpp +361 -0
- data/src/cxx_supportlib/vendor-modified/boost/asio/windows/object_handle.hpp +40 -0
- data/src/cxx_supportlib/vendor-modified/boost/asio/windows/object_handle_service.hpp +179 -0
- data/src/cxx_supportlib/vendor-modified/boost/asio/windows/overlapped_ptr.hpp +118 -0
- data/src/cxx_supportlib/vendor-modified/boost/asio/windows/random_access_handle.hpp +39 -0
- data/src/cxx_supportlib/vendor-modified/boost/asio/windows/random_access_handle_service.hpp +222 -0
- data/src/cxx_supportlib/vendor-modified/boost/asio/windows/stream_handle.hpp +39 -0
- data/src/cxx_supportlib/vendor-modified/boost/asio/windows/stream_handle_service.hpp +220 -0
- data/src/cxx_supportlib/vendor-modified/boost/asio/write.hpp +620 -0
- data/src/cxx_supportlib/vendor-modified/boost/asio/write_at.hpp +672 -0
- data/src/cxx_supportlib/vendor-modified/boost/asio/yield.hpp +23 -0
- data/src/cxx_supportlib/vendor-modified/boost/chrono.hpp +20 -0
- data/src/cxx_supportlib/vendor-modified/boost/chrono/chrono.hpp +15 -0
- data/src/cxx_supportlib/vendor-modified/boost/chrono/chrono_io.hpp +34 -0
- data/src/cxx_supportlib/vendor-modified/boost/chrono/detail/inlined/chrono.hpp +46 -0
- data/src/cxx_supportlib/vendor-modified/boost/chrono/detail/inlined/mac/chrono.hpp +242 -0
- data/src/cxx_supportlib/vendor-modified/boost/chrono/detail/inlined/mac/process_cpu_clocks.hpp +356 -0
- data/src/cxx_supportlib/vendor-modified/boost/chrono/detail/inlined/mac/thread_clock.hpp +92 -0
- data/src/cxx_supportlib/vendor-modified/boost/chrono/detail/inlined/posix/chrono.hpp +121 -0
- data/src/cxx_supportlib/vendor-modified/boost/chrono/detail/inlined/posix/process_cpu_clocks.hpp +354 -0
- data/src/cxx_supportlib/vendor-modified/boost/chrono/detail/inlined/posix/thread_clock.hpp +92 -0
- data/src/cxx_supportlib/vendor-modified/boost/chrono/detail/inlined/process_cpu_clocks.hpp +46 -0
- data/src/cxx_supportlib/vendor-modified/boost/chrono/detail/inlined/thread_clock.hpp +46 -0
- data/src/cxx_supportlib/vendor-modified/boost/chrono/detail/no_warning/signed_unsigned_cmp.hpp +54 -0
- data/src/cxx_supportlib/vendor-modified/boost/chrono/detail/scan_keyword.hpp +163 -0
- data/src/cxx_supportlib/vendor-modified/boost/chrono/floor.hpp +36 -0
- data/src/cxx_supportlib/vendor-modified/boost/chrono/include.hpp +23 -0
- data/src/cxx_supportlib/vendor-modified/boost/chrono/io/duration_get.hpp +593 -0
- data/src/cxx_supportlib/vendor-modified/boost/chrono/io/duration_io.hpp +295 -0
- data/src/cxx_supportlib/vendor-modified/boost/chrono/io/duration_put.hpp +317 -0
- data/src/cxx_supportlib/vendor-modified/boost/chrono/io/duration_style.hpp +35 -0
- data/src/cxx_supportlib/vendor-modified/boost/chrono/io/duration_units.hpp +1003 -0
- data/src/cxx_supportlib/vendor-modified/boost/chrono/io/ios_base_state.hpp +152 -0
- data/src/cxx_supportlib/vendor-modified/boost/chrono/io/time_point_get.hpp +330 -0
- data/src/cxx_supportlib/vendor-modified/boost/chrono/io/time_point_io.hpp +1243 -0
- data/src/cxx_supportlib/vendor-modified/boost/chrono/io/time_point_put.hpp +261 -0
- data/src/cxx_supportlib/vendor-modified/boost/chrono/io/time_point_units.hpp +260 -0
- data/src/cxx_supportlib/vendor-modified/boost/chrono/io/timezone.hpp +30 -0
- data/src/cxx_supportlib/vendor-modified/boost/chrono/io/utility/ios_base_state_ptr.hpp +437 -0
- data/src/cxx_supportlib/vendor-modified/boost/chrono/io/utility/manip_base.hpp +101 -0
- data/src/cxx_supportlib/vendor-modified/boost/chrono/io/utility/to_string.hpp +50 -0
- data/src/cxx_supportlib/vendor-modified/boost/chrono/io_v1/chrono_io.hpp +637 -0
- data/src/cxx_supportlib/vendor-modified/boost/chrono/process_cpu_clocks.hpp +525 -0
- data/src/cxx_supportlib/vendor-modified/boost/chrono/round.hpp +59 -0
- data/src/cxx_supportlib/vendor-modified/boost/chrono/thread_clock.hpp +75 -0
- data/src/cxx_supportlib/vendor-modified/boost/chrono/typeof/boost/chrono/chrono.hpp +32 -0
- data/src/cxx_supportlib/vendor-modified/boost/chrono/typeof/boost/ratio.hpp +24 -0
- data/src/cxx_supportlib/vendor-modified/boost/detail/atomic_count.hpp +21 -0
- data/src/cxx_supportlib/vendor-modified/boost/integer/common_factor.hpp +16 -0
- data/src/cxx_supportlib/vendor-modified/boost/integer/common_factor_rt.hpp +460 -0
- data/src/cxx_supportlib/vendor-modified/boost/integer/integer_log2.hpp +112 -0
- data/src/cxx_supportlib/vendor-modified/boost/integer/integer_mask.hpp +126 -0
- data/src/cxx_supportlib/vendor-modified/boost/integer/static_min_max.hpp +51 -0
- data/src/cxx_supportlib/vendor-modified/boost/libs/chrono/src/chrono.cpp +15 -0
- data/src/cxx_supportlib/vendor-modified/boost/libs/chrono/src/process_cpu_clocks.cpp +18 -0
- data/src/cxx_supportlib/vendor-modified/boost/libs/chrono/src/thread_clock.cpp +19 -0
- data/src/cxx_supportlib/vendor-modified/boost/libs/random/src/random_device.cpp +250 -0
- data/src/cxx_supportlib/vendor-modified/boost/pointer_cast.hpp +121 -0
- data/src/cxx_supportlib/vendor-modified/boost/random.hpp +91 -0
- data/src/cxx_supportlib/vendor-modified/boost/random/additive_combine.hpp +283 -0
- data/src/cxx_supportlib/vendor-modified/boost/random/bernoulli_distribution.hpp +197 -0
- data/src/cxx_supportlib/vendor-modified/boost/random/beta_distribution.hpp +184 -0
- data/src/cxx_supportlib/vendor-modified/boost/random/binomial_distribution.hpp +434 -0
- data/src/cxx_supportlib/vendor-modified/boost/random/cauchy_distribution.hpp +214 -0
- data/src/cxx_supportlib/vendor-modified/boost/random/chi_squared_distribution.hpp +209 -0
- data/src/cxx_supportlib/vendor-modified/boost/random/detail/auto_link.hpp +40 -0
- data/src/cxx_supportlib/vendor-modified/boost/random/detail/config.hpp +18 -0
- data/src/cxx_supportlib/vendor-modified/boost/random/detail/const_mod.hpp +216 -0
- data/src/cxx_supportlib/vendor-modified/boost/random/detail/disable_warnings.hpp +29 -0
- data/src/cxx_supportlib/vendor-modified/boost/random/detail/enable_warnings.hpp +22 -0
- data/src/cxx_supportlib/vendor-modified/boost/random/detail/generator_bits.hpp +36 -0
- data/src/cxx_supportlib/vendor-modified/boost/random/detail/generator_seed_seq.hpp +40 -0
- data/src/cxx_supportlib/vendor-modified/boost/random/detail/int_float_pair.hpp +121 -0
- data/src/cxx_supportlib/vendor-modified/boost/random/detail/integer_log2.hpp +84 -0
- data/src/cxx_supportlib/vendor-modified/boost/random/detail/iterator_mixin.hpp +45 -0
- data/src/cxx_supportlib/vendor-modified/boost/random/detail/large_arithmetic.hpp +122 -0
- data/src/cxx_supportlib/vendor-modified/boost/random/detail/operators.hpp +84 -0
- data/src/cxx_supportlib/vendor-modified/boost/random/detail/polynomial.hpp +384 -0
- data/src/cxx_supportlib/vendor-modified/boost/random/detail/ptr_helper.hpp +67 -0
- data/src/cxx_supportlib/vendor-modified/boost/random/detail/seed.hpp +115 -0
- data/src/cxx_supportlib/vendor-modified/boost/random/detail/seed_impl.hpp +398 -0
- data/src/cxx_supportlib/vendor-modified/boost/random/detail/signed_unsigned_tools.hpp +89 -0
- data/src/cxx_supportlib/vendor-modified/boost/random/detail/uniform_int_float.hpp +76 -0
- data/src/cxx_supportlib/vendor-modified/boost/random/detail/vector_io.hpp +75 -0
- data/src/cxx_supportlib/vendor-modified/boost/random/discard_block.hpp +241 -0
- data/src/cxx_supportlib/vendor-modified/boost/random/discrete_distribution.hpp +636 -0
- data/src/cxx_supportlib/vendor-modified/boost/random/exponential_distribution.hpp +386 -0
- data/src/cxx_supportlib/vendor-modified/boost/random/extreme_value_distribution.hpp +177 -0
- data/src/cxx_supportlib/vendor-modified/boost/random/fisher_f_distribution.hpp +183 -0
- data/src/cxx_supportlib/vendor-modified/boost/random/gamma_distribution.hpp +292 -0
- data/src/cxx_supportlib/vendor-modified/boost/random/generate_canonical.hpp +96 -0
- data/src/cxx_supportlib/vendor-modified/boost/random/geometric_distribution.hpp +267 -0
- data/src/cxx_supportlib/vendor-modified/boost/random/hyperexponential_distribution.hpp +883 -0
- data/src/cxx_supportlib/vendor-modified/boost/random/independent_bits.hpp +271 -0
- data/src/cxx_supportlib/vendor-modified/boost/random/inversive_congruential.hpp +267 -0
- data/src/cxx_supportlib/vendor-modified/boost/random/lagged_fibonacci.hpp +537 -0
- data/src/cxx_supportlib/vendor-modified/boost/random/laplace_distribution.hpp +175 -0
- data/src/cxx_supportlib/vendor-modified/boost/random/linear_congruential.hpp +466 -0
- data/src/cxx_supportlib/vendor-modified/boost/random/linear_feedback_shift.hpp +217 -0
- data/src/cxx_supportlib/vendor-modified/boost/random/lognormal_distribution.hpp +254 -0
- data/src/cxx_supportlib/vendor-modified/boost/random/mersenne_twister.hpp +682 -0
- data/src/cxx_supportlib/vendor-modified/boost/random/negative_binomial_distribution.hpp +220 -0
- data/src/cxx_supportlib/vendor-modified/boost/random/non_central_chi_squared_distribution.hpp +221 -0
- data/src/cxx_supportlib/vendor-modified/boost/random/normal_distribution.hpp +374 -0
- data/src/cxx_supportlib/vendor-modified/boost/random/piecewise_constant_distribution.hpp +466 -0
- data/src/cxx_supportlib/vendor-modified/boost/random/piecewise_linear_distribution.hpp +531 -0
- data/src/cxx_supportlib/vendor-modified/boost/random/poisson_distribution.hpp +360 -0
- data/src/cxx_supportlib/vendor-modified/boost/random/random_device.hpp +143 -0
- data/src/cxx_supportlib/vendor-modified/boost/random/random_number_generator.hpp +73 -0
- data/src/cxx_supportlib/vendor-modified/boost/random/ranlux.hpp +99 -0
- data/src/cxx_supportlib/vendor-modified/boost/random/seed_seq.hpp +118 -0
- data/src/cxx_supportlib/vendor-modified/boost/random/shuffle_order.hpp +269 -0
- data/src/cxx_supportlib/vendor-modified/boost/random/shuffle_output.hpp +51 -0
- data/src/cxx_supportlib/vendor-modified/boost/random/student_t_distribution.hpp +180 -0
- data/src/cxx_supportlib/vendor-modified/boost/random/subtract_with_carry.hpp +613 -0
- data/src/cxx_supportlib/vendor-modified/boost/random/taus88.hpp +45 -0
- data/src/cxx_supportlib/vendor-modified/boost/random/traits.hpp +107 -0
- data/src/cxx_supportlib/vendor-modified/boost/random/triangle_distribution.hpp +232 -0
- data/src/cxx_supportlib/vendor-modified/boost/random/uniform_01.hpp +257 -0
- data/src/cxx_supportlib/vendor-modified/boost/random/uniform_int.hpp +99 -0
- data/src/cxx_supportlib/vendor-modified/boost/random/uniform_int_distribution.hpp +419 -0
- data/src/cxx_supportlib/vendor-modified/boost/random/uniform_on_sphere.hpp +284 -0
- data/src/cxx_supportlib/vendor-modified/boost/random/uniform_real.hpp +82 -0
- data/src/cxx_supportlib/vendor-modified/boost/random/uniform_real_distribution.hpp +241 -0
- data/src/cxx_supportlib/vendor-modified/boost/random/uniform_smallint.hpp +307 -0
- data/src/cxx_supportlib/vendor-modified/boost/random/variate_generator.hpp +122 -0
- data/src/cxx_supportlib/vendor-modified/boost/random/weibull_distribution.hpp +177 -0
- data/src/cxx_supportlib/vendor-modified/boost/random/xor_combine.hpp +208 -0
- data/src/cxx_supportlib/vendor-modified/boost/ratio.hpp +14 -0
- data/src/cxx_supportlib/vendor-modified/boost/ratio/detail/ratio_io.hpp +1342 -0
- data/src/cxx_supportlib/vendor-modified/boost/ratio/include.hpp +16 -0
- data/src/cxx_supportlib/vendor-modified/boost/ratio/mpl/abs.hpp +30 -0
- data/src/cxx_supportlib/vendor-modified/boost/ratio/mpl/arithmetic.hpp +22 -0
- data/src/cxx_supportlib/vendor-modified/boost/ratio/mpl/comparison.hpp +19 -0
- data/src/cxx_supportlib/vendor-modified/boost/ratio/mpl/divides.hpp +30 -0
- data/src/cxx_supportlib/vendor-modified/boost/ratio/mpl/equal_to.hpp +30 -0
- data/src/cxx_supportlib/vendor-modified/boost/ratio/mpl/gcd.hpp +30 -0
- data/src/cxx_supportlib/vendor-modified/boost/ratio/mpl/greater.hpp +30 -0
- data/src/cxx_supportlib/vendor-modified/boost/ratio/mpl/greater_equal.hpp +30 -0
- data/src/cxx_supportlib/vendor-modified/boost/ratio/mpl/lcm.hpp +30 -0
- data/src/cxx_supportlib/vendor-modified/boost/ratio/mpl/less.hpp +30 -0
- data/src/cxx_supportlib/vendor-modified/boost/ratio/mpl/less_equal.hpp +30 -0
- data/src/cxx_supportlib/vendor-modified/boost/ratio/mpl/minus.hpp +30 -0
- data/src/cxx_supportlib/vendor-modified/boost/ratio/mpl/negate.hpp +30 -0
- data/src/cxx_supportlib/vendor-modified/boost/ratio/mpl/not_equal_to.hpp +30 -0
- data/src/cxx_supportlib/vendor-modified/boost/ratio/mpl/numeric_cast.hpp +31 -0
- data/src/cxx_supportlib/vendor-modified/boost/ratio/mpl/plus.hpp +30 -0
- data/src/cxx_supportlib/vendor-modified/boost/ratio/mpl/rational_c_tag.hpp +25 -0
- data/src/cxx_supportlib/vendor-modified/boost/ratio/mpl/rational_constant.hpp +15 -0
- data/src/cxx_supportlib/vendor-modified/boost/ratio/mpl/sign.hpp +30 -0
- data/src/cxx_supportlib/vendor-modified/boost/ratio/mpl/times.hpp +30 -0
- data/src/cxx_supportlib/vendor-modified/boost/ratio/ratio_io.hpp +1076 -0
- data/src/cxx_supportlib/vendor-modified/boost/rational.hpp +1002 -0
- data/src/cxx_supportlib/vendor-modified/modp_b64.cpp +11 -0
- data/src/helper-scripts/rack-preloader.rb +1 -1
- data/src/nginx_module/{ConfigurationCommands.c → ConfigGeneral/AutoGeneratedDefinitions.c} +351 -134
- data/src/nginx_module/{ConfigurationCommands.c.cxxcodebuilder → ConfigGeneral/AutoGeneratedDefinitions.c.cxxcodebuilder} +14 -25
- data/src/nginx_module/ConfigGeneral/AutoGeneratedManifestDefaultsInitialization.c +396 -0
- data/src/nginx_module/ConfigGeneral/AutoGeneratedManifestDefaultsInitialization.c.cxxcodebuilder +160 -0
- data/src/nginx_module/ConfigGeneral/AutoGeneratedSetterFuncs.c +831 -0
- data/src/nginx_module/ConfigGeneral/AutoGeneratedSetterFuncs.c.cxxcodebuilder +168 -0
- data/src/nginx_module/ConfigGeneral/ManifestGeneration.c +887 -0
- data/src/nginx_module/ConfigGeneral/ManifestGeneration.h +100 -0
- data/src/nginx_module/Configuration.c +165 -621
- data/src/nginx_module/Configuration.h +43 -33
- data/src/nginx_module/ContentHandler.c +46 -40
- data/src/nginx_module/LocationConfig/AutoGeneratedCreateFunction.c +282 -0
- data/src/nginx_module/{CreateLocationConfig.c.cxxcodebuilder → LocationConfig/AutoGeneratedCreateFunction.c.cxxcodebuilder} +43 -17
- data/src/nginx_module/{CacheLocationConfig.c → LocationConfig/AutoGeneratedHeaderSerialization.c} +148 -180
- data/src/nginx_module/{CacheLocationConfig.c.cxxcodebuilder → LocationConfig/AutoGeneratedHeaderSerialization.c.cxxcodebuilder} +13 -11
- data/src/nginx_module/LocationConfig/AutoGeneratedManifestGeneration.c +595 -0
- data/src/nginx_module/LocationConfig/AutoGeneratedManifestGeneration.c.cxxcodebuilder +190 -0
- data/src/nginx_module/{MergeLocationConfig.c → LocationConfig/AutoGeneratedMergeFunction.c} +32 -42
- data/src/nginx_module/{MergeLocationConfig.c.cxxcodebuilder → LocationConfig/AutoGeneratedMergeFunction.c.cxxcodebuilder} +18 -11
- data/src/nginx_module/LocationConfig/AutoGeneratedStruct.h +220 -0
- data/src/nginx_module/{LocationConfig.h.cxxcodebuilder → LocationConfig/AutoGeneratedStruct.h.cxxcodebuilder} +70 -48
- data/src/nginx_module/MainConfig/AutoGeneratedCreateFunction.c +163 -0
- data/src/nginx_module/MainConfig/AutoGeneratedCreateFunction.c.cxxcodebuilder +125 -0
- data/src/nginx_module/MainConfig/AutoGeneratedManifestGeneration.c +303 -0
- data/src/nginx_module/MainConfig/AutoGeneratedManifestGeneration.c.cxxcodebuilder +173 -0
- data/src/nginx_module/MainConfig/AutoGeneratedStruct.h +133 -0
- data/src/nginx_module/MainConfig/AutoGeneratedStruct.h.cxxcodebuilder +154 -0
- data/src/nginx_module/config +13 -4
- data/src/nginx_module/ngx_http_passenger_module.c +154 -84
- data/src/ruby_supportlib/phusion_passenger.rb +2 -2
- data/src/ruby_supportlib/phusion_passenger/apache2/config_options.rb +613 -131
- data/src/ruby_supportlib/phusion_passenger/apache2/config_utils.rb +52 -0
- data/src/ruby_supportlib/phusion_passenger/common_library.rb +18 -4
- data/src/ruby_supportlib/phusion_passenger/config/main.rb +2 -0
- data/src/ruby_supportlib/phusion_passenger/config/system_properties_command.rb +104 -0
- data/src/ruby_supportlib/phusion_passenger/constants.rb +0 -2
- data/src/ruby_supportlib/phusion_passenger/nginx/config_options.rb +470 -138
- data/src/ruby_supportlib/phusion_passenger/packaging.rb +1 -0
- data/src/ruby_supportlib/phusion_passenger/platform_info.rb +17 -0
- data/src/ruby_supportlib/phusion_passenger/platform_info/apache.rb +11 -1
- data/src/ruby_supportlib/phusion_passenger/platform_info/compiler.rb +7 -7
- data/src/ruby_supportlib/phusion_passenger/platform_info/networking.rb +293 -0
- data/src/ruby_supportlib/phusion_passenger/standalone/config_options_list.rb +8 -54
- data/src/ruby_supportlib/phusion_passenger/standalone/start_command.rb +1 -5
- data/src/ruby_supportlib/phusion_passenger/standalone/start_command/builtin_engine.rb +4 -7
- data/src/ruby_supportlib/phusion_passenger/vendor/daemon_controller.rb +1 -1
- data/src/schema_printer/SchemaPrinterMain.cpp +78 -0
- data/src/schema_printer/SchemaPrinterMain.cpp.cxxcodebuilder +116 -0
- metadata +671 -30
- data/src/apache2_module/Configuration.cpp +0 -737
- data/src/apache2_module/Configuration.hpp +0 -274
- data/src/apache2_module/ConfigurationCommands.cpp +0 -199
- data/src/apache2_module/ConfigurationFields.hpp +0 -187
- data/src/apache2_module/ConfigurationSetters.cpp +0 -436
- data/src/apache2_module/ConfigurationSetters.cpp.cxxcodebuilder +0 -144
- data/src/apache2_module/CreateDirConfig.cpp +0 -68
- data/src/apache2_module/CreateDirConfig.cpp.cxxcodebuilder +0 -81
- data/src/apache2_module/MergeDirConfig.cpp +0 -155
- data/src/apache2_module/SetHeaders.cpp +0 -111
- data/src/nginx_module/CreateLocationConfig.c +0 -100
- data/src/nginx_module/LocationConfig.h +0 -95
@@ -303,11 +303,13 @@ void processAndLogNewSpawnException(SpawnException &e, const Options &options,
|
|
303
303
|
stream << " Message from application: " << appMessage << "\n";
|
304
304
|
P_ERROR(stream.str());
|
305
305
|
|
306
|
-
|
306
|
+
ScopedLock l(config->agentConfigSyncher);
|
307
|
+
if (!config->agentConfig.isNull()) {
|
307
308
|
HookScriptOptions hOptions;
|
308
309
|
hOptions.name = "spawn_failed";
|
309
|
-
hOptions.spec = config->
|
310
|
-
hOptions.
|
310
|
+
hOptions.spec = config->agentConfig.get("hook_spawn_failed", Json::Value()).asString();
|
311
|
+
hOptions.agentConfig = config->agentConfig;
|
312
|
+
l.unlock();
|
311
313
|
hOptions.environment.push_back(make_pair("PASSENGER_APP_ROOT", options.appRoot));
|
312
314
|
hOptions.environment.push_back(make_pair("PASSENGER_APP_GROUP_NAME", options.getAppGroupName()));
|
313
315
|
hOptions.environment.push_back(make_pair("PASSENGER_ERROR_MESSAGE", e.what()));
|
@@ -35,6 +35,7 @@
|
|
35
35
|
#include <Constants.h>
|
36
36
|
#include <ResourceLocator.h>
|
37
37
|
#include <StaticString.h>
|
38
|
+
#include <FileTools/PathManip.h>
|
38
39
|
#include <Utils.h>
|
39
40
|
#include <Core/UnionStation/Context.h>
|
40
41
|
#include <Core/UnionStation/Transaction.h>
|
@@ -190,14 +191,12 @@ public:
|
|
190
191
|
StaticString startCommand;
|
191
192
|
|
192
193
|
/** Filename of the application's startup file. Only actually used for
|
193
|
-
* determining user switching info. Only used during spawning
|
194
|
-
* if appType.empty(). */
|
194
|
+
* determining user switching info. Only used during spawning. */
|
195
195
|
StaticString startupFile;
|
196
196
|
|
197
197
|
/** The process title to assign to the application process. Only used
|
198
198
|
* during spawning. May be empty in which case no particular process
|
199
|
-
* title is assigned. Only used during spawning
|
200
|
-
* appType.empty(). */
|
199
|
+
* title is assigned. Only used during spawning. */
|
201
200
|
StaticString processTitle;
|
202
201
|
|
203
202
|
/**
|
@@ -472,7 +471,7 @@ public:
|
|
472
471
|
*/
|
473
472
|
Options()
|
474
473
|
: logLevel(DEFAULT_LOG_LEVEL),
|
475
|
-
startTimeout(
|
474
|
+
startTimeout(DEFAULT_START_TIMEOUT),
|
476
475
|
environment(DEFAULT_APP_ENV, sizeof(DEFAULT_APP_ENV) - 1),
|
477
476
|
baseURI("/", 1),
|
478
477
|
spawnMethod(DEFAULT_SPAWN_METHOD, sizeof(DEFAULT_SPAWN_METHOD) - 1),
|
@@ -494,7 +493,7 @@ public:
|
|
494
493
|
maxProcesses(0),
|
495
494
|
maxPreloaderIdleTime(-1),
|
496
495
|
maxOutOfBandWorkInstances(1),
|
497
|
-
maxRequestQueueSize(
|
496
|
+
maxRequestQueueSize(DEFAULT_MAX_REQUEST_QUEUE_SIZE),
|
498
497
|
abortWebsocketsOnProcessShutdown(true),
|
499
498
|
|
500
499
|
stickySessionId(0),
|
@@ -49,6 +49,7 @@
|
|
49
49
|
#include <sys/types.h>
|
50
50
|
#include <MemoryKit/palloc.h>
|
51
51
|
#include <LoggingKit/LoggingKit.h>
|
52
|
+
#include <ConfigKit/ConfigKit.h>
|
52
53
|
#include <Exceptions.h>
|
53
54
|
#include <Hooks.h>
|
54
55
|
#include <Utils/Lock.h>
|
@@ -126,6 +127,11 @@ public:
|
|
126
127
|
verbose(options.getBool("verbose", false, false))
|
127
128
|
{ }
|
128
129
|
|
130
|
+
InspectOptions(const Json::Value &options)
|
131
|
+
: colorize(options.get("colorize", false).asBool()),
|
132
|
+
verbose(options.get("verbose", false).asBool())
|
133
|
+
{ }
|
134
|
+
|
129
135
|
static InspectOptions makeAuthorized() {
|
130
136
|
InspectOptions options;
|
131
137
|
options.apiKey = ApiKey::makeSuper();
|
@@ -151,6 +157,48 @@ public:
|
|
151
157
|
}
|
152
158
|
};
|
153
159
|
|
160
|
+
struct ToJsonOptions: public AuthenticationOptions {
|
161
|
+
bool hasApplicationIdsFilter;
|
162
|
+
StringKeyTable<bool> applicationIdsFilter;
|
163
|
+
|
164
|
+
ToJsonOptions()
|
165
|
+
: hasApplicationIdsFilter(false),
|
166
|
+
applicationIdsFilter(0, 0)
|
167
|
+
{ }
|
168
|
+
|
169
|
+
void set(const Json::Value &_options) {
|
170
|
+
ConfigKit::Schema schema = createSchema();
|
171
|
+
ConfigKit::Store options(schema, _options);
|
172
|
+
|
173
|
+
if (!options["application_ids"].isNull()) {
|
174
|
+
hasApplicationIdsFilter = true;
|
175
|
+
applicationIdsFilter = StringKeyTable<bool>();
|
176
|
+
|
177
|
+
const Json::Value subdoc = options["application_ids"];
|
178
|
+
Json::Value::const_iterator it, end = subdoc.end();
|
179
|
+
for (it = subdoc.begin(); it != end; it++) {
|
180
|
+
applicationIdsFilter.insert(it->asString(), true);
|
181
|
+
}
|
182
|
+
}
|
183
|
+
}
|
184
|
+
|
185
|
+
static ConfigKit::Schema createSchema() {
|
186
|
+
using namespace ConfigKit;
|
187
|
+
ConfigKit::Schema schema;
|
188
|
+
|
189
|
+
schema.add("application_ids", STRING_ARRAY_TYPE, OPTIONAL);
|
190
|
+
|
191
|
+
schema.finalize();
|
192
|
+
return schema;
|
193
|
+
}
|
194
|
+
|
195
|
+
static ToJsonOptions makeAuthorized() {
|
196
|
+
ToJsonOptions options;
|
197
|
+
options.apiKey = ApiKey::makeSuper();
|
198
|
+
return options;
|
199
|
+
}
|
200
|
+
};
|
201
|
+
|
154
202
|
|
155
203
|
// Actually private, but marked public so that unit tests can access the fields.
|
156
204
|
public:
|
@@ -225,7 +273,7 @@ public:
|
|
225
273
|
*/
|
226
274
|
vector<GetWaiter> getWaitlist;
|
227
275
|
|
228
|
-
|
276
|
+
Json::Value agentConfig;
|
229
277
|
|
230
278
|
// Actually private, but marked public so that unit tests can access the fields.
|
231
279
|
public:
|
@@ -381,6 +429,12 @@ public:
|
|
381
429
|
|
382
430
|
/****** State inspection ******/
|
383
431
|
|
432
|
+
static Json::Value makeSingleValueJsonConfigFormat(const Json::Value &v,
|
433
|
+
const Json::Value &defaultValue = Json::Value());
|
434
|
+
static Json::Value makeSingleStrValueJsonConfigFormat(const StaticString &val);
|
435
|
+
static Json::Value makeSingleStrValueJsonConfigFormat(const StaticString &val,
|
436
|
+
const StaticString &defaultValue);
|
437
|
+
static Json::Value makeSingleNonEmptyStrValueJsonConfigFormat(const StaticString &val);
|
384
438
|
unsigned int capacityUsedUnlocked() const;
|
385
439
|
bool atFullCapacityUnlocked() const;
|
386
440
|
void inspectProcessList(const InspectOptions &options, stringstream &result,
|
@@ -394,7 +448,7 @@ public:
|
|
394
448
|
/****** Initialization and shutdown ******/
|
395
449
|
|
396
450
|
Pool(const SpawningKit::FactoryPtr &spawningKitFactory,
|
397
|
-
const
|
451
|
+
const Json::Value &agentConfig = Json::Value());
|
398
452
|
~Pool();
|
399
453
|
void initialize();
|
400
454
|
void initDebugging();
|
@@ -445,6 +499,8 @@ public:
|
|
445
499
|
bool lock = true) const;
|
446
500
|
string toXml(const ToXmlOptions &options = ToXmlOptions::makeAuthorized(),
|
447
501
|
bool lock = true) const;
|
502
|
+
Json::Value inspectPropertiesInAdminPanelFormat(const ToJsonOptions &options = ToJsonOptions::makeAuthorized()) const;
|
503
|
+
Json::Value inspectConfigInAdminPanelFormat(const ToJsonOptions &options = ToJsonOptions::makeAuthorized()) const;
|
448
504
|
|
449
505
|
|
450
506
|
/****** Miscellaneous ******/
|
@@ -454,6 +510,7 @@ public:
|
|
454
510
|
void setMax(unsigned int max);
|
455
511
|
void setMaxIdleTime(unsigned long long value);
|
456
512
|
void enableSelfChecking(bool enabled);
|
513
|
+
void setAgentConfig(const Json::Value &agentConfig);
|
457
514
|
bool isSpawning(bool lock = true) const;
|
458
515
|
bool authorizeByApiKey(const ApiKey &key, bool lock = true) const;
|
459
516
|
bool authorizeByUid(uid_t uid, bool lock = true) const;
|
@@ -80,12 +80,12 @@ bool
|
|
80
80
|
Pool::runHookScripts(const char *name,
|
81
81
|
const boost::function<void (HookScriptOptions &)> &setup) const
|
82
82
|
{
|
83
|
-
if (
|
83
|
+
if (!agentConfig.isNull()) {
|
84
84
|
string hookName = string("hook_") + name;
|
85
|
-
string spec =
|
85
|
+
string spec = agentConfig.get(hookName, Json::Value()).asString();
|
86
86
|
if (!spec.empty()) {
|
87
87
|
HookScriptOptions options;
|
88
|
-
options.
|
88
|
+
options.agentConfig = agentConfig;
|
89
89
|
options.name = name;
|
90
90
|
options.spec = spec;
|
91
91
|
setup(options);
|
@@ -39,13 +39,13 @@ using namespace boost;
|
|
39
39
|
|
40
40
|
|
41
41
|
Pool::Pool(const SpawningKit::FactoryPtr &spawningKitFactory,
|
42
|
-
const
|
42
|
+
const Json::Value &agentConfig)
|
43
43
|
: abortLongRunningConnectionsCallback(NULL)
|
44
44
|
{
|
45
45
|
context.setSpawningKitFactory(spawningKitFactory);
|
46
46
|
context.finalize();
|
47
47
|
|
48
|
-
this->
|
48
|
+
this->agentConfig = agentConfig;
|
49
49
|
|
50
50
|
try {
|
51
51
|
systemMetricsCollector.collect(systemMetrics);
|
@@ -250,6 +250,12 @@ Pool::isSpawning(bool lock) const {
|
|
250
250
|
return false;
|
251
251
|
}
|
252
252
|
|
253
|
+
void
|
254
|
+
Pool::setAgentConfig(const Json::Value &agentConfig) {
|
255
|
+
LockGuard l(syncher);
|
256
|
+
this->agentConfig = agentConfig;
|
257
|
+
}
|
258
|
+
|
253
259
|
bool
|
254
260
|
Pool::authorizeByApiKey(const ApiKey &key, bool lock) const {
|
255
261
|
return key.isSuper() || findGroupByApiKey(key.toStaticString(), lock) != NULL;
|
@@ -258,6 +258,135 @@ Pool::toXml(const ToXmlOptions &options, bool lock) const {
|
|
258
258
|
return result.str();
|
259
259
|
}
|
260
260
|
|
261
|
+
Json::Value
|
262
|
+
Pool::inspectPropertiesInAdminPanelFormat(const ToJsonOptions &options) const {
|
263
|
+
ScopedLock l(syncher);
|
264
|
+
Json::Value result(Json::objectValue);
|
265
|
+
GroupMap::ConstIterator g_it(groups);
|
266
|
+
ProcessList::const_iterator p_it;
|
267
|
+
|
268
|
+
if (!authorizeByUid(options.uid, false)
|
269
|
+
&& !authorizeByApiKey(options.apiKey, false))
|
270
|
+
{
|
271
|
+
throw SecurityException("Operation unauthorized");
|
272
|
+
}
|
273
|
+
|
274
|
+
while (*g_it != NULL) {
|
275
|
+
const GroupPtr &group = g_it.getValue();
|
276
|
+
|
277
|
+
if (options.hasApplicationIdsFilter) {
|
278
|
+
const bool *tmp;
|
279
|
+
if (!options.applicationIdsFilter.lookup(group->info.name, &tmp)) {
|
280
|
+
g_it.next();
|
281
|
+
continue;
|
282
|
+
}
|
283
|
+
}
|
284
|
+
|
285
|
+
if (!group->authorizeByUid(options.uid)
|
286
|
+
&& !group->authorizeByApiKey(options.apiKey))
|
287
|
+
{
|
288
|
+
g_it.next();
|
289
|
+
continue;
|
290
|
+
}
|
291
|
+
|
292
|
+
Json::Value groupDoc(Json::objectValue);
|
293
|
+
group->inspectPropertiesInAdminPanelFormat(groupDoc);
|
294
|
+
result[group->info.name] = groupDoc;
|
295
|
+
|
296
|
+
g_it.next();
|
297
|
+
}
|
298
|
+
|
299
|
+
return result;
|
300
|
+
}
|
301
|
+
|
302
|
+
Json::Value
|
303
|
+
Pool::inspectConfigInAdminPanelFormat(const ToJsonOptions &options) const {
|
304
|
+
ScopedLock l(syncher);
|
305
|
+
Json::Value result(Json::objectValue);
|
306
|
+
GroupMap::ConstIterator g_it(groups);
|
307
|
+
ProcessList::const_iterator p_it;
|
308
|
+
|
309
|
+
if (!authorizeByUid(options.uid, false)
|
310
|
+
&& !authorizeByApiKey(options.apiKey, false))
|
311
|
+
{
|
312
|
+
throw SecurityException("Operation unauthorized");
|
313
|
+
}
|
314
|
+
|
315
|
+
while (*g_it != NULL) {
|
316
|
+
const GroupPtr &group = g_it.getValue();
|
317
|
+
|
318
|
+
if (options.hasApplicationIdsFilter) {
|
319
|
+
const bool *tmp;
|
320
|
+
if (!options.applicationIdsFilter.lookup(group->info.name, &tmp)) {
|
321
|
+
g_it.next();
|
322
|
+
continue;
|
323
|
+
}
|
324
|
+
}
|
325
|
+
|
326
|
+
if (!group->authorizeByUid(options.uid)
|
327
|
+
&& !group->authorizeByApiKey(options.apiKey))
|
328
|
+
{
|
329
|
+
g_it.next();
|
330
|
+
continue;
|
331
|
+
}
|
332
|
+
|
333
|
+
Json::Value groupDoc(Json::objectValue);
|
334
|
+
group->inspectConfigInAdminPanelFormat(groupDoc);
|
335
|
+
result[group->info.name] = groupDoc;
|
336
|
+
|
337
|
+
g_it.next();
|
338
|
+
}
|
339
|
+
|
340
|
+
return result;
|
341
|
+
}
|
342
|
+
|
343
|
+
|
344
|
+
Json::Value
|
345
|
+
Pool::makeSingleValueJsonConfigFormat(const Json::Value &val, const Json::Value &defaultValue) {
|
346
|
+
Json::Value ary(Json::arrayValue);
|
347
|
+
|
348
|
+
if (val != defaultValue) {
|
349
|
+
Json::Value entry;
|
350
|
+
|
351
|
+
entry["value"] = val;
|
352
|
+
entry["source"]["type"] = "ephemeral";
|
353
|
+
|
354
|
+
ary.append(entry);
|
355
|
+
}
|
356
|
+
|
357
|
+
if (!defaultValue.isNull()) {
|
358
|
+
Json::Value entry;
|
359
|
+
|
360
|
+
entry["value"] = defaultValue;
|
361
|
+
entry["source"]["type"] = "default";
|
362
|
+
|
363
|
+
ary.append(entry);
|
364
|
+
}
|
365
|
+
|
366
|
+
return ary;
|
367
|
+
}
|
368
|
+
|
369
|
+
Json::Value
|
370
|
+
Pool::makeSingleStrValueJsonConfigFormat(const StaticString &val) {
|
371
|
+
return makeSingleValueJsonConfigFormat(
|
372
|
+
Json::Value(val.data(), val.data() + val.size()));
|
373
|
+
}
|
374
|
+
|
375
|
+
Json::Value
|
376
|
+
Pool::makeSingleStrValueJsonConfigFormat(const StaticString &val, const StaticString &defaultValue) {
|
377
|
+
return makeSingleValueJsonConfigFormat(
|
378
|
+
Json::Value(val.data(), val.data() + val.size()),
|
379
|
+
Json::Value(defaultValue.data(), defaultValue.data() + defaultValue.size()));
|
380
|
+
}
|
381
|
+
|
382
|
+
Json::Value
|
383
|
+
Pool::makeSingleNonEmptyStrValueJsonConfigFormat(const StaticString &val) {
|
384
|
+
if (val.empty()) {
|
385
|
+
return Json::arrayValue;
|
386
|
+
} else {
|
387
|
+
return makeSingleStrValueJsonConfigFormat(val);
|
388
|
+
}
|
389
|
+
}
|
261
390
|
|
262
391
|
unsigned int
|
263
392
|
Pool::capacityUsed() const {
|
@@ -0,0 +1,475 @@
|
|
1
|
+
/*
|
2
|
+
* Phusion Passenger - https://www.phusionpassenger.com/
|
3
|
+
* Copyright (c) 2011-2017 Phusion Holding B.V.
|
4
|
+
*
|
5
|
+
* "Passenger", "Phusion Passenger" and "Union Station" are registered
|
6
|
+
* trademarks of Phusion Holding B.V.
|
7
|
+
*
|
8
|
+
* Permission is hereby granted, free of charge, to any person obtaining a copy
|
9
|
+
* of this software and associated documentation files (the "Software"), to deal
|
10
|
+
* in the Software without restriction, including without limitation the rights
|
11
|
+
* to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
12
|
+
* copies of the Software, and to permit persons to whom the Software is
|
13
|
+
* furnished to do so, subject to the following conditions:
|
14
|
+
*
|
15
|
+
* The above copyright notice and this permission notice shall be included in
|
16
|
+
* all copies or substantial portions of the Software.
|
17
|
+
*
|
18
|
+
* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
19
|
+
* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
20
|
+
* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
21
|
+
* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
22
|
+
* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
23
|
+
* OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
|
24
|
+
* THE SOFTWARE.
|
25
|
+
*/
|
26
|
+
|
27
|
+
#ifndef _PASSENGER_CORE_CONFIG_H_
|
28
|
+
#define _PASSENGER_CORE_CONFIG_H_
|
29
|
+
|
30
|
+
#include <string>
|
31
|
+
#include <vector>
|
32
|
+
|
33
|
+
#include <boost/bind.hpp>
|
34
|
+
#include <boost/foreach.hpp>
|
35
|
+
|
36
|
+
#include <LoggingKit/LoggingKit.h>
|
37
|
+
#include <LoggingKit/Config.h>
|
38
|
+
#include <LoggingKit/Context.h>
|
39
|
+
#include <ConfigKit/Schema.h>
|
40
|
+
#include <ConfigKit/TableTranslator.h>
|
41
|
+
#include <ConfigKit/PrefixTranslator.h>
|
42
|
+
#include <ServerKit/Context.h>
|
43
|
+
#include <ServerKit/HttpServer.h>
|
44
|
+
#include <Core/Controller/Config.h>
|
45
|
+
#include <Core/SecurityUpdateChecker.h>
|
46
|
+
#include <Core/ApiServer.h>
|
47
|
+
#include <Core/AdminPanelConnector.h>
|
48
|
+
#include <Shared/ApiAccountUtils.h>
|
49
|
+
#include <Constants.h>
|
50
|
+
#include <Utils.h>
|
51
|
+
#include <Utils/IOUtils.h>
|
52
|
+
|
53
|
+
namespace Passenger {
|
54
|
+
namespace Core {
|
55
|
+
|
56
|
+
using namespace std;
|
57
|
+
|
58
|
+
|
59
|
+
/*
|
60
|
+
* BEGIN ConfigKit schema: Passenger::Core::Schema
|
61
|
+
* (do not edit: following text is automatically generated
|
62
|
+
* by 'rake configkit_schemas_inline_comments')
|
63
|
+
*
|
64
|
+
* admin_panel_authentication object - secret
|
65
|
+
* admin_panel_close_timeout float - default(10.0)
|
66
|
+
* admin_panel_connect_timeout float - default(30.0)
|
67
|
+
* admin_panel_data_debug boolean - default(false)
|
68
|
+
* admin_panel_ping_interval float - default(30.0)
|
69
|
+
* admin_panel_ping_timeout float - default(30.0)
|
70
|
+
* admin_panel_proxy_password string - secret
|
71
|
+
* admin_panel_proxy_timeout float - default(30.0)
|
72
|
+
* admin_panel_proxy_url string - -
|
73
|
+
* admin_panel_proxy_username string - -
|
74
|
+
* admin_panel_reconnect_timeout float - default(5.0)
|
75
|
+
* admin_panel_url string - read_only
|
76
|
+
* admin_panel_websocketpp_debug_access boolean - default(false)
|
77
|
+
* admin_panel_websocketpp_debug_error boolean - default(false)
|
78
|
+
* api_server_accept_burst_count unsigned integer - default(32)
|
79
|
+
* api_server_addresses array of strings - default([]),read_only
|
80
|
+
* api_server_authorizations array - default("[FILTERED]"),secret
|
81
|
+
* api_server_client_freelist_limit unsigned integer - default(0)
|
82
|
+
* api_server_file_buffered_channel_auto_start_mover boolean - default(true)
|
83
|
+
* api_server_file_buffered_channel_auto_truncate_file boolean - default(true)
|
84
|
+
* api_server_file_buffered_channel_buffer_dir string - default
|
85
|
+
* api_server_file_buffered_channel_delay_in_file_mode_switching unsigned integer - default(0)
|
86
|
+
* api_server_file_buffered_channel_max_disk_chunk_read_size unsigned integer - default(0)
|
87
|
+
* api_server_file_buffered_channel_threshold unsigned integer - default(131072)
|
88
|
+
* api_server_mbuf_block_chunk_size unsigned integer - default(4096),read_only
|
89
|
+
* api_server_min_spare_clients unsigned integer - default(0)
|
90
|
+
* api_server_request_freelist_limit unsigned integer - default(1024)
|
91
|
+
* api_server_start_reading_after_accept boolean - default(true)
|
92
|
+
* app_output_log_level string - default("notice")
|
93
|
+
* benchmark_mode string - -
|
94
|
+
* config_manifest object - read_only
|
95
|
+
* controller_accept_burst_count unsigned integer - default(32)
|
96
|
+
* controller_addresses array of strings - default(["tcp://127.0.0.1:3000"]),read_only
|
97
|
+
* controller_client_freelist_limit unsigned integer - default(0)
|
98
|
+
* controller_cpu_affine boolean - default(false),read_only
|
99
|
+
* controller_file_buffered_channel_auto_start_mover boolean - default(true)
|
100
|
+
* controller_file_buffered_channel_auto_truncate_file boolean - default(true)
|
101
|
+
* controller_file_buffered_channel_buffer_dir string - default
|
102
|
+
* controller_file_buffered_channel_delay_in_file_mode_switching unsigned integer - default(0)
|
103
|
+
* controller_file_buffered_channel_max_disk_chunk_read_size unsigned integer - default(0)
|
104
|
+
* controller_file_buffered_channel_threshold unsigned integer - default(131072)
|
105
|
+
* controller_mbuf_block_chunk_size unsigned integer - default(4096),read_only
|
106
|
+
* controller_min_spare_clients unsigned integer - default(0)
|
107
|
+
* controller_request_freelist_limit unsigned integer - default(1024)
|
108
|
+
* controller_secure_headers_password any - secret
|
109
|
+
* controller_socket_backlog unsigned integer - default(2048),read_only
|
110
|
+
* controller_start_reading_after_accept boolean - default(true)
|
111
|
+
* controller_threads unsigned integer - default,read_only
|
112
|
+
* default_abort_websockets_on_process_shutdown boolean - default(true)
|
113
|
+
* default_app_file_descriptor_ulimit unsigned integer - -
|
114
|
+
* default_environment string - default("production")
|
115
|
+
* default_force_max_concurrent_requests_per_process integer - default(-1)
|
116
|
+
* default_friendly_error_pages string - default("auto")
|
117
|
+
* default_group string - default
|
118
|
+
* default_load_shell_envvars boolean - default(false)
|
119
|
+
* default_max_preloader_idle_time unsigned integer - default(300)
|
120
|
+
* default_max_request_queue_size unsigned integer - default(100)
|
121
|
+
* default_max_requests unsigned integer - default(0)
|
122
|
+
* default_meteor_app_settings string - -
|
123
|
+
* default_min_instances unsigned integer - default(1)
|
124
|
+
* default_nodejs string - default("node")
|
125
|
+
* default_python string - default("python")
|
126
|
+
* default_ruby string - default("ruby")
|
127
|
+
* default_server_name string - default
|
128
|
+
* default_server_port unsigned integer - default
|
129
|
+
* default_spawn_method string - default("smart")
|
130
|
+
* default_sticky_sessions boolean - default(false)
|
131
|
+
* default_sticky_sessions_cookie_name string - default("_passenger_route")
|
132
|
+
* default_user string - default("nobody")
|
133
|
+
* file_descriptor_log_target any - -
|
134
|
+
* file_descriptor_ulimit unsigned integer - default(0),read_only
|
135
|
+
* graceful_exit boolean - default(true)
|
136
|
+
* instance_dir string - read_only
|
137
|
+
* integration_mode string - default("standalone")
|
138
|
+
* log_level string - default("notice")
|
139
|
+
* log_target any - default({"stderr": true})
|
140
|
+
* max_pool_size unsigned integer - default(6)
|
141
|
+
* multi_app boolean - default(false),read_only
|
142
|
+
* passenger_root string required read_only
|
143
|
+
* pid_file string - read_only
|
144
|
+
* pool_idle_time unsigned integer - default(300)
|
145
|
+
* pool_selfchecks boolean - default(false)
|
146
|
+
* prestart_urls array of strings - default([]),read_only
|
147
|
+
* response_buffer_high_watermark unsigned integer - default(134217728)
|
148
|
+
* security_update_checker_certificate_path string - -
|
149
|
+
* security_update_checker_disabled boolean - default(false)
|
150
|
+
* security_update_checker_interval unsigned integer - default(86400)
|
151
|
+
* security_update_checker_proxy_url string - -
|
152
|
+
* security_update_checker_url string - default("https://securitycheck.phusionpassenger.com/v1/check.json")
|
153
|
+
* server_software string - default("Phusion_Passenger/5.2.0")
|
154
|
+
* show_version_in_header boolean - default(true)
|
155
|
+
* single_app_mode_app_root string - default,read_only
|
156
|
+
* single_app_mode_app_type string - read_only
|
157
|
+
* single_app_mode_startup_file string - read_only
|
158
|
+
* standalone_engine string - default
|
159
|
+
* stat_throttle_rate unsigned integer - default(10)
|
160
|
+
* turbocaching boolean - default(true),read_only
|
161
|
+
* user_switching boolean - default(true)
|
162
|
+
* ust_router_address string - -
|
163
|
+
* ust_router_password string - secret
|
164
|
+
* vary_turbocache_by_cookie string - -
|
165
|
+
* watchdog_fd_passing_password string - secret
|
166
|
+
* web_server_module_version string - read_only
|
167
|
+
* web_server_version string - read_only
|
168
|
+
*
|
169
|
+
* END
|
170
|
+
*/
|
171
|
+
class Schema: public ConfigKit::Schema {
|
172
|
+
private:
|
173
|
+
// Prefix config options that come from the given schema
|
174
|
+
template<typename SchemaType>
|
175
|
+
static void addSubSchemaPrefixTranslations(ConfigKit::TableTranslator &translator,
|
176
|
+
const StaticString &prefix)
|
177
|
+
{
|
178
|
+
vector<string> keys = SchemaType().inspect().getMemberNames();
|
179
|
+
vector<string>::const_iterator it, end = keys.end();
|
180
|
+
for (it = keys.begin(); it != end; it++) {
|
181
|
+
translator.add(prefix + *it, *it);
|
182
|
+
}
|
183
|
+
}
|
184
|
+
|
185
|
+
static Json::Value getDefaultServerName(const ConfigKit::Store &store) {
|
186
|
+
Json::Value addresses = store["controller_addresses"];
|
187
|
+
if (addresses.size() > 0) {
|
188
|
+
string firstAddress = addresses[0].asString();
|
189
|
+
if (getSocketAddressType(firstAddress) == SAT_TCP) {
|
190
|
+
string host;
|
191
|
+
unsigned short port;
|
192
|
+
|
193
|
+
parseTcpSocketAddress(firstAddress, host, port);
|
194
|
+
return host;
|
195
|
+
}
|
196
|
+
}
|
197
|
+
return "localhost";
|
198
|
+
}
|
199
|
+
|
200
|
+
static Json::Value getDefaultServerPort(const ConfigKit::Store &store) {
|
201
|
+
Json::Value addresses = store["controller_addresses"];
|
202
|
+
if (addresses.size() > 0) {
|
203
|
+
string firstAddress = addresses[0].asString();
|
204
|
+
if (getSocketAddressType(firstAddress) == SAT_TCP) {
|
205
|
+
string host;
|
206
|
+
unsigned short port;
|
207
|
+
|
208
|
+
parseTcpSocketAddress(firstAddress, host, port);
|
209
|
+
return port;
|
210
|
+
}
|
211
|
+
}
|
212
|
+
return 80;
|
213
|
+
}
|
214
|
+
|
215
|
+
static Json::Value getDefaultThreads(const ConfigKit::Store &store) {
|
216
|
+
return Json::UInt(boost::thread::hardware_concurrency());
|
217
|
+
}
|
218
|
+
|
219
|
+
static Json::Value getDefaultControllerAddresses() {
|
220
|
+
Json::Value doc;
|
221
|
+
doc.append(DEFAULT_HTTP_SERVER_LISTEN_ADDRESS);
|
222
|
+
return doc;
|
223
|
+
}
|
224
|
+
|
225
|
+
static void validateMultiAppMode(const ConfigKit::Store &config, vector<ConfigKit::Error> &errors) {
|
226
|
+
typedef ConfigKit::Error Error;
|
227
|
+
|
228
|
+
if (!config["multi_app"].asBool()) {
|
229
|
+
return;
|
230
|
+
}
|
231
|
+
|
232
|
+
if (!config["single_app_mode_app_type"].isNull()) {
|
233
|
+
errors.push_back(Error("If '{{multi_app_mode}}' is set,"
|
234
|
+
" then '{{single_app_mode_app_type}}' may not be set"));
|
235
|
+
}
|
236
|
+
if (!config["single_app_mode_startup_file"].isNull()) {
|
237
|
+
errors.push_back(Error("If '{{multi_app_mode}}' is set,"
|
238
|
+
" then '{{single_app_mode_startup_file}}' may not be set"));
|
239
|
+
}
|
240
|
+
}
|
241
|
+
|
242
|
+
static void validateSingleAppMode(const ConfigKit::Store &config, vector<ConfigKit::Error> &errors) {
|
243
|
+
typedef ConfigKit::Error Error;
|
244
|
+
|
245
|
+
if (config["multi_app"].asBool()) {
|
246
|
+
return;
|
247
|
+
}
|
248
|
+
|
249
|
+
// single_app_mode_app_type and single_app_mode_startup_file are
|
250
|
+
// autodetected in initializeSingleAppMode()
|
251
|
+
|
252
|
+
ControllerSingleAppModeSchema::validateAppType("single_app_mode_app_type", config, errors);
|
253
|
+
}
|
254
|
+
|
255
|
+
static void validateControllerSecureHeadersPassword(const ConfigKit::Store &config, vector<ConfigKit::Error> &errors) {
|
256
|
+
typedef ConfigKit::Error Error;
|
257
|
+
|
258
|
+
Json::Value password = config["controller_secure_headers_password"];
|
259
|
+
if (password.isNull()) {
|
260
|
+
return;
|
261
|
+
}
|
262
|
+
|
263
|
+
if (!password.isString() && !password.isObject()) {
|
264
|
+
errors.push_back(Error("'{{controller_secure_headers_password}}' must be a string or an object"));
|
265
|
+
return;
|
266
|
+
}
|
267
|
+
|
268
|
+
if (password.isObject()) {
|
269
|
+
if (!password.isMember("path")) {
|
270
|
+
errors.push_back(Error("If '{{controller_secure_headers_password}}' is an object, then it must contain a 'path' option"));
|
271
|
+
} else if (!password["path"].isString()) {
|
272
|
+
errors.push_back(Error("If '{{controller_secure_headers_password}}' is an object, then its 'path' option must be a string"));
|
273
|
+
}
|
274
|
+
}
|
275
|
+
}
|
276
|
+
|
277
|
+
static void validateApplicationPool(const ConfigKit::Store &config, vector<ConfigKit::Error> &errors) {
|
278
|
+
typedef ConfigKit::Error Error;
|
279
|
+
|
280
|
+
if (config["max_pool_size"].asUInt() < 1) {
|
281
|
+
errors.push_back(Error("'{{max_pool_size}}' must be at least 1"));
|
282
|
+
}
|
283
|
+
if (config["pool_idle_time"].asUInt() < 1) {
|
284
|
+
errors.push_back(Error("'{{pool_idle_time}}' must be at least 1"));
|
285
|
+
}
|
286
|
+
}
|
287
|
+
|
288
|
+
static void validateController(const ConfigKit::Store &config, vector<ConfigKit::Error> &errors) {
|
289
|
+
typedef ConfigKit::Error Error;
|
290
|
+
|
291
|
+
if (config["controller_threads"].asUInt() < 1) {
|
292
|
+
errors.push_back(Error("'{{controller_threads}}' must be at least 1"));
|
293
|
+
}
|
294
|
+
}
|
295
|
+
|
296
|
+
static void validateAddresses(const ConfigKit::Store &config, vector<ConfigKit::Error> &errors) {
|
297
|
+
typedef ConfigKit::Error Error;
|
298
|
+
|
299
|
+
if (config["controller_addresses"].empty()) {
|
300
|
+
errors.push_back(Error("'{{controller_addresses}}' must contain at least 1 item"));
|
301
|
+
} else if (config["controller_addresses"].size() > SERVER_KIT_MAX_SERVER_ENDPOINTS) {
|
302
|
+
errors.push_back(Error("'{{controller_addresses}}' may contain at most "
|
303
|
+
+ toString(SERVER_KIT_MAX_SERVER_ENDPOINTS) + " items"));
|
304
|
+
}
|
305
|
+
|
306
|
+
if (config["api_server_addresses"].size() > SERVER_KIT_MAX_SERVER_ENDPOINTS) {
|
307
|
+
errors.push_back(Error("'{{api_server_addresses}}' may contain at most "
|
308
|
+
+ toString(SERVER_KIT_MAX_SERVER_ENDPOINTS) + " items"));
|
309
|
+
}
|
310
|
+
}
|
311
|
+
|
312
|
+
/*****************/
|
313
|
+
/*****************/
|
314
|
+
|
315
|
+
static Json::Value normalizeSingleAppMode(const Json::Value &effectiveValues) {
|
316
|
+
if (effectiveValues["multi_app"].asBool()) {
|
317
|
+
return Json::Value();
|
318
|
+
}
|
319
|
+
|
320
|
+
Json::Value updates;
|
321
|
+
updates["single_app_mode_app_root"] = absolutizePath(
|
322
|
+
effectiveValues["single_app_mode_app_root"].asString());
|
323
|
+
if (!effectiveValues["single_app_mode_startup_file"].isNull()) {
|
324
|
+
updates["single_app_mode_startup_file"] = absolutizePath(
|
325
|
+
effectiveValues["single_app_mode_startup_file"].asString());
|
326
|
+
}
|
327
|
+
return updates;
|
328
|
+
}
|
329
|
+
|
330
|
+
static Json::Value normalizeServerSoftware(const Json::Value &effectiveValues) {
|
331
|
+
string serverSoftware = effectiveValues["server_software"].asString();
|
332
|
+
if (serverSoftware.find(SERVER_TOKEN_NAME) == string::npos
|
333
|
+
&& serverSoftware.find(FLYING_PASSENGER_NAME) == string::npos)
|
334
|
+
{
|
335
|
+
serverSoftware.append(" " SERVER_TOKEN_NAME "/" PASSENGER_VERSION);
|
336
|
+
}
|
337
|
+
|
338
|
+
Json::Value updates;
|
339
|
+
updates["server_software"] = serverSoftware;
|
340
|
+
return updates;
|
341
|
+
}
|
342
|
+
|
343
|
+
public:
|
344
|
+
struct {
|
345
|
+
LoggingKit::Schema schema;
|
346
|
+
ConfigKit::TableTranslator translator;
|
347
|
+
} loggingKit;
|
348
|
+
struct {
|
349
|
+
ControllerSchema schema;
|
350
|
+
ConfigKit::TableTranslator translator;
|
351
|
+
} controller;
|
352
|
+
struct {
|
353
|
+
ControllerSingleAppModeSchema schema;
|
354
|
+
ConfigKit::PrefixTranslator translator;
|
355
|
+
} controllerSingleAppMode;
|
356
|
+
struct {
|
357
|
+
ServerKit::Schema schema;
|
358
|
+
ConfigKit::PrefixTranslator translator;
|
359
|
+
} controllerServerKit;
|
360
|
+
struct {
|
361
|
+
SecurityUpdateChecker::Schema schema;
|
362
|
+
ConfigKit::PrefixTranslator translator;
|
363
|
+
} securityUpdateChecker;
|
364
|
+
struct {
|
365
|
+
ApiServer::Schema schema;
|
366
|
+
ConfigKit::TableTranslator translator;
|
367
|
+
} apiServer;
|
368
|
+
struct {
|
369
|
+
ServerKit::Schema schema;
|
370
|
+
ConfigKit::PrefixTranslator translator;
|
371
|
+
} apiServerKit;
|
372
|
+
struct {
|
373
|
+
AdminPanelConnector::Schema schema;
|
374
|
+
ConfigKit::TableTranslator translator;
|
375
|
+
} adminPanelConnector;
|
376
|
+
|
377
|
+
Schema() {
|
378
|
+
using namespace ConfigKit;
|
379
|
+
|
380
|
+
// Add subschema: loggingKit
|
381
|
+
loggingKit.translator.add("log_level", "level");
|
382
|
+
loggingKit.translator.add("log_target", "target");
|
383
|
+
loggingKit.translator.finalize();
|
384
|
+
addSubSchema(loggingKit.schema, loggingKit.translator);
|
385
|
+
erase("redirect_stderr");
|
386
|
+
|
387
|
+
// Add subschema: controller
|
388
|
+
addSubSchemaPrefixTranslations<ServerKit::HttpServerSchema>(
|
389
|
+
controller.translator, "controller_");
|
390
|
+
controller.translator.finalize();
|
391
|
+
addSubSchema(controller.schema, controller.translator);
|
392
|
+
erase("thread_number");
|
393
|
+
|
394
|
+
// Add subschema: controller (single app mode)
|
395
|
+
controllerSingleAppMode.translator.setPrefixAndFinalize("single_app_mode_");
|
396
|
+
addWithDynamicDefault("single_app_mode_app_root",
|
397
|
+
STRING_TYPE, OPTIONAL | READ_ONLY | CACHE_DEFAULT_VALUE,
|
398
|
+
ControllerSingleAppModeSchema::getDefaultAppRoot);
|
399
|
+
add("single_app_mode_app_type", STRING_TYPE, OPTIONAL | READ_ONLY);
|
400
|
+
add("single_app_mode_startup_file", STRING_TYPE, OPTIONAL | READ_ONLY);
|
401
|
+
|
402
|
+
// Add subschema: controllerServerKit
|
403
|
+
controllerServerKit.translator.setPrefixAndFinalize("controller_");
|
404
|
+
addSubSchema(controllerServerKit.schema, controllerServerKit.translator);
|
405
|
+
erase("controller_secure_mode_password");
|
406
|
+
|
407
|
+
// Add subschema: securityUpdateChecker
|
408
|
+
securityUpdateChecker.translator.setPrefixAndFinalize("security_update_checker_");
|
409
|
+
addSubSchema(securityUpdateChecker.schema, securityUpdateChecker.translator);
|
410
|
+
erase("security_update_checker_server_identifier");
|
411
|
+
erase("security_update_checker_web_server_version");
|
412
|
+
|
413
|
+
// Add subschema: apiServer
|
414
|
+
apiServer.translator.add("api_server_authorizations", "authorizations");
|
415
|
+
addSubSchemaPrefixTranslations<ServerKit::HttpServerSchema>(
|
416
|
+
apiServer.translator, "api_server_");
|
417
|
+
apiServer.translator.finalize();
|
418
|
+
addSubSchema(apiServer.schema, apiServer.translator);
|
419
|
+
|
420
|
+
// Add subschema: apiServerKit
|
421
|
+
apiServerKit.translator.setPrefixAndFinalize("api_server_");
|
422
|
+
addSubSchema(apiServerKit.schema, apiServerKit.translator);
|
423
|
+
erase("api_server_secure_mode_password");
|
424
|
+
|
425
|
+
// Add subschema: adminPanelConnector
|
426
|
+
addSubSchemaPrefixTranslations<WebSocketCommandReverseServer::Schema>(
|
427
|
+
adminPanelConnector.translator, "admin_panel_");
|
428
|
+
adminPanelConnector.translator.finalize();
|
429
|
+
addSubSchema(adminPanelConnector.schema, adminPanelConnector.translator);
|
430
|
+
erase("admin_panel_log_prefix");
|
431
|
+
erase("ruby");
|
432
|
+
|
433
|
+
override("admin_panel_url", STRING_TYPE, OPTIONAL | READ_ONLY);
|
434
|
+
override("instance_dir", STRING_TYPE, OPTIONAL | READ_ONLY);
|
435
|
+
override("multi_app", BOOL_TYPE, OPTIONAL | READ_ONLY, false);
|
436
|
+
overrideWithDynamicDefault("default_server_name", STRING_TYPE, OPTIONAL, getDefaultServerName);
|
437
|
+
overrideWithDynamicDefault("default_server_port", UINT_TYPE, OPTIONAL, getDefaultServerPort);
|
438
|
+
|
439
|
+
add("passenger_root", STRING_TYPE, REQUIRED | READ_ONLY);
|
440
|
+
add("config_manifest", OBJECT_TYPE, OPTIONAL | READ_ONLY);
|
441
|
+
add("pid_file", STRING_TYPE, OPTIONAL | READ_ONLY);
|
442
|
+
add("web_server_version", STRING_TYPE, OPTIONAL | READ_ONLY);
|
443
|
+
addWithDynamicDefault("controller_threads", UINT_TYPE, OPTIONAL | READ_ONLY, getDefaultThreads);
|
444
|
+
add("max_pool_size", UINT_TYPE, OPTIONAL, DEFAULT_MAX_POOL_SIZE);
|
445
|
+
add("pool_idle_time", UINT_TYPE, OPTIONAL, Json::UInt(DEFAULT_POOL_IDLE_TIME));
|
446
|
+
add("pool_selfchecks", BOOL_TYPE, OPTIONAL, false);
|
447
|
+
add("prestart_urls", STRING_ARRAY_TYPE, OPTIONAL | READ_ONLY, Json::arrayValue);
|
448
|
+
add("controller_secure_headers_password", ANY_TYPE, OPTIONAL | SECRET);
|
449
|
+
add("controller_socket_backlog", UINT_TYPE, OPTIONAL | READ_ONLY, DEFAULT_SOCKET_BACKLOG);
|
450
|
+
add("controller_addresses", STRING_ARRAY_TYPE, OPTIONAL | READ_ONLY, getDefaultControllerAddresses());
|
451
|
+
add("api_server_addresses", STRING_ARRAY_TYPE, OPTIONAL | READ_ONLY, Json::arrayValue);
|
452
|
+
add("controller_cpu_affine", BOOL_TYPE, OPTIONAL | READ_ONLY, false);
|
453
|
+
add("file_descriptor_ulimit", UINT_TYPE, OPTIONAL | READ_ONLY, 0);
|
454
|
+
|
455
|
+
addValidator(validateMultiAppMode);
|
456
|
+
addValidator(validateSingleAppMode);
|
457
|
+
addValidator(validateControllerSecureHeadersPassword);
|
458
|
+
addValidator(validateApplicationPool);
|
459
|
+
addValidator(validateController);
|
460
|
+
addValidator(validateAddresses);
|
461
|
+
addNormalizer(normalizeSingleAppMode);
|
462
|
+
addNormalizer(normalizeServerSoftware);
|
463
|
+
|
464
|
+
/*******************/
|
465
|
+
/*******************/
|
466
|
+
|
467
|
+
finalize();
|
468
|
+
}
|
469
|
+
};
|
470
|
+
|
471
|
+
|
472
|
+
} // namespace Core
|
473
|
+
} // namespace Passenger
|
474
|
+
|
475
|
+
#endif /* _PASSENGER_CORE_CONFIG_H_ */
|