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,186 @@
|
|
1
|
+
//
|
2
|
+
// ssl/old/stream_service.hpp
|
3
|
+
// ~~~~~~~~~~~~~~~~~~~~~~~~~~
|
4
|
+
//
|
5
|
+
// Copyright (c) 2005 Voipster / Indrek dot Juhani at voipster dot com
|
6
|
+
// Copyright (c) 2005-2017 Christopher M. Kohlhoff (chris at kohlhoff dot com)
|
7
|
+
//
|
8
|
+
// Distributed under the Boost Software License, Version 1.0. (See accompanying
|
9
|
+
// file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
|
10
|
+
//
|
11
|
+
|
12
|
+
#ifndef BOOST_ASIO_SSL_OLD_STREAM_SERVICE_HPP
|
13
|
+
#define BOOST_ASIO_SSL_OLD_STREAM_SERVICE_HPP
|
14
|
+
|
15
|
+
#if defined(_MSC_VER) && (_MSC_VER >= 1200)
|
16
|
+
# pragma once
|
17
|
+
#endif // defined(_MSC_VER) && (_MSC_VER >= 1200)
|
18
|
+
|
19
|
+
#include <boost/asio/detail/config.hpp>
|
20
|
+
#include <cstddef>
|
21
|
+
#include <boost/noncopyable.hpp>
|
22
|
+
#include <boost/asio/io_service.hpp>
|
23
|
+
#include <boost/asio/ssl/basic_context.hpp>
|
24
|
+
#include <boost/asio/ssl/old/detail/openssl_stream_service.hpp>
|
25
|
+
#include <boost/asio/ssl/stream_base.hpp>
|
26
|
+
|
27
|
+
#include <boost/asio/detail/push_options.hpp>
|
28
|
+
|
29
|
+
namespace boost {
|
30
|
+
namespace asio {
|
31
|
+
namespace ssl {
|
32
|
+
namespace old {
|
33
|
+
|
34
|
+
/// Default service implementation for an SSL stream.
|
35
|
+
class stream_service
|
36
|
+
#if defined(GENERATING_DOCUMENTATION)
|
37
|
+
: public boost::asio::io_service::service
|
38
|
+
#else
|
39
|
+
: public boost::asio::detail::service_base<stream_service>
|
40
|
+
#endif
|
41
|
+
{
|
42
|
+
private:
|
43
|
+
// The type of the platform-specific implementation.
|
44
|
+
typedef old::detail::openssl_stream_service service_impl_type;
|
45
|
+
|
46
|
+
public:
|
47
|
+
#if defined(GENERATING_DOCUMENTATION)
|
48
|
+
/// The unique service identifier.
|
49
|
+
static boost::asio::io_service::id id;
|
50
|
+
#endif
|
51
|
+
|
52
|
+
/// The type of a stream implementation.
|
53
|
+
#if defined(GENERATING_DOCUMENTATION)
|
54
|
+
typedef implementation_defined impl_type;
|
55
|
+
#else
|
56
|
+
typedef service_impl_type::impl_type impl_type;
|
57
|
+
#endif
|
58
|
+
|
59
|
+
/// Construct a new stream service for the specified io_service.
|
60
|
+
explicit stream_service(boost::asio::io_service& io_service)
|
61
|
+
: boost::asio::detail::service_base<stream_service>(io_service),
|
62
|
+
service_impl_(boost::asio::use_service<service_impl_type>(io_service))
|
63
|
+
{
|
64
|
+
}
|
65
|
+
|
66
|
+
/// Return a null stream implementation.
|
67
|
+
impl_type null() const
|
68
|
+
{
|
69
|
+
return service_impl_.null();
|
70
|
+
}
|
71
|
+
|
72
|
+
/// Create a new stream implementation.
|
73
|
+
template <typename Stream, typename Context_Service>
|
74
|
+
void create(impl_type& impl, Stream& next_layer,
|
75
|
+
basic_context<Context_Service>& context)
|
76
|
+
{
|
77
|
+
service_impl_.create(impl, next_layer, context);
|
78
|
+
}
|
79
|
+
|
80
|
+
/// Destroy a stream implementation.
|
81
|
+
template <typename Stream>
|
82
|
+
void destroy(impl_type& impl, Stream& next_layer)
|
83
|
+
{
|
84
|
+
service_impl_.destroy(impl, next_layer);
|
85
|
+
}
|
86
|
+
|
87
|
+
/// Perform SSL handshaking.
|
88
|
+
template <typename Stream>
|
89
|
+
boost::system::error_code handshake(impl_type& impl, Stream& next_layer,
|
90
|
+
stream_base::handshake_type type, boost::system::error_code& ec)
|
91
|
+
{
|
92
|
+
return service_impl_.handshake(impl, next_layer, type, ec);
|
93
|
+
}
|
94
|
+
|
95
|
+
/// Start an asynchronous SSL handshake.
|
96
|
+
template <typename Stream, typename HandshakeHandler>
|
97
|
+
void async_handshake(impl_type& impl, Stream& next_layer,
|
98
|
+
stream_base::handshake_type type, HandshakeHandler handler)
|
99
|
+
{
|
100
|
+
service_impl_.async_handshake(impl, next_layer, type, handler);
|
101
|
+
}
|
102
|
+
|
103
|
+
/// Shut down SSL on the stream.
|
104
|
+
template <typename Stream>
|
105
|
+
boost::system::error_code shutdown(impl_type& impl, Stream& next_layer,
|
106
|
+
boost::system::error_code& ec)
|
107
|
+
{
|
108
|
+
return service_impl_.shutdown(impl, next_layer, ec);
|
109
|
+
}
|
110
|
+
|
111
|
+
/// Asynchronously shut down SSL on the stream.
|
112
|
+
template <typename Stream, typename ShutdownHandler>
|
113
|
+
void async_shutdown(impl_type& impl, Stream& next_layer,
|
114
|
+
ShutdownHandler handler)
|
115
|
+
{
|
116
|
+
service_impl_.async_shutdown(impl, next_layer, handler);
|
117
|
+
}
|
118
|
+
|
119
|
+
/// Write some data to the stream.
|
120
|
+
template <typename Stream, typename ConstBufferSequence>
|
121
|
+
std::size_t write_some(impl_type& impl, Stream& next_layer,
|
122
|
+
const ConstBufferSequence& buffers, boost::system::error_code& ec)
|
123
|
+
{
|
124
|
+
return service_impl_.write_some(impl, next_layer, buffers, ec);
|
125
|
+
}
|
126
|
+
|
127
|
+
/// Start an asynchronous write.
|
128
|
+
template <typename Stream, typename ConstBufferSequence,
|
129
|
+
typename WriteHandler>
|
130
|
+
void async_write_some(impl_type& impl, Stream& next_layer,
|
131
|
+
const ConstBufferSequence& buffers, WriteHandler handler)
|
132
|
+
{
|
133
|
+
service_impl_.async_write_some(impl, next_layer, buffers, handler);
|
134
|
+
}
|
135
|
+
|
136
|
+
/// Read some data from the stream.
|
137
|
+
template <typename Stream, typename MutableBufferSequence>
|
138
|
+
std::size_t read_some(impl_type& impl, Stream& next_layer,
|
139
|
+
const MutableBufferSequence& buffers, boost::system::error_code& ec)
|
140
|
+
{
|
141
|
+
return service_impl_.read_some(impl, next_layer, buffers, ec);
|
142
|
+
}
|
143
|
+
|
144
|
+
/// Start an asynchronous read.
|
145
|
+
template <typename Stream, typename MutableBufferSequence,
|
146
|
+
typename ReadHandler>
|
147
|
+
void async_read_some(impl_type& impl, Stream& next_layer,
|
148
|
+
const MutableBufferSequence& buffers, ReadHandler handler)
|
149
|
+
{
|
150
|
+
service_impl_.async_read_some(impl, next_layer, buffers, handler);
|
151
|
+
}
|
152
|
+
|
153
|
+
/// Peek at the incoming data on the stream.
|
154
|
+
template <typename Stream, typename MutableBufferSequence>
|
155
|
+
std::size_t peek(impl_type& impl, Stream& next_layer,
|
156
|
+
const MutableBufferSequence& buffers, boost::system::error_code& ec)
|
157
|
+
{
|
158
|
+
return service_impl_.peek(impl, next_layer, buffers, ec);
|
159
|
+
}
|
160
|
+
|
161
|
+
/// Determine the amount of data that may be read without blocking.
|
162
|
+
template <typename Stream>
|
163
|
+
std::size_t in_avail(impl_type& impl, Stream& next_layer,
|
164
|
+
boost::system::error_code& ec)
|
165
|
+
{
|
166
|
+
return service_impl_.in_avail(impl, next_layer, ec);
|
167
|
+
}
|
168
|
+
|
169
|
+
private:
|
170
|
+
// Destroy all user-defined handler objects owned by the service.
|
171
|
+
void shutdown_service()
|
172
|
+
{
|
173
|
+
}
|
174
|
+
|
175
|
+
// The service that provides the platform-specific implementation.
|
176
|
+
service_impl_type& service_impl_;
|
177
|
+
};
|
178
|
+
|
179
|
+
} // namespace old
|
180
|
+
} // namespace ssl
|
181
|
+
} // namespace asio
|
182
|
+
} // namespace boost
|
183
|
+
|
184
|
+
#include <boost/asio/detail/pop_options.hpp>
|
185
|
+
|
186
|
+
#endif // BOOST_ASIO_SSL_OLD_STREAM_SERVICE_HPP
|
@@ -0,0 +1,102 @@
|
|
1
|
+
//
|
2
|
+
// ssl/rfc2818_verification.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_RFC2818_VERIFICATION_HPP
|
12
|
+
#define BOOST_ASIO_SSL_RFC2818_VERIFICATION_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 <string>
|
22
|
+
# include <boost/asio/ssl/detail/openssl_types.hpp>
|
23
|
+
# include <boost/asio/ssl/verify_context.hpp>
|
24
|
+
#endif // !defined(BOOST_ASIO_ENABLE_OLD_SSL)
|
25
|
+
|
26
|
+
#include <boost/asio/detail/push_options.hpp>
|
27
|
+
|
28
|
+
namespace boost {
|
29
|
+
namespace asio {
|
30
|
+
namespace ssl {
|
31
|
+
|
32
|
+
#if !defined(BOOST_ASIO_ENABLE_OLD_SSL)
|
33
|
+
|
34
|
+
/// Verifies a certificate against a hostname according to the rules described
|
35
|
+
/// in RFC 2818.
|
36
|
+
/**
|
37
|
+
* @par Example
|
38
|
+
* The following example shows how to synchronously open a secure connection to
|
39
|
+
* a given host name:
|
40
|
+
* @code
|
41
|
+
* using boost::asio::ip::tcp;
|
42
|
+
* namespace ssl = boost::asio::ssl;
|
43
|
+
* typedef ssl::stream<tcp::socket> ssl_socket;
|
44
|
+
*
|
45
|
+
* // Create a context that uses the default paths for finding CA certificates.
|
46
|
+
* ssl::context ctx(ssl::context::sslv23);
|
47
|
+
* ctx.set_default_verify_paths();
|
48
|
+
*
|
49
|
+
* // Open a socket and connect it to the remote host.
|
50
|
+
* boost::asio::io_service io_service;
|
51
|
+
* ssl_socket sock(io_service, ctx);
|
52
|
+
* tcp::resolver resolver(io_service);
|
53
|
+
* tcp::resolver::query query("host.name", "https");
|
54
|
+
* boost::asio::connect(sock.lowest_layer(), resolver.resolve(query));
|
55
|
+
* sock.lowest_layer().set_option(tcp::no_delay(true));
|
56
|
+
*
|
57
|
+
* // Perform SSL handshake and verify the remote host's certificate.
|
58
|
+
* sock.set_verify_mode(ssl::verify_peer);
|
59
|
+
* sock.set_verify_callback(ssl::rfc2818_verification("host.name"));
|
60
|
+
* sock.handshake(ssl_socket::client);
|
61
|
+
*
|
62
|
+
* // ... read and write as normal ...
|
63
|
+
* @endcode
|
64
|
+
*/
|
65
|
+
class rfc2818_verification
|
66
|
+
{
|
67
|
+
public:
|
68
|
+
/// The type of the function object's result.
|
69
|
+
typedef bool result_type;
|
70
|
+
|
71
|
+
/// Constructor.
|
72
|
+
explicit rfc2818_verification(const std::string& host)
|
73
|
+
: host_(host)
|
74
|
+
{
|
75
|
+
}
|
76
|
+
|
77
|
+
/// Perform certificate verification.
|
78
|
+
BOOST_ASIO_DECL bool operator()(bool preverified, verify_context& ctx) const;
|
79
|
+
|
80
|
+
private:
|
81
|
+
// Helper function to check a host name against a pattern.
|
82
|
+
BOOST_ASIO_DECL static bool match_pattern(const char* pattern,
|
83
|
+
std::size_t pattern_length, const char* host);
|
84
|
+
|
85
|
+
// Helper function to check a host name against an IPv4 address
|
86
|
+
// The host name to be checked.
|
87
|
+
std::string host_;
|
88
|
+
};
|
89
|
+
|
90
|
+
#endif // defined(BOOST_ASIO_ENABLE_OLD_SSL)
|
91
|
+
|
92
|
+
} // namespace ssl
|
93
|
+
} // namespace asio
|
94
|
+
} // namespace boost
|
95
|
+
|
96
|
+
#include <boost/asio/detail/pop_options.hpp>
|
97
|
+
|
98
|
+
#if defined(BOOST_ASIO_HEADER_ONLY)
|
99
|
+
# include <boost/asio/ssl/impl/rfc2818_verification.ipp>
|
100
|
+
#endif // defined(BOOST_ASIO_HEADER_ONLY)
|
101
|
+
|
102
|
+
#endif // BOOST_ASIO_SSL_RFC2818_VERIFICATION_HPP
|
@@ -0,0 +1,758 @@
|
|
1
|
+
//
|
2
|
+
// ssl/stream.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_STREAM_HPP
|
12
|
+
#define BOOST_ASIO_SSL_STREAM_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/stream.hpp>
|
22
|
+
#else // defined(BOOST_ASIO_ENABLE_OLD_SSL)
|
23
|
+
# include <boost/asio/async_result.hpp>
|
24
|
+
# include <boost/asio/detail/buffer_sequence_adapter.hpp>
|
25
|
+
# include <boost/asio/detail/handler_type_requirements.hpp>
|
26
|
+
# include <boost/asio/detail/noncopyable.hpp>
|
27
|
+
# include <boost/asio/detail/type_traits.hpp>
|
28
|
+
# include <boost/asio/ssl/context.hpp>
|
29
|
+
# include <boost/asio/ssl/detail/buffered_handshake_op.hpp>
|
30
|
+
# include <boost/asio/ssl/detail/handshake_op.hpp>
|
31
|
+
# include <boost/asio/ssl/detail/io.hpp>
|
32
|
+
# include <boost/asio/ssl/detail/read_op.hpp>
|
33
|
+
# include <boost/asio/ssl/detail/shutdown_op.hpp>
|
34
|
+
# include <boost/asio/ssl/detail/stream_core.hpp>
|
35
|
+
# include <boost/asio/ssl/detail/write_op.hpp>
|
36
|
+
# include <boost/asio/ssl/stream_base.hpp>
|
37
|
+
#endif // defined(BOOST_ASIO_ENABLE_OLD_SSL)
|
38
|
+
|
39
|
+
#include <boost/asio/detail/push_options.hpp>
|
40
|
+
|
41
|
+
namespace boost {
|
42
|
+
namespace asio {
|
43
|
+
namespace ssl {
|
44
|
+
|
45
|
+
#if defined(BOOST_ASIO_ENABLE_OLD_SSL)
|
46
|
+
|
47
|
+
using boost::asio::ssl::old::stream;
|
48
|
+
|
49
|
+
#else // defined(BOOST_ASIO_ENABLE_OLD_SSL)
|
50
|
+
|
51
|
+
/// Provides stream-oriented functionality using SSL.
|
52
|
+
/**
|
53
|
+
* The stream class template provides asynchronous and blocking stream-oriented
|
54
|
+
* functionality using SSL.
|
55
|
+
*
|
56
|
+
* @par Thread Safety
|
57
|
+
* @e Distinct @e objects: Safe.@n
|
58
|
+
* @e Shared @e objects: Unsafe. The application must also ensure that all
|
59
|
+
* asynchronous operations are performed within the same implicit or explicit
|
60
|
+
* strand.
|
61
|
+
*
|
62
|
+
* @par Example
|
63
|
+
* To use the SSL stream template with an ip::tcp::socket, you would write:
|
64
|
+
* @code
|
65
|
+
* boost::asio::io_service io_service;
|
66
|
+
* boost::asio::ssl::context ctx(boost::asio::ssl::context::sslv23);
|
67
|
+
* boost::asio::ssl::stream<asio:ip::tcp::socket> sock(io_service, ctx);
|
68
|
+
* @endcode
|
69
|
+
*
|
70
|
+
* @par Concepts:
|
71
|
+
* AsyncReadStream, AsyncWriteStream, Stream, SyncReadStream, SyncWriteStream.
|
72
|
+
*/
|
73
|
+
template <typename Stream>
|
74
|
+
class stream :
|
75
|
+
public stream_base,
|
76
|
+
private noncopyable
|
77
|
+
{
|
78
|
+
public:
|
79
|
+
/// The native handle type of the SSL stream.
|
80
|
+
typedef SSL* native_handle_type;
|
81
|
+
|
82
|
+
/// Structure for use with deprecated impl_type.
|
83
|
+
struct impl_struct
|
84
|
+
{
|
85
|
+
SSL* ssl;
|
86
|
+
};
|
87
|
+
|
88
|
+
/// (Deprecated: Use native_handle_type.) The underlying implementation type.
|
89
|
+
typedef impl_struct* impl_type;
|
90
|
+
|
91
|
+
/// The type of the next layer.
|
92
|
+
typedef typename remove_reference<Stream>::type next_layer_type;
|
93
|
+
|
94
|
+
/// The type of the lowest layer.
|
95
|
+
typedef typename next_layer_type::lowest_layer_type lowest_layer_type;
|
96
|
+
|
97
|
+
/// Construct a stream.
|
98
|
+
/**
|
99
|
+
* This constructor creates a stream and initialises the underlying stream
|
100
|
+
* object.
|
101
|
+
*
|
102
|
+
* @param arg The argument to be passed to initialise the underlying stream.
|
103
|
+
*
|
104
|
+
* @param ctx The SSL context to be used for the stream.
|
105
|
+
*/
|
106
|
+
template <typename Arg>
|
107
|
+
stream(Arg& arg, context& ctx)
|
108
|
+
: next_layer_(arg),
|
109
|
+
core_(ctx.native_handle(), next_layer_.lowest_layer().get_io_service())
|
110
|
+
{
|
111
|
+
backwards_compatible_impl_.ssl = core_.engine_.native_handle();
|
112
|
+
}
|
113
|
+
|
114
|
+
/// Destructor.
|
115
|
+
~stream()
|
116
|
+
{
|
117
|
+
}
|
118
|
+
|
119
|
+
/// Get the io_service associated with the object.
|
120
|
+
/**
|
121
|
+
* This function may be used to obtain the io_service object that the stream
|
122
|
+
* uses to dispatch handlers for asynchronous operations.
|
123
|
+
*
|
124
|
+
* @return A reference to the io_service object that stream will use to
|
125
|
+
* dispatch handlers. Ownership is not transferred to the caller.
|
126
|
+
*/
|
127
|
+
boost::asio::io_service& get_io_service()
|
128
|
+
{
|
129
|
+
return next_layer_.lowest_layer().get_io_service();
|
130
|
+
}
|
131
|
+
|
132
|
+
/// Get the underlying implementation in the native type.
|
133
|
+
/**
|
134
|
+
* This function may be used to obtain the underlying implementation of the
|
135
|
+
* context. This is intended to allow access to context functionality that is
|
136
|
+
* not otherwise provided.
|
137
|
+
*
|
138
|
+
* @par Example
|
139
|
+
* The native_handle() function returns a pointer of type @c SSL* that is
|
140
|
+
* suitable for passing to functions such as @c SSL_get_verify_result and
|
141
|
+
* @c SSL_get_peer_certificate:
|
142
|
+
* @code
|
143
|
+
* boost::asio::ssl::stream<asio:ip::tcp::socket> sock(io_service, ctx);
|
144
|
+
*
|
145
|
+
* // ... establish connection and perform handshake ...
|
146
|
+
*
|
147
|
+
* if (X509* cert = SSL_get_peer_certificate(sock.native_handle()))
|
148
|
+
* {
|
149
|
+
* if (SSL_get_verify_result(sock.native_handle()) == X509_V_OK)
|
150
|
+
* {
|
151
|
+
* // ...
|
152
|
+
* }
|
153
|
+
* }
|
154
|
+
* @endcode
|
155
|
+
*/
|
156
|
+
native_handle_type native_handle()
|
157
|
+
{
|
158
|
+
return core_.engine_.native_handle();
|
159
|
+
}
|
160
|
+
|
161
|
+
/// (Deprecated: Use native_handle().) Get the underlying implementation in
|
162
|
+
/// the native type.
|
163
|
+
/**
|
164
|
+
* This function may be used to obtain the underlying implementation of the
|
165
|
+
* context. This is intended to allow access to stream functionality that is
|
166
|
+
* not otherwise provided.
|
167
|
+
*/
|
168
|
+
impl_type impl()
|
169
|
+
{
|
170
|
+
return &backwards_compatible_impl_;
|
171
|
+
}
|
172
|
+
|
173
|
+
/// Get a reference to the next layer.
|
174
|
+
/**
|
175
|
+
* This function returns a reference to the next layer in a stack of stream
|
176
|
+
* layers.
|
177
|
+
*
|
178
|
+
* @return A reference to the next layer in the stack of stream layers.
|
179
|
+
* Ownership is not transferred to the caller.
|
180
|
+
*/
|
181
|
+
const next_layer_type& next_layer() const
|
182
|
+
{
|
183
|
+
return next_layer_;
|
184
|
+
}
|
185
|
+
|
186
|
+
/// Get a reference to the next layer.
|
187
|
+
/**
|
188
|
+
* This function returns a reference to the next layer in a stack of stream
|
189
|
+
* layers.
|
190
|
+
*
|
191
|
+
* @return A reference to the next layer in the stack of stream layers.
|
192
|
+
* Ownership is not transferred to the caller.
|
193
|
+
*/
|
194
|
+
next_layer_type& next_layer()
|
195
|
+
{
|
196
|
+
return next_layer_;
|
197
|
+
}
|
198
|
+
|
199
|
+
/// Get a reference to the lowest layer.
|
200
|
+
/**
|
201
|
+
* This function returns a reference to the lowest layer in a stack of
|
202
|
+
* stream layers.
|
203
|
+
*
|
204
|
+
* @return A reference to the lowest layer in the stack of stream layers.
|
205
|
+
* Ownership is not transferred to the caller.
|
206
|
+
*/
|
207
|
+
lowest_layer_type& lowest_layer()
|
208
|
+
{
|
209
|
+
return next_layer_.lowest_layer();
|
210
|
+
}
|
211
|
+
|
212
|
+
/// Get a reference to the lowest layer.
|
213
|
+
/**
|
214
|
+
* This function returns a reference to the lowest layer in a stack of
|
215
|
+
* stream layers.
|
216
|
+
*
|
217
|
+
* @return A reference to the lowest layer in the stack of stream layers.
|
218
|
+
* Ownership is not transferred to the caller.
|
219
|
+
*/
|
220
|
+
const lowest_layer_type& lowest_layer() const
|
221
|
+
{
|
222
|
+
return next_layer_.lowest_layer();
|
223
|
+
}
|
224
|
+
|
225
|
+
/// Set the peer verification mode.
|
226
|
+
/**
|
227
|
+
* This function may be used to configure the peer verification mode used by
|
228
|
+
* the stream. The new mode will override the mode inherited from the context.
|
229
|
+
*
|
230
|
+
* @param v A bitmask of peer verification modes. See @ref verify_mode for
|
231
|
+
* available values.
|
232
|
+
*
|
233
|
+
* @throws boost::system::system_error Thrown on failure.
|
234
|
+
*
|
235
|
+
* @note Calls @c SSL_set_verify.
|
236
|
+
*/
|
237
|
+
void set_verify_mode(verify_mode v)
|
238
|
+
{
|
239
|
+
boost::system::error_code ec;
|
240
|
+
set_verify_mode(v, ec);
|
241
|
+
boost::asio::detail::throw_error(ec, "set_verify_mode");
|
242
|
+
}
|
243
|
+
|
244
|
+
/// Set the peer verification mode.
|
245
|
+
/**
|
246
|
+
* This function may be used to configure the peer verification mode used by
|
247
|
+
* the stream. The new mode will override the mode inherited from the context.
|
248
|
+
*
|
249
|
+
* @param v A bitmask of peer verification modes. See @ref verify_mode for
|
250
|
+
* available values.
|
251
|
+
*
|
252
|
+
* @param ec Set to indicate what error occurred, if any.
|
253
|
+
*
|
254
|
+
* @note Calls @c SSL_set_verify.
|
255
|
+
*/
|
256
|
+
boost::system::error_code set_verify_mode(
|
257
|
+
verify_mode v, boost::system::error_code& ec)
|
258
|
+
{
|
259
|
+
return core_.engine_.set_verify_mode(v, ec);
|
260
|
+
}
|
261
|
+
|
262
|
+
/// Set the peer verification depth.
|
263
|
+
/**
|
264
|
+
* This function may be used to configure the maximum verification depth
|
265
|
+
* allowed by the stream.
|
266
|
+
*
|
267
|
+
* @param depth Maximum depth for the certificate chain verification that
|
268
|
+
* shall be allowed.
|
269
|
+
*
|
270
|
+
* @throws boost::system::system_error Thrown on failure.
|
271
|
+
*
|
272
|
+
* @note Calls @c SSL_set_verify_depth.
|
273
|
+
*/
|
274
|
+
void set_verify_depth(int depth)
|
275
|
+
{
|
276
|
+
boost::system::error_code ec;
|
277
|
+
set_verify_depth(depth, ec);
|
278
|
+
boost::asio::detail::throw_error(ec, "set_verify_depth");
|
279
|
+
}
|
280
|
+
|
281
|
+
/// Set the peer verification depth.
|
282
|
+
/**
|
283
|
+
* This function may be used to configure the maximum verification depth
|
284
|
+
* allowed by the stream.
|
285
|
+
*
|
286
|
+
* @param depth Maximum depth for the certificate chain verification that
|
287
|
+
* shall be allowed.
|
288
|
+
*
|
289
|
+
* @param ec Set to indicate what error occurred, if any.
|
290
|
+
*
|
291
|
+
* @note Calls @c SSL_set_verify_depth.
|
292
|
+
*/
|
293
|
+
boost::system::error_code set_verify_depth(
|
294
|
+
int depth, boost::system::error_code& ec)
|
295
|
+
{
|
296
|
+
return core_.engine_.set_verify_depth(depth, ec);
|
297
|
+
}
|
298
|
+
|
299
|
+
/// Set the callback used to verify peer certificates.
|
300
|
+
/**
|
301
|
+
* This function is used to specify a callback function that will be called
|
302
|
+
* by the implementation when it needs to verify a peer certificate.
|
303
|
+
*
|
304
|
+
* @param callback The function object to be used for verifying a certificate.
|
305
|
+
* The function signature of the handler must be:
|
306
|
+
* @code bool verify_callback(
|
307
|
+
* bool preverified, // True if the certificate passed pre-verification.
|
308
|
+
* verify_context& ctx // The peer certificate and other context.
|
309
|
+
* ); @endcode
|
310
|
+
* The return value of the callback is true if the certificate has passed
|
311
|
+
* verification, false otherwise.
|
312
|
+
*
|
313
|
+
* @throws boost::system::system_error Thrown on failure.
|
314
|
+
*
|
315
|
+
* @note Calls @c SSL_set_verify.
|
316
|
+
*/
|
317
|
+
template <typename VerifyCallback>
|
318
|
+
void set_verify_callback(VerifyCallback callback)
|
319
|
+
{
|
320
|
+
boost::system::error_code ec;
|
321
|
+
this->set_verify_callback(callback, ec);
|
322
|
+
boost::asio::detail::throw_error(ec, "set_verify_callback");
|
323
|
+
}
|
324
|
+
|
325
|
+
/// Set the callback used to verify peer certificates.
|
326
|
+
/**
|
327
|
+
* This function is used to specify a callback function that will be called
|
328
|
+
* by the implementation when it needs to verify a peer certificate.
|
329
|
+
*
|
330
|
+
* @param callback The function object to be used for verifying a certificate.
|
331
|
+
* The function signature of the handler must be:
|
332
|
+
* @code bool verify_callback(
|
333
|
+
* bool preverified, // True if the certificate passed pre-verification.
|
334
|
+
* verify_context& ctx // The peer certificate and other context.
|
335
|
+
* ); @endcode
|
336
|
+
* The return value of the callback is true if the certificate has passed
|
337
|
+
* verification, false otherwise.
|
338
|
+
*
|
339
|
+
* @param ec Set to indicate what error occurred, if any.
|
340
|
+
*
|
341
|
+
* @note Calls @c SSL_set_verify.
|
342
|
+
*/
|
343
|
+
template <typename VerifyCallback>
|
344
|
+
boost::system::error_code set_verify_callback(VerifyCallback callback,
|
345
|
+
boost::system::error_code& ec)
|
346
|
+
{
|
347
|
+
return core_.engine_.set_verify_callback(
|
348
|
+
new detail::verify_callback<VerifyCallback>(callback), ec);
|
349
|
+
}
|
350
|
+
|
351
|
+
/// Perform SSL handshaking.
|
352
|
+
/**
|
353
|
+
* This function is used to perform SSL handshaking on the stream. The
|
354
|
+
* function call will block until handshaking is complete or an error occurs.
|
355
|
+
*
|
356
|
+
* @param type The type of handshaking to be performed, i.e. as a client or as
|
357
|
+
* a server.
|
358
|
+
*
|
359
|
+
* @throws boost::system::system_error Thrown on failure.
|
360
|
+
*/
|
361
|
+
void handshake(handshake_type type)
|
362
|
+
{
|
363
|
+
boost::system::error_code ec;
|
364
|
+
handshake(type, ec);
|
365
|
+
boost::asio::detail::throw_error(ec, "handshake");
|
366
|
+
}
|
367
|
+
|
368
|
+
/// Perform SSL handshaking.
|
369
|
+
/**
|
370
|
+
* This function is used to perform SSL handshaking on the stream. The
|
371
|
+
* function call will block until handshaking is complete or an error occurs.
|
372
|
+
*
|
373
|
+
* @param type The type of handshaking to be performed, i.e. as a client or as
|
374
|
+
* a server.
|
375
|
+
*
|
376
|
+
* @param ec Set to indicate what error occurred, if any.
|
377
|
+
*/
|
378
|
+
boost::system::error_code handshake(handshake_type type,
|
379
|
+
boost::system::error_code& ec)
|
380
|
+
{
|
381
|
+
detail::io(next_layer_, core_, detail::handshake_op(type), ec);
|
382
|
+
return ec;
|
383
|
+
}
|
384
|
+
|
385
|
+
/// Perform SSL handshaking.
|
386
|
+
/**
|
387
|
+
* This function is used to perform SSL handshaking on the stream. The
|
388
|
+
* function call will block until handshaking is complete or an error occurs.
|
389
|
+
*
|
390
|
+
* @param type The type of handshaking to be performed, i.e. as a client or as
|
391
|
+
* a server.
|
392
|
+
*
|
393
|
+
* @param buffers The buffered data to be reused for the handshake.
|
394
|
+
*
|
395
|
+
* @throws boost::system::system_error Thrown on failure.
|
396
|
+
*/
|
397
|
+
template <typename ConstBufferSequence>
|
398
|
+
void handshake(handshake_type type, const ConstBufferSequence& buffers)
|
399
|
+
{
|
400
|
+
boost::system::error_code ec;
|
401
|
+
handshake(type, buffers, ec);
|
402
|
+
boost::asio::detail::throw_error(ec, "handshake");
|
403
|
+
}
|
404
|
+
|
405
|
+
/// Perform SSL handshaking.
|
406
|
+
/**
|
407
|
+
* This function is used to perform SSL handshaking on the stream. The
|
408
|
+
* function call will block until handshaking is complete or an error occurs.
|
409
|
+
*
|
410
|
+
* @param type The type of handshaking to be performed, i.e. as a client or as
|
411
|
+
* a server.
|
412
|
+
*
|
413
|
+
* @param buffers The buffered data to be reused for the handshake.
|
414
|
+
*
|
415
|
+
* @param ec Set to indicate what error occurred, if any.
|
416
|
+
*/
|
417
|
+
template <typename ConstBufferSequence>
|
418
|
+
boost::system::error_code handshake(handshake_type type,
|
419
|
+
const ConstBufferSequence& buffers, boost::system::error_code& ec)
|
420
|
+
{
|
421
|
+
detail::io(next_layer_, core_,
|
422
|
+
detail::buffered_handshake_op<ConstBufferSequence>(type, buffers), ec);
|
423
|
+
return ec;
|
424
|
+
}
|
425
|
+
|
426
|
+
/// Start an asynchronous SSL handshake.
|
427
|
+
/**
|
428
|
+
* This function is used to asynchronously perform an SSL handshake on the
|
429
|
+
* stream. This function call always returns immediately.
|
430
|
+
*
|
431
|
+
* @param type The type of handshaking to be performed, i.e. as a client or as
|
432
|
+
* a server.
|
433
|
+
*
|
434
|
+
* @param handler The handler to be called when the handshake operation
|
435
|
+
* completes. Copies will be made of the handler as required. The equivalent
|
436
|
+
* function signature of the handler must be:
|
437
|
+
* @code void handler(
|
438
|
+
* const boost::system::error_code& error // Result of operation.
|
439
|
+
* ); @endcode
|
440
|
+
*/
|
441
|
+
template <typename HandshakeHandler>
|
442
|
+
BOOST_ASIO_INITFN_RESULT_TYPE(HandshakeHandler,
|
443
|
+
void (boost::system::error_code))
|
444
|
+
async_handshake(handshake_type type,
|
445
|
+
BOOST_ASIO_MOVE_ARG(HandshakeHandler) handler)
|
446
|
+
{
|
447
|
+
// If you get an error on the following line it means that your handler does
|
448
|
+
// not meet the documented type requirements for a HandshakeHandler.
|
449
|
+
BOOST_ASIO_HANDSHAKE_HANDLER_CHECK(HandshakeHandler, handler) type_check;
|
450
|
+
|
451
|
+
boost::asio::detail::async_result_init<
|
452
|
+
HandshakeHandler, void (boost::system::error_code)> init(
|
453
|
+
BOOST_ASIO_MOVE_CAST(HandshakeHandler)(handler));
|
454
|
+
|
455
|
+
detail::async_io(next_layer_, core_,
|
456
|
+
detail::handshake_op(type), init.handler);
|
457
|
+
|
458
|
+
return init.result.get();
|
459
|
+
}
|
460
|
+
|
461
|
+
/// Start an asynchronous SSL handshake.
|
462
|
+
/**
|
463
|
+
* This function is used to asynchronously perform an SSL handshake on the
|
464
|
+
* stream. This function call always returns immediately.
|
465
|
+
*
|
466
|
+
* @param type The type of handshaking to be performed, i.e. as a client or as
|
467
|
+
* a server.
|
468
|
+
*
|
469
|
+
* @param buffers The buffered data to be reused for the handshake. Although
|
470
|
+
* the buffers object may be copied as necessary, ownership of the underlying
|
471
|
+
* buffers is retained by the caller, which must guarantee that they remain
|
472
|
+
* valid until the handler is called.
|
473
|
+
*
|
474
|
+
* @param handler The handler to be called when the handshake operation
|
475
|
+
* completes. Copies will be made of the handler as required. The equivalent
|
476
|
+
* function signature of the handler must be:
|
477
|
+
* @code void handler(
|
478
|
+
* const boost::system::error_code& error, // Result of operation.
|
479
|
+
* std::size_t bytes_transferred // Amount of buffers used in handshake.
|
480
|
+
* ); @endcode
|
481
|
+
*/
|
482
|
+
template <typename ConstBufferSequence, typename BufferedHandshakeHandler>
|
483
|
+
BOOST_ASIO_INITFN_RESULT_TYPE(BufferedHandshakeHandler,
|
484
|
+
void (boost::system::error_code, std::size_t))
|
485
|
+
async_handshake(handshake_type type, const ConstBufferSequence& buffers,
|
486
|
+
BOOST_ASIO_MOVE_ARG(BufferedHandshakeHandler) handler)
|
487
|
+
{
|
488
|
+
// If you get an error on the following line it means that your handler does
|
489
|
+
// not meet the documented type requirements for a BufferedHandshakeHandler.
|
490
|
+
BOOST_ASIO_BUFFERED_HANDSHAKE_HANDLER_CHECK(
|
491
|
+
BufferedHandshakeHandler, handler) type_check;
|
492
|
+
|
493
|
+
boost::asio::detail::async_result_init<BufferedHandshakeHandler,
|
494
|
+
void (boost::system::error_code, std::size_t)> init(
|
495
|
+
BOOST_ASIO_MOVE_CAST(BufferedHandshakeHandler)(handler));
|
496
|
+
|
497
|
+
detail::async_io(next_layer_, core_,
|
498
|
+
detail::buffered_handshake_op<ConstBufferSequence>(type, buffers),
|
499
|
+
init.handler);
|
500
|
+
|
501
|
+
return init.result.get();
|
502
|
+
}
|
503
|
+
|
504
|
+
/// Shut down SSL on the stream.
|
505
|
+
/**
|
506
|
+
* This function is used to shut down SSL on the stream. The function call
|
507
|
+
* will block until SSL has been shut down or an error occurs.
|
508
|
+
*
|
509
|
+
* @throws boost::system::system_error Thrown on failure.
|
510
|
+
*/
|
511
|
+
void shutdown()
|
512
|
+
{
|
513
|
+
boost::system::error_code ec;
|
514
|
+
shutdown(ec);
|
515
|
+
boost::asio::detail::throw_error(ec, "shutdown");
|
516
|
+
}
|
517
|
+
|
518
|
+
/// Shut down SSL on the stream.
|
519
|
+
/**
|
520
|
+
* This function is used to shut down SSL on the stream. The function call
|
521
|
+
* will block until SSL has been shut down or an error occurs.
|
522
|
+
*
|
523
|
+
* @param ec Set to indicate what error occurred, if any.
|
524
|
+
*/
|
525
|
+
boost::system::error_code shutdown(boost::system::error_code& ec)
|
526
|
+
{
|
527
|
+
detail::io(next_layer_, core_, detail::shutdown_op(), ec);
|
528
|
+
return ec;
|
529
|
+
}
|
530
|
+
|
531
|
+
/// Asynchronously shut down SSL on the stream.
|
532
|
+
/**
|
533
|
+
* This function is used to asynchronously shut down SSL on the stream. This
|
534
|
+
* function call always returns immediately.
|
535
|
+
*
|
536
|
+
* @param handler The handler to be called when the handshake operation
|
537
|
+
* completes. Copies will be made of the handler as required. The equivalent
|
538
|
+
* function signature of the handler must be:
|
539
|
+
* @code void handler(
|
540
|
+
* const boost::system::error_code& error // Result of operation.
|
541
|
+
* ); @endcode
|
542
|
+
*/
|
543
|
+
template <typename ShutdownHandler>
|
544
|
+
BOOST_ASIO_INITFN_RESULT_TYPE(ShutdownHandler,
|
545
|
+
void (boost::system::error_code))
|
546
|
+
async_shutdown(BOOST_ASIO_MOVE_ARG(ShutdownHandler) handler)
|
547
|
+
{
|
548
|
+
// If you get an error on the following line it means that your handler does
|
549
|
+
// not meet the documented type requirements for a ShutdownHandler.
|
550
|
+
BOOST_ASIO_SHUTDOWN_HANDLER_CHECK(ShutdownHandler, handler) type_check;
|
551
|
+
|
552
|
+
boost::asio::detail::async_result_init<
|
553
|
+
ShutdownHandler, void (boost::system::error_code)> init(
|
554
|
+
BOOST_ASIO_MOVE_CAST(ShutdownHandler)(handler));
|
555
|
+
|
556
|
+
detail::async_io(next_layer_, core_, detail::shutdown_op(), init.handler);
|
557
|
+
|
558
|
+
return init.result.get();
|
559
|
+
}
|
560
|
+
|
561
|
+
/// Write some data to the stream.
|
562
|
+
/**
|
563
|
+
* This function is used to write data on the stream. The function call will
|
564
|
+
* block until one or more bytes of data has been written successfully, or
|
565
|
+
* until an error occurs.
|
566
|
+
*
|
567
|
+
* @param buffers The data to be written.
|
568
|
+
*
|
569
|
+
* @returns The number of bytes written.
|
570
|
+
*
|
571
|
+
* @throws boost::system::system_error Thrown on failure.
|
572
|
+
*
|
573
|
+
* @note The write_some operation may not transmit all of the data to the
|
574
|
+
* peer. Consider using the @ref write function if you need to ensure that all
|
575
|
+
* data is written before the blocking operation completes.
|
576
|
+
*/
|
577
|
+
template <typename ConstBufferSequence>
|
578
|
+
std::size_t write_some(const ConstBufferSequence& buffers)
|
579
|
+
{
|
580
|
+
boost::system::error_code ec;
|
581
|
+
std::size_t n = write_some(buffers, ec);
|
582
|
+
boost::asio::detail::throw_error(ec, "write_some");
|
583
|
+
return n;
|
584
|
+
}
|
585
|
+
|
586
|
+
/// Write some data to the stream.
|
587
|
+
/**
|
588
|
+
* This function is used to write data on the stream. The function call will
|
589
|
+
* block until one or more bytes of data has been written successfully, or
|
590
|
+
* until an error occurs.
|
591
|
+
*
|
592
|
+
* @param buffers The data to be written to the stream.
|
593
|
+
*
|
594
|
+
* @param ec Set to indicate what error occurred, if any.
|
595
|
+
*
|
596
|
+
* @returns The number of bytes written. Returns 0 if an error occurred.
|
597
|
+
*
|
598
|
+
* @note The write_some operation may not transmit all of the data to the
|
599
|
+
* peer. Consider using the @ref write function if you need to ensure that all
|
600
|
+
* data is written before the blocking operation completes.
|
601
|
+
*/
|
602
|
+
template <typename ConstBufferSequence>
|
603
|
+
std::size_t write_some(const ConstBufferSequence& buffers,
|
604
|
+
boost::system::error_code& ec)
|
605
|
+
{
|
606
|
+
return detail::io(next_layer_, core_,
|
607
|
+
detail::write_op<ConstBufferSequence>(buffers), ec);
|
608
|
+
}
|
609
|
+
|
610
|
+
/// Start an asynchronous write.
|
611
|
+
/**
|
612
|
+
* This function is used to asynchronously write one or more bytes of data to
|
613
|
+
* the stream. The function call always returns immediately.
|
614
|
+
*
|
615
|
+
* @param buffers The data to be written to the stream. Although the buffers
|
616
|
+
* object may be copied as necessary, ownership of the underlying buffers is
|
617
|
+
* retained by the caller, which must guarantee that they remain valid until
|
618
|
+
* the handler is called.
|
619
|
+
*
|
620
|
+
* @param handler The handler to be called when the write operation completes.
|
621
|
+
* Copies will be made of the handler as required. The equivalent function
|
622
|
+
* signature of the handler must be:
|
623
|
+
* @code void handler(
|
624
|
+
* const boost::system::error_code& error, // Result of operation.
|
625
|
+
* std::size_t bytes_transferred // Number of bytes written.
|
626
|
+
* ); @endcode
|
627
|
+
*
|
628
|
+
* @note The async_write_some operation may not transmit all of the data to
|
629
|
+
* the peer. Consider using the @ref async_write function if you need to
|
630
|
+
* ensure that all data is written before the blocking operation completes.
|
631
|
+
*/
|
632
|
+
template <typename ConstBufferSequence, typename WriteHandler>
|
633
|
+
BOOST_ASIO_INITFN_RESULT_TYPE(WriteHandler,
|
634
|
+
void (boost::system::error_code, std::size_t))
|
635
|
+
async_write_some(const ConstBufferSequence& buffers,
|
636
|
+
BOOST_ASIO_MOVE_ARG(WriteHandler) handler)
|
637
|
+
{
|
638
|
+
// If you get an error on the following line it means that your handler does
|
639
|
+
// not meet the documented type requirements for a WriteHandler.
|
640
|
+
BOOST_ASIO_WRITE_HANDLER_CHECK(WriteHandler, handler) type_check;
|
641
|
+
|
642
|
+
boost::asio::detail::async_result_init<
|
643
|
+
WriteHandler, void (boost::system::error_code, std::size_t)> init(
|
644
|
+
BOOST_ASIO_MOVE_CAST(WriteHandler)(handler));
|
645
|
+
|
646
|
+
detail::async_io(next_layer_, core_,
|
647
|
+
detail::write_op<ConstBufferSequence>(buffers), init.handler);
|
648
|
+
|
649
|
+
return init.result.get();
|
650
|
+
}
|
651
|
+
|
652
|
+
/// Read some data from the stream.
|
653
|
+
/**
|
654
|
+
* This function is used to read data from the stream. The function call will
|
655
|
+
* block until one or more bytes of data has been read successfully, or until
|
656
|
+
* an error occurs.
|
657
|
+
*
|
658
|
+
* @param buffers The buffers into which the data will be read.
|
659
|
+
*
|
660
|
+
* @returns The number of bytes read.
|
661
|
+
*
|
662
|
+
* @throws boost::system::system_error Thrown on failure.
|
663
|
+
*
|
664
|
+
* @note The read_some operation may not read all of the requested number of
|
665
|
+
* bytes. Consider using the @ref read function if you need to ensure that the
|
666
|
+
* requested amount of data is read before the blocking operation completes.
|
667
|
+
*/
|
668
|
+
template <typename MutableBufferSequence>
|
669
|
+
std::size_t read_some(const MutableBufferSequence& buffers)
|
670
|
+
{
|
671
|
+
boost::system::error_code ec;
|
672
|
+
std::size_t n = read_some(buffers, ec);
|
673
|
+
boost::asio::detail::throw_error(ec, "read_some");
|
674
|
+
return n;
|
675
|
+
}
|
676
|
+
|
677
|
+
/// Read some data from the stream.
|
678
|
+
/**
|
679
|
+
* This function is used to read data from the stream. The function call will
|
680
|
+
* block until one or more bytes of data has been read successfully, or until
|
681
|
+
* an error occurs.
|
682
|
+
*
|
683
|
+
* @param buffers The buffers into which the data will be read.
|
684
|
+
*
|
685
|
+
* @param ec Set to indicate what error occurred, if any.
|
686
|
+
*
|
687
|
+
* @returns The number of bytes read. Returns 0 if an error occurred.
|
688
|
+
*
|
689
|
+
* @note The read_some operation may not read all of the requested number of
|
690
|
+
* bytes. Consider using the @ref read function if you need to ensure that the
|
691
|
+
* requested amount of data is read before the blocking operation completes.
|
692
|
+
*/
|
693
|
+
template <typename MutableBufferSequence>
|
694
|
+
std::size_t read_some(const MutableBufferSequence& buffers,
|
695
|
+
boost::system::error_code& ec)
|
696
|
+
{
|
697
|
+
return detail::io(next_layer_, core_,
|
698
|
+
detail::read_op<MutableBufferSequence>(buffers), ec);
|
699
|
+
}
|
700
|
+
|
701
|
+
/// Start an asynchronous read.
|
702
|
+
/**
|
703
|
+
* This function is used to asynchronously read one or more bytes of data from
|
704
|
+
* the stream. The function call always returns immediately.
|
705
|
+
*
|
706
|
+
* @param buffers The buffers into which the data will be read. Although the
|
707
|
+
* buffers object may be copied as necessary, ownership of the underlying
|
708
|
+
* buffers is retained by the caller, which must guarantee that they remain
|
709
|
+
* valid until the handler is called.
|
710
|
+
*
|
711
|
+
* @param handler The handler to be called when the read operation completes.
|
712
|
+
* Copies will be made of the handler as required. The equivalent function
|
713
|
+
* signature of the handler must be:
|
714
|
+
* @code void handler(
|
715
|
+
* const boost::system::error_code& error, // Result of operation.
|
716
|
+
* std::size_t bytes_transferred // Number of bytes read.
|
717
|
+
* ); @endcode
|
718
|
+
*
|
719
|
+
* @note The async_read_some operation may not read all of the requested
|
720
|
+
* number of bytes. Consider using the @ref async_read function if you need to
|
721
|
+
* ensure that the requested amount of data is read before the asynchronous
|
722
|
+
* operation completes.
|
723
|
+
*/
|
724
|
+
template <typename MutableBufferSequence, typename ReadHandler>
|
725
|
+
BOOST_ASIO_INITFN_RESULT_TYPE(ReadHandler,
|
726
|
+
void (boost::system::error_code, std::size_t))
|
727
|
+
async_read_some(const MutableBufferSequence& buffers,
|
728
|
+
BOOST_ASIO_MOVE_ARG(ReadHandler) handler)
|
729
|
+
{
|
730
|
+
// If you get an error on the following line it means that your handler does
|
731
|
+
// not meet the documented type requirements for a ReadHandler.
|
732
|
+
BOOST_ASIO_READ_HANDLER_CHECK(ReadHandler, handler) type_check;
|
733
|
+
|
734
|
+
boost::asio::detail::async_result_init<
|
735
|
+
ReadHandler, void (boost::system::error_code, std::size_t)> init(
|
736
|
+
BOOST_ASIO_MOVE_CAST(ReadHandler)(handler));
|
737
|
+
|
738
|
+
detail::async_io(next_layer_, core_,
|
739
|
+
detail::read_op<MutableBufferSequence>(buffers), init.handler);
|
740
|
+
|
741
|
+
return init.result.get();
|
742
|
+
}
|
743
|
+
|
744
|
+
private:
|
745
|
+
Stream next_layer_;
|
746
|
+
detail::stream_core core_;
|
747
|
+
impl_struct backwards_compatible_impl_;
|
748
|
+
};
|
749
|
+
|
750
|
+
#endif // defined(BOOST_ASIO_ENABLE_OLD_SSL)
|
751
|
+
|
752
|
+
} // namespace ssl
|
753
|
+
} // namespace asio
|
754
|
+
} // namespace boost
|
755
|
+
|
756
|
+
#include <boost/asio/detail/pop_options.hpp>
|
757
|
+
|
758
|
+
#endif // BOOST_ASIO_SSL_STREAM_HPP
|