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
@@ -0,0 +1,267 @@
|
|
1
|
+
//
|
2
|
+
// spawn.hpp
|
3
|
+
// ~~~~~~~~~
|
4
|
+
//
|
5
|
+
// Copyright (c) 2003-2017 Christopher M. Kohlhoff (chris at kohlhoff dot com)
|
6
|
+
//
|
7
|
+
// Distributed under the Boost Software License, Version 1.0. (See accompanying
|
8
|
+
// file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
|
9
|
+
//
|
10
|
+
|
11
|
+
#ifndef BOOST_ASIO_SPAWN_HPP
|
12
|
+
#define BOOST_ASIO_SPAWN_HPP
|
13
|
+
|
14
|
+
#if defined(_MSC_VER) && (_MSC_VER >= 1200)
|
15
|
+
# pragma once
|
16
|
+
#endif // defined(_MSC_VER) && (_MSC_VER >= 1200)
|
17
|
+
|
18
|
+
#include <boost/asio/detail/config.hpp>
|
19
|
+
#include <boost/coroutine/all.hpp>
|
20
|
+
#include <boost/asio/detail/weak_ptr.hpp>
|
21
|
+
#include <boost/asio/detail/wrapped_handler.hpp>
|
22
|
+
#include <boost/asio/io_service.hpp>
|
23
|
+
#include <boost/asio/strand.hpp>
|
24
|
+
|
25
|
+
#include <boost/asio/detail/push_options.hpp>
|
26
|
+
|
27
|
+
namespace boost {
|
28
|
+
namespace asio {
|
29
|
+
|
30
|
+
/// Context object the represents the currently executing coroutine.
|
31
|
+
/**
|
32
|
+
* The basic_yield_context class is used to represent the currently executing
|
33
|
+
* stackful coroutine. A basic_yield_context may be passed as a handler to an
|
34
|
+
* asynchronous operation. For example:
|
35
|
+
*
|
36
|
+
* @code template <typename Handler>
|
37
|
+
* void my_coroutine(basic_yield_context<Handler> yield)
|
38
|
+
* {
|
39
|
+
* ...
|
40
|
+
* std::size_t n = my_socket.async_read_some(buffer, yield);
|
41
|
+
* ...
|
42
|
+
* } @endcode
|
43
|
+
*
|
44
|
+
* The initiating function (async_read_some in the above example) suspends the
|
45
|
+
* current coroutine. The coroutine is resumed when the asynchronous operation
|
46
|
+
* completes, and the result of the operation is returned.
|
47
|
+
*/
|
48
|
+
template <typename Handler>
|
49
|
+
class basic_yield_context
|
50
|
+
{
|
51
|
+
public:
|
52
|
+
/// The coroutine callee type, used by the implementation.
|
53
|
+
/**
|
54
|
+
* When using Boost.Coroutine v1, this type is:
|
55
|
+
* @code typename coroutine<void()> @endcode
|
56
|
+
* When using Boost.Coroutine v2 (unidirectional coroutines), this type is:
|
57
|
+
* @code push_coroutine<void> @endcode
|
58
|
+
*/
|
59
|
+
#if defined(GENERATING_DOCUMENTATION)
|
60
|
+
typedef implementation_defined callee_type;
|
61
|
+
#elif defined(BOOST_COROUTINES_UNIDIRECT) || defined(BOOST_COROUTINES_V2)
|
62
|
+
typedef boost::coroutines::push_coroutine<void> callee_type;
|
63
|
+
#else
|
64
|
+
typedef boost::coroutines::coroutine<void()> callee_type;
|
65
|
+
#endif
|
66
|
+
|
67
|
+
/// The coroutine caller type, used by the implementation.
|
68
|
+
/**
|
69
|
+
* When using Boost.Coroutine v1, this type is:
|
70
|
+
* @code typename coroutine<void()>::caller_type @endcode
|
71
|
+
* When using Boost.Coroutine v2 (unidirectional coroutines), this type is:
|
72
|
+
* @code pull_coroutine<void> @endcode
|
73
|
+
*/
|
74
|
+
#if defined(GENERATING_DOCUMENTATION)
|
75
|
+
typedef implementation_defined caller_type;
|
76
|
+
#elif defined(BOOST_COROUTINES_UNIDIRECT) || defined(BOOST_COROUTINES_V2)
|
77
|
+
typedef boost::coroutines::pull_coroutine<void> caller_type;
|
78
|
+
#else
|
79
|
+
typedef boost::coroutines::coroutine<void()>::caller_type caller_type;
|
80
|
+
#endif
|
81
|
+
|
82
|
+
/// Construct a yield context to represent the specified coroutine.
|
83
|
+
/**
|
84
|
+
* Most applications do not need to use this constructor. Instead, the
|
85
|
+
* spawn() function passes a yield context as an argument to the coroutine
|
86
|
+
* function.
|
87
|
+
*/
|
88
|
+
basic_yield_context(
|
89
|
+
const detail::weak_ptr<callee_type>& coro,
|
90
|
+
caller_type& ca, Handler& handler)
|
91
|
+
: coro_(coro),
|
92
|
+
ca_(ca),
|
93
|
+
handler_(handler),
|
94
|
+
ec_(0)
|
95
|
+
{
|
96
|
+
}
|
97
|
+
|
98
|
+
/// Return a yield context that sets the specified error_code.
|
99
|
+
/**
|
100
|
+
* By default, when a yield context is used with an asynchronous operation, a
|
101
|
+
* non-success error_code is converted to system_error and thrown. This
|
102
|
+
* operator may be used to specify an error_code object that should instead be
|
103
|
+
* set with the asynchronous operation's result. For example:
|
104
|
+
*
|
105
|
+
* @code template <typename Handler>
|
106
|
+
* void my_coroutine(basic_yield_context<Handler> yield)
|
107
|
+
* {
|
108
|
+
* ...
|
109
|
+
* std::size_t n = my_socket.async_read_some(buffer, yield[ec]);
|
110
|
+
* if (ec)
|
111
|
+
* {
|
112
|
+
* // An error occurred.
|
113
|
+
* }
|
114
|
+
* ...
|
115
|
+
* } @endcode
|
116
|
+
*/
|
117
|
+
basic_yield_context operator[](boost::system::error_code& ec) const
|
118
|
+
{
|
119
|
+
basic_yield_context tmp(*this);
|
120
|
+
tmp.ec_ = &ec;
|
121
|
+
return tmp;
|
122
|
+
}
|
123
|
+
|
124
|
+
#if defined(GENERATING_DOCUMENTATION)
|
125
|
+
private:
|
126
|
+
#endif // defined(GENERATING_DOCUMENTATION)
|
127
|
+
detail::weak_ptr<callee_type> coro_;
|
128
|
+
caller_type& ca_;
|
129
|
+
Handler& handler_;
|
130
|
+
boost::system::error_code* ec_;
|
131
|
+
};
|
132
|
+
|
133
|
+
#if defined(GENERATING_DOCUMENTATION)
|
134
|
+
/// Context object that represents the currently executing coroutine.
|
135
|
+
typedef basic_yield_context<unspecified> yield_context;
|
136
|
+
#else // defined(GENERATING_DOCUMENTATION)
|
137
|
+
typedef basic_yield_context<
|
138
|
+
detail::wrapped_handler<
|
139
|
+
io_service::strand, void(*)(),
|
140
|
+
detail::is_continuation_if_running> > yield_context;
|
141
|
+
#endif // defined(GENERATING_DOCUMENTATION)
|
142
|
+
|
143
|
+
/**
|
144
|
+
* @defgroup spawn boost::asio::spawn
|
145
|
+
*
|
146
|
+
* @brief Start a new stackful coroutine.
|
147
|
+
*
|
148
|
+
* The spawn() function is a high-level wrapper over the Boost.Coroutine
|
149
|
+
* library. This function enables programs to implement asynchronous logic in a
|
150
|
+
* synchronous manner, as illustrated by the following example:
|
151
|
+
*
|
152
|
+
* @code boost::asio::spawn(my_strand, do_echo);
|
153
|
+
*
|
154
|
+
* // ...
|
155
|
+
*
|
156
|
+
* void do_echo(boost::asio::yield_context yield)
|
157
|
+
* {
|
158
|
+
* try
|
159
|
+
* {
|
160
|
+
* char data[128];
|
161
|
+
* for (;;)
|
162
|
+
* {
|
163
|
+
* std::size_t length =
|
164
|
+
* my_socket.async_read_some(
|
165
|
+
* boost::asio::buffer(data), yield);
|
166
|
+
*
|
167
|
+
* boost::asio::async_write(my_socket,
|
168
|
+
* boost::asio::buffer(data, length), yield);
|
169
|
+
* }
|
170
|
+
* }
|
171
|
+
* catch (std::exception& e)
|
172
|
+
* {
|
173
|
+
* // ...
|
174
|
+
* }
|
175
|
+
* } @endcode
|
176
|
+
*/
|
177
|
+
/*@{*/
|
178
|
+
|
179
|
+
/// Start a new stackful coroutine, calling the specified handler when it
|
180
|
+
/// completes.
|
181
|
+
/**
|
182
|
+
* This function is used to launch a new coroutine.
|
183
|
+
*
|
184
|
+
* @param handler A handler to be called when the coroutine exits. More
|
185
|
+
* importantly, the handler provides an execution context (via the the handler
|
186
|
+
* invocation hook) for the coroutine. The handler must have the signature:
|
187
|
+
* @code void handler(); @endcode
|
188
|
+
*
|
189
|
+
* @param function The coroutine function. The function must have the signature:
|
190
|
+
* @code void function(basic_yield_context<Handler> yield); @endcode
|
191
|
+
*
|
192
|
+
* @param attributes Boost.Coroutine attributes used to customise the coroutine.
|
193
|
+
*/
|
194
|
+
template <typename Handler, typename Function>
|
195
|
+
void spawn(BOOST_ASIO_MOVE_ARG(Handler) handler,
|
196
|
+
BOOST_ASIO_MOVE_ARG(Function) function,
|
197
|
+
const boost::coroutines::attributes& attributes
|
198
|
+
= boost::coroutines::attributes());
|
199
|
+
|
200
|
+
/// Start a new stackful coroutine, inheriting the execution context of another.
|
201
|
+
/**
|
202
|
+
* This function is used to launch a new coroutine.
|
203
|
+
*
|
204
|
+
* @param ctx Identifies the current coroutine as a parent of the new
|
205
|
+
* coroutine. This specifies that the new coroutine should inherit the
|
206
|
+
* execution context of the parent. For example, if the parent coroutine is
|
207
|
+
* executing in a particular strand, then the new coroutine will execute in the
|
208
|
+
* same strand.
|
209
|
+
*
|
210
|
+
* @param function The coroutine function. The function must have the signature:
|
211
|
+
* @code void function(basic_yield_context<Handler> yield); @endcode
|
212
|
+
*
|
213
|
+
* @param attributes Boost.Coroutine attributes used to customise the coroutine.
|
214
|
+
*/
|
215
|
+
template <typename Handler, typename Function>
|
216
|
+
void spawn(basic_yield_context<Handler> ctx,
|
217
|
+
BOOST_ASIO_MOVE_ARG(Function) function,
|
218
|
+
const boost::coroutines::attributes& attributes
|
219
|
+
= boost::coroutines::attributes());
|
220
|
+
|
221
|
+
/// Start a new stackful coroutine that executes in the context of a strand.
|
222
|
+
/**
|
223
|
+
* This function is used to launch a new coroutine.
|
224
|
+
*
|
225
|
+
* @param strand Identifies a strand. By starting multiple coroutines on the
|
226
|
+
* same strand, the implementation ensures that none of those coroutines can
|
227
|
+
* execute simultaneously.
|
228
|
+
*
|
229
|
+
* @param function The coroutine function. The function must have the signature:
|
230
|
+
* @code void function(yield_context yield); @endcode
|
231
|
+
*
|
232
|
+
* @param attributes Boost.Coroutine attributes used to customise the coroutine.
|
233
|
+
*/
|
234
|
+
template <typename Function>
|
235
|
+
void spawn(boost::asio::io_service::strand strand,
|
236
|
+
BOOST_ASIO_MOVE_ARG(Function) function,
|
237
|
+
const boost::coroutines::attributes& attributes
|
238
|
+
= boost::coroutines::attributes());
|
239
|
+
|
240
|
+
/// Start a new stackful coroutine that executes on a given io_service.
|
241
|
+
/**
|
242
|
+
* This function is used to launch a new coroutine.
|
243
|
+
*
|
244
|
+
* @param io_service Identifies the io_service that will run the coroutine. The
|
245
|
+
* new coroutine is implicitly given its own strand within this io_service.
|
246
|
+
*
|
247
|
+
* @param function The coroutine function. The function must have the signature:
|
248
|
+
* @code void function(yield_context yield); @endcode
|
249
|
+
*
|
250
|
+
* @param attributes Boost.Coroutine attributes used to customise the coroutine.
|
251
|
+
*/
|
252
|
+
template <typename Function>
|
253
|
+
void spawn(boost::asio::io_service& io_service,
|
254
|
+
BOOST_ASIO_MOVE_ARG(Function) function,
|
255
|
+
const boost::coroutines::attributes& attributes
|
256
|
+
= boost::coroutines::attributes());
|
257
|
+
|
258
|
+
/*@}*/
|
259
|
+
|
260
|
+
} // namespace asio
|
261
|
+
} // namespace boost
|
262
|
+
|
263
|
+
#include <boost/asio/detail/pop_options.hpp>
|
264
|
+
|
265
|
+
#include <boost/asio/impl/spawn.hpp>
|
266
|
+
|
267
|
+
#endif // BOOST_ASIO_SPAWN_HPP
|
@@ -0,0 +1,30 @@
|
|
1
|
+
//
|
2
|
+
// ssl.hpp
|
3
|
+
// ~~~~~~~
|
4
|
+
//
|
5
|
+
// Copyright (c) 2003-2017 Christopher M. Kohlhoff (chris at kohlhoff dot com)
|
6
|
+
//
|
7
|
+
// Distributed under the Boost Software License, Version 1.0. (See accompanying
|
8
|
+
// file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
|
9
|
+
//
|
10
|
+
|
11
|
+
#ifndef BOOST_ASIO_SSL_HPP
|
12
|
+
#define BOOST_ASIO_SSL_HPP
|
13
|
+
|
14
|
+
#if defined(_MSC_VER) && (_MSC_VER >= 1200)
|
15
|
+
# pragma once
|
16
|
+
#endif // defined(_MSC_VER) && (_MSC_VER >= 1200)
|
17
|
+
|
18
|
+
#include <boost/asio/ssl/basic_context.hpp>
|
19
|
+
#include <boost/asio/ssl/context.hpp>
|
20
|
+
#include <boost/asio/ssl/context_base.hpp>
|
21
|
+
#include <boost/asio/ssl/context_service.hpp>
|
22
|
+
#include <boost/asio/ssl/error.hpp>
|
23
|
+
#include <boost/asio/ssl/rfc2818_verification.hpp>
|
24
|
+
#include <boost/asio/ssl/stream.hpp>
|
25
|
+
#include <boost/asio/ssl/stream_base.hpp>
|
26
|
+
#include <boost/asio/ssl/stream_service.hpp>
|
27
|
+
#include <boost/asio/ssl/verify_context.hpp>
|
28
|
+
#include <boost/asio/ssl/verify_mode.hpp>
|
29
|
+
|
30
|
+
#endif // BOOST_ASIO_SSL_HPP
|
@@ -0,0 +1,42 @@
|
|
1
|
+
//
|
2
|
+
// ssl/basic_context.hpp
|
3
|
+
// ~~~~~~~~~~~~~~~~~~~~~
|
4
|
+
//
|
5
|
+
// Copyright (c) 2003-2017 Christopher M. Kohlhoff (chris at kohlhoff dot com)
|
6
|
+
//
|
7
|
+
// Distributed under the Boost Software License, Version 1.0. (See accompanying
|
8
|
+
// file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
|
9
|
+
//
|
10
|
+
|
11
|
+
#ifndef BOOST_ASIO_SSL_BASIC_CONTEXT_HPP
|
12
|
+
#define BOOST_ASIO_SSL_BASIC_CONTEXT_HPP
|
13
|
+
|
14
|
+
#if defined(_MSC_VER) && (_MSC_VER >= 1200)
|
15
|
+
# pragma once
|
16
|
+
#endif // defined(_MSC_VER) && (_MSC_VER >= 1200)
|
17
|
+
|
18
|
+
#include <boost/asio/detail/config.hpp>
|
19
|
+
|
20
|
+
#if defined(BOOST_ASIO_ENABLE_OLD_SSL)
|
21
|
+
# include <boost/asio/ssl/old/basic_context.hpp>
|
22
|
+
#endif // defined(BOOST_ASIO_ENABLE_OLD_SSL)
|
23
|
+
|
24
|
+
#include <boost/asio/detail/push_options.hpp>
|
25
|
+
|
26
|
+
namespace boost {
|
27
|
+
namespace asio {
|
28
|
+
namespace ssl {
|
29
|
+
|
30
|
+
#if defined(BOOST_ASIO_ENABLE_OLD_SSL)
|
31
|
+
|
32
|
+
using boost::asio::ssl::old::basic_context;
|
33
|
+
|
34
|
+
#endif // defined(BOOST_ASIO_ENABLE_OLD_SSL)
|
35
|
+
|
36
|
+
} // namespace ssl
|
37
|
+
} // namespace asio
|
38
|
+
} // namespace boost
|
39
|
+
|
40
|
+
#include <boost/asio/detail/pop_options.hpp>
|
41
|
+
|
42
|
+
#endif // BOOST_ASIO_SSL_BASIC_CONTEXT_HPP
|
@@ -0,0 +1,789 @@
|
|
1
|
+
//
|
2
|
+
// ssl/context.hpp
|
3
|
+
// ~~~~~~~~~~~~~~~
|
4
|
+
//
|
5
|
+
// Copyright (c) 2003-2017 Christopher M. Kohlhoff (chris at kohlhoff dot com)
|
6
|
+
//
|
7
|
+
// Distributed under the Boost Software License, Version 1.0. (See accompanying
|
8
|
+
// file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
|
9
|
+
//
|
10
|
+
|
11
|
+
#ifndef BOOST_ASIO_SSL_CONTEXT_HPP
|
12
|
+
#define BOOST_ASIO_SSL_CONTEXT_HPP
|
13
|
+
|
14
|
+
#if defined(_MSC_VER) && (_MSC_VER >= 1200)
|
15
|
+
# pragma once
|
16
|
+
#endif // defined(_MSC_VER) && (_MSC_VER >= 1200)
|
17
|
+
|
18
|
+
#include <boost/asio/detail/config.hpp>
|
19
|
+
|
20
|
+
#if defined(BOOST_ASIO_ENABLE_OLD_SSL)
|
21
|
+
# include <boost/asio/ssl/basic_context.hpp>
|
22
|
+
# include <boost/asio/ssl/context_service.hpp>
|
23
|
+
#else // defined(BOOST_ASIO_ENABLE_OLD_SSL)
|
24
|
+
# include <string>
|
25
|
+
# include <boost/asio/buffer.hpp>
|
26
|
+
# include <boost/asio/io_service.hpp>
|
27
|
+
# include <boost/asio/ssl/context_base.hpp>
|
28
|
+
# include <boost/asio/ssl/detail/openssl_types.hpp>
|
29
|
+
# include <boost/asio/ssl/detail/openssl_init.hpp>
|
30
|
+
# include <boost/asio/ssl/detail/password_callback.hpp>
|
31
|
+
# include <boost/asio/ssl/detail/verify_callback.hpp>
|
32
|
+
# include <boost/asio/ssl/verify_mode.hpp>
|
33
|
+
#endif // defined(BOOST_ASIO_ENABLE_OLD_SSL)
|
34
|
+
|
35
|
+
#include <boost/asio/detail/push_options.hpp>
|
36
|
+
|
37
|
+
namespace boost {
|
38
|
+
namespace asio {
|
39
|
+
namespace ssl {
|
40
|
+
|
41
|
+
#if defined(BOOST_ASIO_ENABLE_OLD_SSL)
|
42
|
+
|
43
|
+
/// Typedef for the typical usage of context.
|
44
|
+
typedef basic_context<context_service> context;
|
45
|
+
|
46
|
+
#else // defined(BOOST_ASIO_ENABLE_OLD_SSL)
|
47
|
+
|
48
|
+
class context
|
49
|
+
: public context_base,
|
50
|
+
private noncopyable
|
51
|
+
{
|
52
|
+
public:
|
53
|
+
/// The native handle type of the SSL context.
|
54
|
+
typedef SSL_CTX* native_handle_type;
|
55
|
+
|
56
|
+
/// (Deprecated: Use native_handle_type.) The native type of the SSL context.
|
57
|
+
typedef SSL_CTX* impl_type;
|
58
|
+
|
59
|
+
/// Constructor.
|
60
|
+
BOOST_ASIO_DECL explicit context(method m);
|
61
|
+
|
62
|
+
/// Deprecated constructor taking a reference to an io_service object.
|
63
|
+
BOOST_ASIO_DECL context(boost::asio::io_service&, method m);
|
64
|
+
|
65
|
+
#if defined(BOOST_ASIO_HAS_MOVE) || defined(GENERATING_DOCUMENTATION)
|
66
|
+
/// Move-construct a context from another.
|
67
|
+
/**
|
68
|
+
* This constructor moves an SSL context from one object to another.
|
69
|
+
*
|
70
|
+
* @param other The other context object from which the move will occur.
|
71
|
+
*
|
72
|
+
* @note Following the move, the following operations only are valid for the
|
73
|
+
* moved-from object:
|
74
|
+
* @li Destruction.
|
75
|
+
* @li As a target for move-assignment.
|
76
|
+
*/
|
77
|
+
BOOST_ASIO_DECL context(context&& other);
|
78
|
+
|
79
|
+
/// Move-assign a context from another.
|
80
|
+
/**
|
81
|
+
* This assignment operator moves an SSL context from one object to another.
|
82
|
+
*
|
83
|
+
* @param other The other context object from which the move will occur.
|
84
|
+
*
|
85
|
+
* @note Following the move, the following operations only are valid for the
|
86
|
+
* moved-from object:
|
87
|
+
* @li Destruction.
|
88
|
+
* @li As a target for move-assignment.
|
89
|
+
*/
|
90
|
+
BOOST_ASIO_DECL context& operator=(context&& other);
|
91
|
+
#endif // defined(BOOST_ASIO_HAS_MOVE) || defined(GENERATING_DOCUMENTATION)
|
92
|
+
|
93
|
+
/// Destructor.
|
94
|
+
BOOST_ASIO_DECL ~context();
|
95
|
+
|
96
|
+
/// Get the underlying implementation in the native type.
|
97
|
+
/**
|
98
|
+
* This function may be used to obtain the underlying implementation of the
|
99
|
+
* context. This is intended to allow access to context functionality that is
|
100
|
+
* not otherwise provided.
|
101
|
+
*/
|
102
|
+
BOOST_ASIO_DECL native_handle_type native_handle();
|
103
|
+
|
104
|
+
/// (Deprecated: Use native_handle().) Get the underlying implementation in
|
105
|
+
/// the native type.
|
106
|
+
/**
|
107
|
+
* This function may be used to obtain the underlying implementation of the
|
108
|
+
* context. This is intended to allow access to context functionality that is
|
109
|
+
* not otherwise provided.
|
110
|
+
*/
|
111
|
+
BOOST_ASIO_DECL impl_type impl();
|
112
|
+
|
113
|
+
/// Clear options on the context.
|
114
|
+
/**
|
115
|
+
* This function may be used to configure the SSL options used by the context.
|
116
|
+
*
|
117
|
+
* @param o A bitmask of options. The available option values are defined in
|
118
|
+
* the context_base class. The specified options, if currently enabled on the
|
119
|
+
* context, are cleared.
|
120
|
+
*
|
121
|
+
* @throws boost::system::system_error Thrown on failure.
|
122
|
+
*
|
123
|
+
* @note Calls @c SSL_CTX_clear_options.
|
124
|
+
*/
|
125
|
+
BOOST_ASIO_DECL void clear_options(options o);
|
126
|
+
|
127
|
+
/// Clear options on the context.
|
128
|
+
/**
|
129
|
+
* This function may be used to configure the SSL options used by the context.
|
130
|
+
*
|
131
|
+
* @param o A bitmask of options. The available option values are defined in
|
132
|
+
* the context_base class. The specified options, if currently enabled on the
|
133
|
+
* context, are cleared.
|
134
|
+
*
|
135
|
+
* @param ec Set to indicate what error occurred, if any.
|
136
|
+
*
|
137
|
+
* @note Calls @c SSL_CTX_clear_options.
|
138
|
+
*/
|
139
|
+
BOOST_ASIO_DECL boost::system::error_code clear_options(options o,
|
140
|
+
boost::system::error_code& ec);
|
141
|
+
|
142
|
+
/// Set options on the context.
|
143
|
+
/**
|
144
|
+
* This function may be used to configure the SSL options used by the context.
|
145
|
+
*
|
146
|
+
* @param o A bitmask of options. The available option values are defined in
|
147
|
+
* the context_base class. The options are bitwise-ored with any existing
|
148
|
+
* value for the options.
|
149
|
+
*
|
150
|
+
* @throws boost::system::system_error Thrown on failure.
|
151
|
+
*
|
152
|
+
* @note Calls @c SSL_CTX_set_options.
|
153
|
+
*/
|
154
|
+
BOOST_ASIO_DECL void set_options(options o);
|
155
|
+
|
156
|
+
/// Set options on the context.
|
157
|
+
/**
|
158
|
+
* This function may be used to configure the SSL options used by the context.
|
159
|
+
*
|
160
|
+
* @param o A bitmask of options. The available option values are defined in
|
161
|
+
* the context_base class. The options are bitwise-ored with any existing
|
162
|
+
* value for the options.
|
163
|
+
*
|
164
|
+
* @param ec Set to indicate what error occurred, if any.
|
165
|
+
*
|
166
|
+
* @note Calls @c SSL_CTX_set_options.
|
167
|
+
*/
|
168
|
+
BOOST_ASIO_DECL boost::system::error_code set_options(options o,
|
169
|
+
boost::system::error_code& ec);
|
170
|
+
|
171
|
+
/// Set the peer verification mode.
|
172
|
+
/**
|
173
|
+
* This function may be used to configure the peer verification mode used by
|
174
|
+
* the context.
|
175
|
+
*
|
176
|
+
* @param v A bitmask of peer verification modes. See @ref verify_mode for
|
177
|
+
* available values.
|
178
|
+
*
|
179
|
+
* @throws boost::system::system_error Thrown on failure.
|
180
|
+
*
|
181
|
+
* @note Calls @c SSL_CTX_set_verify.
|
182
|
+
*/
|
183
|
+
BOOST_ASIO_DECL void set_verify_mode(verify_mode v);
|
184
|
+
|
185
|
+
/// Set the peer verification mode.
|
186
|
+
/**
|
187
|
+
* This function may be used to configure the peer verification mode used by
|
188
|
+
* the context.
|
189
|
+
*
|
190
|
+
* @param v A bitmask of peer verification modes. See @ref verify_mode for
|
191
|
+
* available values.
|
192
|
+
*
|
193
|
+
* @param ec Set to indicate what error occurred, if any.
|
194
|
+
*
|
195
|
+
* @note Calls @c SSL_CTX_set_verify.
|
196
|
+
*/
|
197
|
+
BOOST_ASIO_DECL boost::system::error_code set_verify_mode(
|
198
|
+
verify_mode v, boost::system::error_code& ec);
|
199
|
+
|
200
|
+
/// Set the peer verification depth.
|
201
|
+
/**
|
202
|
+
* This function may be used to configure the maximum verification depth
|
203
|
+
* allowed by the context.
|
204
|
+
*
|
205
|
+
* @param depth Maximum depth for the certificate chain verification that
|
206
|
+
* shall be allowed.
|
207
|
+
*
|
208
|
+
* @throws boost::system::system_error Thrown on failure.
|
209
|
+
*
|
210
|
+
* @note Calls @c SSL_CTX_set_verify_depth.
|
211
|
+
*/
|
212
|
+
BOOST_ASIO_DECL void set_verify_depth(int depth);
|
213
|
+
|
214
|
+
/// Set the peer verification depth.
|
215
|
+
/**
|
216
|
+
* This function may be used to configure the maximum verification depth
|
217
|
+
* allowed by the context.
|
218
|
+
*
|
219
|
+
* @param depth Maximum depth for the certificate chain verification that
|
220
|
+
* shall be allowed.
|
221
|
+
*
|
222
|
+
* @param ec Set to indicate what error occurred, if any.
|
223
|
+
*
|
224
|
+
* @note Calls @c SSL_CTX_set_verify_depth.
|
225
|
+
*/
|
226
|
+
BOOST_ASIO_DECL boost::system::error_code set_verify_depth(
|
227
|
+
int depth, boost::system::error_code& ec);
|
228
|
+
|
229
|
+
/// Set the callback used to verify peer certificates.
|
230
|
+
/**
|
231
|
+
* This function is used to specify a callback function that will be called
|
232
|
+
* by the implementation when it needs to verify a peer certificate.
|
233
|
+
*
|
234
|
+
* @param callback The function object to be used for verifying a certificate.
|
235
|
+
* The function signature of the handler must be:
|
236
|
+
* @code bool verify_callback(
|
237
|
+
* bool preverified, // True if the certificate passed pre-verification.
|
238
|
+
* verify_context& ctx // The peer certificate and other context.
|
239
|
+
* ); @endcode
|
240
|
+
* The return value of the callback is true if the certificate has passed
|
241
|
+
* verification, false otherwise.
|
242
|
+
*
|
243
|
+
* @throws boost::system::system_error Thrown on failure.
|
244
|
+
*
|
245
|
+
* @note Calls @c SSL_CTX_set_verify.
|
246
|
+
*/
|
247
|
+
template <typename VerifyCallback>
|
248
|
+
void set_verify_callback(VerifyCallback callback);
|
249
|
+
|
250
|
+
/// Set the callback used to verify peer certificates.
|
251
|
+
/**
|
252
|
+
* This function is used to specify a callback function that will be called
|
253
|
+
* by the implementation when it needs to verify a peer certificate.
|
254
|
+
*
|
255
|
+
* @param callback The function object to be used for verifying a certificate.
|
256
|
+
* The function signature of the handler must be:
|
257
|
+
* @code bool verify_callback(
|
258
|
+
* bool preverified, // True if the certificate passed pre-verification.
|
259
|
+
* verify_context& ctx // The peer certificate and other context.
|
260
|
+
* ); @endcode
|
261
|
+
* The return value of the callback is true if the certificate has passed
|
262
|
+
* verification, false otherwise.
|
263
|
+
*
|
264
|
+
* @param ec Set to indicate what error occurred, if any.
|
265
|
+
*
|
266
|
+
* @note Calls @c SSL_CTX_set_verify.
|
267
|
+
*/
|
268
|
+
template <typename VerifyCallback>
|
269
|
+
boost::system::error_code set_verify_callback(VerifyCallback callback,
|
270
|
+
boost::system::error_code& ec);
|
271
|
+
|
272
|
+
/// Load a certification authority file for performing verification.
|
273
|
+
/**
|
274
|
+
* This function is used to load one or more trusted certification authorities
|
275
|
+
* from a file.
|
276
|
+
*
|
277
|
+
* @param filename The name of a file containing certification authority
|
278
|
+
* certificates in PEM format.
|
279
|
+
*
|
280
|
+
* @throws boost::system::system_error Thrown on failure.
|
281
|
+
*
|
282
|
+
* @note Calls @c SSL_CTX_load_verify_locations.
|
283
|
+
*/
|
284
|
+
BOOST_ASIO_DECL void load_verify_file(const std::string& filename);
|
285
|
+
|
286
|
+
/// Load a certification authority file for performing verification.
|
287
|
+
/**
|
288
|
+
* This function is used to load the certificates for one or more trusted
|
289
|
+
* certification authorities from a file.
|
290
|
+
*
|
291
|
+
* @param filename The name of a file containing certification authority
|
292
|
+
* certificates in PEM format.
|
293
|
+
*
|
294
|
+
* @param ec Set to indicate what error occurred, if any.
|
295
|
+
*
|
296
|
+
* @note Calls @c SSL_CTX_load_verify_locations.
|
297
|
+
*/
|
298
|
+
BOOST_ASIO_DECL boost::system::error_code load_verify_file(
|
299
|
+
const std::string& filename, boost::system::error_code& ec);
|
300
|
+
|
301
|
+
/// Add certification authority for performing verification.
|
302
|
+
/**
|
303
|
+
* This function is used to add one trusted certification authority
|
304
|
+
* from a memory buffer.
|
305
|
+
*
|
306
|
+
* @param ca The buffer containing the certification authority certificate.
|
307
|
+
* The certificate must use the PEM format.
|
308
|
+
*
|
309
|
+
* @throws boost::system::system_error Thrown on failure.
|
310
|
+
*
|
311
|
+
* @note Calls @c SSL_CTX_get_cert_store and @c X509_STORE_add_cert.
|
312
|
+
*/
|
313
|
+
BOOST_ASIO_DECL void add_certificate_authority(const const_buffer& ca);
|
314
|
+
|
315
|
+
/// Add certification authority for performing verification.
|
316
|
+
/**
|
317
|
+
* This function is used to add one trusted certification authority
|
318
|
+
* from a memory buffer.
|
319
|
+
*
|
320
|
+
* @param ca The buffer containing the certification authority certificate.
|
321
|
+
* The certificate must use the PEM format.
|
322
|
+
*
|
323
|
+
* @param ec Set to indicate what error occurred, if any.
|
324
|
+
*
|
325
|
+
* @note Calls @c SSL_CTX_get_cert_store and @c X509_STORE_add_cert.
|
326
|
+
*/
|
327
|
+
BOOST_ASIO_DECL boost::system::error_code add_certificate_authority(
|
328
|
+
const const_buffer& ca, boost::system::error_code& ec);
|
329
|
+
|
330
|
+
/// Configures the context to use the default directories for finding
|
331
|
+
/// certification authority certificates.
|
332
|
+
/**
|
333
|
+
* This function specifies that the context should use the default,
|
334
|
+
* system-dependent directories for locating certification authority
|
335
|
+
* certificates.
|
336
|
+
*
|
337
|
+
* @throws boost::system::system_error Thrown on failure.
|
338
|
+
*
|
339
|
+
* @note Calls @c SSL_CTX_set_default_verify_paths.
|
340
|
+
*/
|
341
|
+
BOOST_ASIO_DECL void set_default_verify_paths();
|
342
|
+
|
343
|
+
/// Configures the context to use the default directories for finding
|
344
|
+
/// certification authority certificates.
|
345
|
+
/**
|
346
|
+
* This function specifies that the context should use the default,
|
347
|
+
* system-dependent directories for locating certification authority
|
348
|
+
* certificates.
|
349
|
+
*
|
350
|
+
* @param ec Set to indicate what error occurred, if any.
|
351
|
+
*
|
352
|
+
* @note Calls @c SSL_CTX_set_default_verify_paths.
|
353
|
+
*/
|
354
|
+
BOOST_ASIO_DECL boost::system::error_code set_default_verify_paths(
|
355
|
+
boost::system::error_code& ec);
|
356
|
+
|
357
|
+
/// Add a directory containing certificate authority files to be used for
|
358
|
+
/// performing verification.
|
359
|
+
/**
|
360
|
+
* This function is used to specify the name of a directory containing
|
361
|
+
* certification authority certificates. Each file in the directory must
|
362
|
+
* contain a single certificate. The files must be named using the subject
|
363
|
+
* name's hash and an extension of ".0".
|
364
|
+
*
|
365
|
+
* @param path The name of a directory containing the certificates.
|
366
|
+
*
|
367
|
+
* @throws boost::system::system_error Thrown on failure.
|
368
|
+
*
|
369
|
+
* @note Calls @c SSL_CTX_load_verify_locations.
|
370
|
+
*/
|
371
|
+
BOOST_ASIO_DECL void add_verify_path(const std::string& path);
|
372
|
+
|
373
|
+
/// Add a directory containing certificate authority files to be used for
|
374
|
+
/// performing verification.
|
375
|
+
/**
|
376
|
+
* This function is used to specify the name of a directory containing
|
377
|
+
* certification authority certificates. Each file in the directory must
|
378
|
+
* contain a single certificate. The files must be named using the subject
|
379
|
+
* name's hash and an extension of ".0".
|
380
|
+
*
|
381
|
+
* @param path The name of a directory containing the certificates.
|
382
|
+
*
|
383
|
+
* @param ec Set to indicate what error occurred, if any.
|
384
|
+
*
|
385
|
+
* @note Calls @c SSL_CTX_load_verify_locations.
|
386
|
+
*/
|
387
|
+
BOOST_ASIO_DECL boost::system::error_code add_verify_path(
|
388
|
+
const std::string& path, boost::system::error_code& ec);
|
389
|
+
|
390
|
+
/// Use a certificate from a memory buffer.
|
391
|
+
/**
|
392
|
+
* This function is used to load a certificate into the context from a buffer.
|
393
|
+
*
|
394
|
+
* @param certificate The buffer containing the certificate.
|
395
|
+
*
|
396
|
+
* @param format The certificate format (ASN.1 or PEM).
|
397
|
+
*
|
398
|
+
* @throws boost::system::system_error Thrown on failure.
|
399
|
+
*
|
400
|
+
* @note Calls @c SSL_CTX_use_certificate or SSL_CTX_use_certificate_ASN1.
|
401
|
+
*/
|
402
|
+
BOOST_ASIO_DECL void use_certificate(
|
403
|
+
const const_buffer& certificate, file_format format);
|
404
|
+
|
405
|
+
/// Use a certificate from a memory buffer.
|
406
|
+
/**
|
407
|
+
* This function is used to load a certificate into the context from a buffer.
|
408
|
+
*
|
409
|
+
* @param certificate The buffer containing the certificate.
|
410
|
+
*
|
411
|
+
* @param format The certificate format (ASN.1 or PEM).
|
412
|
+
*
|
413
|
+
* @param ec Set to indicate what error occurred, if any.
|
414
|
+
*
|
415
|
+
* @note Calls @c SSL_CTX_use_certificate or SSL_CTX_use_certificate_ASN1.
|
416
|
+
*/
|
417
|
+
BOOST_ASIO_DECL boost::system::error_code use_certificate(
|
418
|
+
const const_buffer& certificate, file_format format,
|
419
|
+
boost::system::error_code& ec);
|
420
|
+
|
421
|
+
/// Use a certificate from a file.
|
422
|
+
/**
|
423
|
+
* This function is used to load a certificate into the context from a file.
|
424
|
+
*
|
425
|
+
* @param filename The name of the file containing the certificate.
|
426
|
+
*
|
427
|
+
* @param format The file format (ASN.1 or PEM).
|
428
|
+
*
|
429
|
+
* @throws boost::system::system_error Thrown on failure.
|
430
|
+
*
|
431
|
+
* @note Calls @c SSL_CTX_use_certificate_file.
|
432
|
+
*/
|
433
|
+
BOOST_ASIO_DECL void use_certificate_file(
|
434
|
+
const std::string& filename, file_format format);
|
435
|
+
|
436
|
+
/// Use a certificate from a file.
|
437
|
+
/**
|
438
|
+
* This function is used to load a certificate into the context from a file.
|
439
|
+
*
|
440
|
+
* @param filename The name of the file containing the certificate.
|
441
|
+
*
|
442
|
+
* @param format The file format (ASN.1 or PEM).
|
443
|
+
*
|
444
|
+
* @param ec Set to indicate what error occurred, if any.
|
445
|
+
*
|
446
|
+
* @note Calls @c SSL_CTX_use_certificate_file.
|
447
|
+
*/
|
448
|
+
BOOST_ASIO_DECL boost::system::error_code use_certificate_file(
|
449
|
+
const std::string& filename, file_format format,
|
450
|
+
boost::system::error_code& ec);
|
451
|
+
|
452
|
+
/// Use a certificate chain from a memory buffer.
|
453
|
+
/**
|
454
|
+
* This function is used to load a certificate chain into the context from a
|
455
|
+
* buffer.
|
456
|
+
*
|
457
|
+
* @param chain The buffer containing the certificate chain. The certificate
|
458
|
+
* chain must use the PEM format.
|
459
|
+
*
|
460
|
+
* @throws boost::system::system_error Thrown on failure.
|
461
|
+
*
|
462
|
+
* @note Calls @c SSL_CTX_use_certificate and SSL_CTX_add_extra_chain_cert.
|
463
|
+
*/
|
464
|
+
BOOST_ASIO_DECL void use_certificate_chain(const const_buffer& chain);
|
465
|
+
|
466
|
+
/// Use a certificate chain from a memory buffer.
|
467
|
+
/**
|
468
|
+
* This function is used to load a certificate chain into the context from a
|
469
|
+
* buffer.
|
470
|
+
*
|
471
|
+
* @param chain The buffer containing the certificate chain. The certificate
|
472
|
+
* chain must use the PEM format.
|
473
|
+
*
|
474
|
+
* @param ec Set to indicate what error occurred, if any.
|
475
|
+
*
|
476
|
+
* @note Calls @c SSL_CTX_use_certificate and SSL_CTX_add_extra_chain_cert.
|
477
|
+
*/
|
478
|
+
BOOST_ASIO_DECL boost::system::error_code use_certificate_chain(
|
479
|
+
const const_buffer& chain, boost::system::error_code& ec);
|
480
|
+
|
481
|
+
/// Use a certificate chain from a file.
|
482
|
+
/**
|
483
|
+
* This function is used to load a certificate chain into the context from a
|
484
|
+
* file.
|
485
|
+
*
|
486
|
+
* @param filename The name of the file containing the certificate. The file
|
487
|
+
* must use the PEM format.
|
488
|
+
*
|
489
|
+
* @throws boost::system::system_error Thrown on failure.
|
490
|
+
*
|
491
|
+
* @note Calls @c SSL_CTX_use_certificate_chain_file.
|
492
|
+
*/
|
493
|
+
BOOST_ASIO_DECL void use_certificate_chain_file(const std::string& filename);
|
494
|
+
|
495
|
+
/// Use a certificate chain from a file.
|
496
|
+
/**
|
497
|
+
* This function is used to load a certificate chain into the context from a
|
498
|
+
* file.
|
499
|
+
*
|
500
|
+
* @param filename The name of the file containing the certificate. The file
|
501
|
+
* must use the PEM format.
|
502
|
+
*
|
503
|
+
* @param ec Set to indicate what error occurred, if any.
|
504
|
+
*
|
505
|
+
* @note Calls @c SSL_CTX_use_certificate_chain_file.
|
506
|
+
*/
|
507
|
+
BOOST_ASIO_DECL boost::system::error_code use_certificate_chain_file(
|
508
|
+
const std::string& filename, boost::system::error_code& ec);
|
509
|
+
|
510
|
+
/// Use a private key from a memory buffer.
|
511
|
+
/**
|
512
|
+
* This function is used to load a private key into the context from a buffer.
|
513
|
+
*
|
514
|
+
* @param private_key The buffer containing the private key.
|
515
|
+
*
|
516
|
+
* @param format The private key format (ASN.1 or PEM).
|
517
|
+
*
|
518
|
+
* @throws boost::system::system_error Thrown on failure.
|
519
|
+
*
|
520
|
+
* @note Calls @c SSL_CTX_use_PrivateKey or SSL_CTX_use_PrivateKey_ASN1.
|
521
|
+
*/
|
522
|
+
BOOST_ASIO_DECL void use_private_key(
|
523
|
+
const const_buffer& private_key, file_format format);
|
524
|
+
|
525
|
+
/// Use a private key from a memory buffer.
|
526
|
+
/**
|
527
|
+
* This function is used to load a private key into the context from a buffer.
|
528
|
+
*
|
529
|
+
* @param private_key The buffer containing the private key.
|
530
|
+
*
|
531
|
+
* @param format The private key format (ASN.1 or PEM).
|
532
|
+
*
|
533
|
+
* @param ec Set to indicate what error occurred, if any.
|
534
|
+
*
|
535
|
+
* @note Calls @c SSL_CTX_use_PrivateKey or SSL_CTX_use_PrivateKey_ASN1.
|
536
|
+
*/
|
537
|
+
BOOST_ASIO_DECL boost::system::error_code use_private_key(
|
538
|
+
const const_buffer& private_key, file_format format,
|
539
|
+
boost::system::error_code& ec);
|
540
|
+
|
541
|
+
/// Use a private key from a file.
|
542
|
+
/**
|
543
|
+
* This function is used to load a private key into the context from a file.
|
544
|
+
*
|
545
|
+
* @param filename The name of the file containing the private key.
|
546
|
+
*
|
547
|
+
* @param format The file format (ASN.1 or PEM).
|
548
|
+
*
|
549
|
+
* @throws boost::system::system_error Thrown on failure.
|
550
|
+
*
|
551
|
+
* @note Calls @c SSL_CTX_use_PrivateKey_file.
|
552
|
+
*/
|
553
|
+
BOOST_ASIO_DECL void use_private_key_file(
|
554
|
+
const std::string& filename, file_format format);
|
555
|
+
|
556
|
+
/// Use a private key from a file.
|
557
|
+
/**
|
558
|
+
* This function is used to load a private key into the context from a file.
|
559
|
+
*
|
560
|
+
* @param filename The name of the file containing the private key.
|
561
|
+
*
|
562
|
+
* @param format The file format (ASN.1 or PEM).
|
563
|
+
*
|
564
|
+
* @param ec Set to indicate what error occurred, if any.
|
565
|
+
*
|
566
|
+
* @note Calls @c SSL_CTX_use_PrivateKey_file.
|
567
|
+
*/
|
568
|
+
BOOST_ASIO_DECL boost::system::error_code use_private_key_file(
|
569
|
+
const std::string& filename, file_format format,
|
570
|
+
boost::system::error_code& ec);
|
571
|
+
|
572
|
+
/// Use an RSA private key from a memory buffer.
|
573
|
+
/**
|
574
|
+
* This function is used to load an RSA private key into the context from a
|
575
|
+
* buffer.
|
576
|
+
*
|
577
|
+
* @param private_key The buffer containing the RSA private key.
|
578
|
+
*
|
579
|
+
* @param format The private key format (ASN.1 or PEM).
|
580
|
+
*
|
581
|
+
* @throws boost::system::system_error Thrown on failure.
|
582
|
+
*
|
583
|
+
* @note Calls @c SSL_CTX_use_RSAPrivateKey or SSL_CTX_use_RSAPrivateKey_ASN1.
|
584
|
+
*/
|
585
|
+
BOOST_ASIO_DECL void use_rsa_private_key(
|
586
|
+
const const_buffer& private_key, file_format format);
|
587
|
+
|
588
|
+
/// Use an RSA private key from a memory buffer.
|
589
|
+
/**
|
590
|
+
* This function is used to load an RSA private key into the context from a
|
591
|
+
* buffer.
|
592
|
+
*
|
593
|
+
* @param private_key The buffer containing the RSA private key.
|
594
|
+
*
|
595
|
+
* @param format The private key format (ASN.1 or PEM).
|
596
|
+
*
|
597
|
+
* @param ec Set to indicate what error occurred, if any.
|
598
|
+
*
|
599
|
+
* @note Calls @c SSL_CTX_use_RSAPrivateKey or SSL_CTX_use_RSAPrivateKey_ASN1.
|
600
|
+
*/
|
601
|
+
BOOST_ASIO_DECL boost::system::error_code use_rsa_private_key(
|
602
|
+
const const_buffer& private_key, file_format format,
|
603
|
+
boost::system::error_code& ec);
|
604
|
+
|
605
|
+
/// Use an RSA private key from a file.
|
606
|
+
/**
|
607
|
+
* This function is used to load an RSA private key into the context from a
|
608
|
+
* file.
|
609
|
+
*
|
610
|
+
* @param filename The name of the file containing the RSA private key.
|
611
|
+
*
|
612
|
+
* @param format The file format (ASN.1 or PEM).
|
613
|
+
*
|
614
|
+
* @throws boost::system::system_error Thrown on failure.
|
615
|
+
*
|
616
|
+
* @note Calls @c SSL_CTX_use_RSAPrivateKey_file.
|
617
|
+
*/
|
618
|
+
BOOST_ASIO_DECL void use_rsa_private_key_file(
|
619
|
+
const std::string& filename, file_format format);
|
620
|
+
|
621
|
+
/// Use an RSA private key from a file.
|
622
|
+
/**
|
623
|
+
* This function is used to load an RSA private key into the context from a
|
624
|
+
* file.
|
625
|
+
*
|
626
|
+
* @param filename The name of the file containing the RSA private key.
|
627
|
+
*
|
628
|
+
* @param format The file format (ASN.1 or PEM).
|
629
|
+
*
|
630
|
+
* @param ec Set to indicate what error occurred, if any.
|
631
|
+
*
|
632
|
+
* @note Calls @c SSL_CTX_use_RSAPrivateKey_file.
|
633
|
+
*/
|
634
|
+
BOOST_ASIO_DECL boost::system::error_code use_rsa_private_key_file(
|
635
|
+
const std::string& filename, file_format format,
|
636
|
+
boost::system::error_code& ec);
|
637
|
+
|
638
|
+
/// Use the specified memory buffer to obtain the temporary Diffie-Hellman
|
639
|
+
/// parameters.
|
640
|
+
/**
|
641
|
+
* This function is used to load Diffie-Hellman parameters into the context
|
642
|
+
* from a buffer.
|
643
|
+
*
|
644
|
+
* @param dh The memory buffer containing the Diffie-Hellman parameters. The
|
645
|
+
* buffer must use the PEM format.
|
646
|
+
*
|
647
|
+
* @throws boost::system::system_error Thrown on failure.
|
648
|
+
*
|
649
|
+
* @note Calls @c SSL_CTX_set_tmp_dh.
|
650
|
+
*/
|
651
|
+
BOOST_ASIO_DECL void use_tmp_dh(const const_buffer& dh);
|
652
|
+
|
653
|
+
/// Use the specified memory buffer to obtain the temporary Diffie-Hellman
|
654
|
+
/// parameters.
|
655
|
+
/**
|
656
|
+
* This function is used to load Diffie-Hellman parameters into the context
|
657
|
+
* from a buffer.
|
658
|
+
*
|
659
|
+
* @param dh The memory buffer containing the Diffie-Hellman parameters. The
|
660
|
+
* buffer must use the PEM format.
|
661
|
+
*
|
662
|
+
* @param ec Set to indicate what error occurred, if any.
|
663
|
+
*
|
664
|
+
* @note Calls @c SSL_CTX_set_tmp_dh.
|
665
|
+
*/
|
666
|
+
BOOST_ASIO_DECL boost::system::error_code use_tmp_dh(
|
667
|
+
const const_buffer& dh, boost::system::error_code& ec);
|
668
|
+
|
669
|
+
/// Use the specified file to obtain the temporary Diffie-Hellman parameters.
|
670
|
+
/**
|
671
|
+
* This function is used to load Diffie-Hellman parameters into the context
|
672
|
+
* from a file.
|
673
|
+
*
|
674
|
+
* @param filename The name of the file containing the Diffie-Hellman
|
675
|
+
* parameters. The file must use the PEM format.
|
676
|
+
*
|
677
|
+
* @throws boost::system::system_error Thrown on failure.
|
678
|
+
*
|
679
|
+
* @note Calls @c SSL_CTX_set_tmp_dh.
|
680
|
+
*/
|
681
|
+
BOOST_ASIO_DECL void use_tmp_dh_file(const std::string& filename);
|
682
|
+
|
683
|
+
/// Use the specified file to obtain the temporary Diffie-Hellman parameters.
|
684
|
+
/**
|
685
|
+
* This function is used to load Diffie-Hellman parameters into the context
|
686
|
+
* from a file.
|
687
|
+
*
|
688
|
+
* @param filename The name of the file containing the Diffie-Hellman
|
689
|
+
* parameters. The file must use the PEM format.
|
690
|
+
*
|
691
|
+
* @param ec Set to indicate what error occurred, if any.
|
692
|
+
*
|
693
|
+
* @note Calls @c SSL_CTX_set_tmp_dh.
|
694
|
+
*/
|
695
|
+
BOOST_ASIO_DECL boost::system::error_code use_tmp_dh_file(
|
696
|
+
const std::string& filename, boost::system::error_code& ec);
|
697
|
+
|
698
|
+
/// Set the password callback.
|
699
|
+
/**
|
700
|
+
* This function is used to specify a callback function to obtain password
|
701
|
+
* information about an encrypted key in PEM format.
|
702
|
+
*
|
703
|
+
* @param callback The function object to be used for obtaining the password.
|
704
|
+
* The function signature of the handler must be:
|
705
|
+
* @code std::string password_callback(
|
706
|
+
* std::size_t max_length, // The maximum size for a password.
|
707
|
+
* password_purpose purpose // Whether password is for reading or writing.
|
708
|
+
* ); @endcode
|
709
|
+
* The return value of the callback is a string containing the password.
|
710
|
+
*
|
711
|
+
* @throws boost::system::system_error Thrown on failure.
|
712
|
+
*
|
713
|
+
* @note Calls @c SSL_CTX_set_default_passwd_cb.
|
714
|
+
*/
|
715
|
+
template <typename PasswordCallback>
|
716
|
+
void set_password_callback(PasswordCallback callback);
|
717
|
+
|
718
|
+
/// Set the password callback.
|
719
|
+
/**
|
720
|
+
* This function is used to specify a callback function to obtain password
|
721
|
+
* information about an encrypted key in PEM format.
|
722
|
+
*
|
723
|
+
* @param callback The function object to be used for obtaining the password.
|
724
|
+
* The function signature of the handler must be:
|
725
|
+
* @code std::string password_callback(
|
726
|
+
* std::size_t max_length, // The maximum size for a password.
|
727
|
+
* password_purpose purpose // Whether password is for reading or writing.
|
728
|
+
* ); @endcode
|
729
|
+
* The return value of the callback is a string containing the password.
|
730
|
+
*
|
731
|
+
* @param ec Set to indicate what error occurred, if any.
|
732
|
+
*
|
733
|
+
* @note Calls @c SSL_CTX_set_default_passwd_cb.
|
734
|
+
*/
|
735
|
+
template <typename PasswordCallback>
|
736
|
+
boost::system::error_code set_password_callback(PasswordCallback callback,
|
737
|
+
boost::system::error_code& ec);
|
738
|
+
|
739
|
+
private:
|
740
|
+
struct bio_cleanup;
|
741
|
+
struct x509_cleanup;
|
742
|
+
struct evp_pkey_cleanup;
|
743
|
+
struct rsa_cleanup;
|
744
|
+
struct dh_cleanup;
|
745
|
+
|
746
|
+
// Helper function used to set a peer certificate verification callback.
|
747
|
+
BOOST_ASIO_DECL boost::system::error_code do_set_verify_callback(
|
748
|
+
detail::verify_callback_base* callback, boost::system::error_code& ec);
|
749
|
+
|
750
|
+
// Callback used when the SSL implementation wants to verify a certificate.
|
751
|
+
BOOST_ASIO_DECL static int verify_callback_function(
|
752
|
+
int preverified, X509_STORE_CTX* ctx);
|
753
|
+
|
754
|
+
// Helper function used to set a password callback.
|
755
|
+
BOOST_ASIO_DECL boost::system::error_code do_set_password_callback(
|
756
|
+
detail::password_callback_base* callback, boost::system::error_code& ec);
|
757
|
+
|
758
|
+
// Callback used when the SSL implementation wants a password.
|
759
|
+
BOOST_ASIO_DECL static int password_callback_function(
|
760
|
+
char* buf, int size, int purpose, void* data);
|
761
|
+
|
762
|
+
// Helper function to set the temporary Diffie-Hellman parameters from a BIO.
|
763
|
+
BOOST_ASIO_DECL boost::system::error_code do_use_tmp_dh(
|
764
|
+
BIO* bio, boost::system::error_code& ec);
|
765
|
+
|
766
|
+
// Helper function to make a BIO from a memory buffer.
|
767
|
+
BOOST_ASIO_DECL BIO* make_buffer_bio(const const_buffer& b);
|
768
|
+
|
769
|
+
// The underlying native implementation.
|
770
|
+
native_handle_type handle_;
|
771
|
+
|
772
|
+
// Ensure openssl is initialised.
|
773
|
+
boost::asio::ssl::detail::openssl_init<> init_;
|
774
|
+
};
|
775
|
+
|
776
|
+
#endif // defined(BOOST_ASIO_ENABLE_OLD_SSL)
|
777
|
+
|
778
|
+
} // namespace ssl
|
779
|
+
} // namespace asio
|
780
|
+
} // namespace boost
|
781
|
+
|
782
|
+
#include <boost/asio/detail/pop_options.hpp>
|
783
|
+
|
784
|
+
#include <boost/asio/ssl/impl/context.hpp>
|
785
|
+
#if defined(BOOST_ASIO_HEADER_ONLY)
|
786
|
+
# include <boost/asio/ssl/impl/context.ipp>
|
787
|
+
#endif // defined(BOOST_ASIO_HEADER_ONLY)
|
788
|
+
|
789
|
+
#endif // BOOST_ASIO_SSL_CONTEXT_HPP
|