summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAndrew Morrow <acm@mongodb.com>2018-12-15 12:24:16 -0500
committerAndrew Morrow <acm@mongodb.com>2018-12-17 18:04:56 -0500
commit0c6f72ea1828b9dbbcc86e61d04e1f925ca870fc (patch)
tree67cbf0f7c0111b31a0e44a7eaa955c2985540b74
parentb42ac5010af447ad1872078415e53bb0a9010655 (diff)
downloadmongo-0c6f72ea1828b9dbbcc86e61d04e1f925ca870fc.tar.gz
SERVER-37993 Upgrade ASIO to 1.12.2
-rw-r--r--src/third_party/asio-master/asio/README4
-rw-r--r--src/third_party/asio-master/asio/asio.manifest127
-rw-r--r--src/third_party/asio-master/asio/boost_asio.manifest187
-rwxr-xr-xsrc/third_party/asio-master/asio/boostify.pl5
-rw-r--r--src/third_party/asio-master/asio/configure.ac5
-rw-r--r--src/third_party/asio-master/asio/include/Makefile.am1
-rw-r--r--src/third_party/asio-master/asio/include/asio/buffer.hpp81
-rw-r--r--src/third_party/asio-master/asio/include/asio/connect.hpp31
-rw-r--r--src/third_party/asio-master/asio/include/asio/detail/config.hpp71
-rw-r--r--src/third_party/asio-master/asio/include/asio/detail/future.hpp33
-rw-r--r--src/third_party/asio-master/asio/include/asio/detail/impl/socket_ops.ipp2
-rw-r--r--src/third_party/asio-master/asio/include/asio/detail/is_buffer_sequence.hpp52
-rw-r--r--src/third_party/asio-master/asio/include/asio/detail/timer_queue.hpp2
-rw-r--r--src/third_party/asio-master/asio/include/asio/detail/win_global.hpp3
-rw-r--r--src/third_party/asio-master/asio/include/asio/impl/io_context.hpp2
-rw-r--r--src/third_party/asio-master/asio/include/asio/impl/read_until.hpp4
-rw-r--r--src/third_party/asio-master/asio/include/asio/impl/use_future.hpp1
-rw-r--r--src/third_party/asio-master/asio/include/asio/ip/bad_address_cast.hpp7
-rw-r--r--src/third_party/asio-master/asio/include/asio/ip/basic_resolver.hpp10
-rw-r--r--src/third_party/asio-master/asio/include/asio/ip/basic_resolver_results.hpp8
-rw-r--r--src/third_party/asio-master/asio/include/asio/packaged_task.hpp6
-rw-r--r--src/third_party/asio-master/asio/include/asio/read.hpp8
-rw-r--r--src/third_party/asio-master/asio/include/asio/read_at.hpp8
-rw-r--r--src/third_party/asio-master/asio/include/asio/read_until.hpp14
-rw-r--r--src/third_party/asio-master/asio/include/asio/ssl/context_base.hpp17
-rw-r--r--src/third_party/asio-master/asio/include/asio/ssl/impl/context.ipp55
-rw-r--r--src/third_party/asio-master/asio/include/asio/ssl/stream.hpp3
-rw-r--r--src/third_party/asio-master/asio/include/asio/thread_pool.hpp2
-rw-r--r--src/third_party/asio-master/asio/include/asio/use_future.hpp5
-rw-r--r--src/third_party/asio-master/asio/include/asio/version.hpp2
-rw-r--r--src/third_party/asio-master/asio/include/asio/write.hpp7
-rw-r--r--src/third_party/asio-master/asio/include/asio/write_at.hpp8
-rwxr-xr-xsrc/third_party/scripts/asio_get_sources.sh2
33 files changed, 568 insertions, 205 deletions
diff --git a/src/third_party/asio-master/asio/README b/src/third_party/asio-master/asio/README
index 661e72670c8..cb5ab7f0a88 100644
--- a/src/third_party/asio-master/asio/README
+++ b/src/third_party/asio-master/asio/README
@@ -1,4 +1,4 @@
-asio version 1.12.0
-Released Sunday, 04 March 2018.
+asio version 1.12.2
+Released Sunday, 09 December 2018.
See doc/index.html for API documentation and a tutorial.
diff --git a/src/third_party/asio-master/asio/asio.manifest b/src/third_party/asio-master/asio/asio.manifest
index e69d476e5fe..25b1497a10a 100644
--- a/src/third_party/asio-master/asio/asio.manifest
+++ b/src/third_party/asio-master/asio/asio.manifest
@@ -12,6 +12,7 @@
/doc/asio/examples/
/doc/asio/examples/cpp03_examples.html
/doc/asio/examples/cpp11_examples.html
+/doc/asio/examples/cpp17_examples.html
/doc/asio/examples.html
/doc/asio/history.html
/doc/asio/index.html
@@ -24,6 +25,7 @@
/doc/asio/overview/core/buffers.html
/doc/asio/overview/core/concurrency_hint.html
/doc/asio/overview/core/coroutine.html
+/doc/asio/overview/core/coroutines_ts.html
/doc/asio/overview/core/handler_tracking.html
/doc/asio/overview/core.html
/doc/asio/overview/core/line_based.html
@@ -100,21 +102,7 @@
/doc/asio/reference/async_connect/overload4.html
/doc/asio/reference/async_connect/overload5.html
/doc/asio/reference/async_connect/overload6.html
-/doc/asio/reference/asynchronous_operations/
-/doc/asio/reference/asynchronous_operations/allocation_of_intermediate_storage.html
-/doc/asio/reference/asynchronous_operations/associated_executor.html
-/doc/asio/reference/asynchronous_operations/automatic_deduction_of_initiating_function_return_type.html
-/doc/asio/reference/asynchronous_operations/completion_handler_executor.html
-/doc/asio/reference/asynchronous_operations/completion_handlers_and_exceptions.html
-/doc/asio/reference/asynchronous_operations/completion_token.html
-/doc/asio/reference/asynchronous_operations/execution_of_completion_handler_on_completion_of_asynchronous_operation.html
-/doc/asio/reference/asynchronous_operations/general_asynchronous_operation_concepts.html
/doc/asio/reference/asynchronous_operations.html
-/doc/asio/reference/asynchronous_operations/i_o_executor.html
-/doc/asio/reference/asynchronous_operations/lifetime_of_initiating_function_arguments.html
-/doc/asio/reference/asynchronous_operations/non_blocking_requirements_on_initiating_functions.html
-/doc/asio/reference/asynchronous_operations/outstanding_work.html
-/doc/asio/reference/asynchronous_operations/production_of_initiating_function_return_value.html
/doc/asio/reference/asynchronous_socket_operations.html
/doc/asio/reference/AsyncRandomAccessReadDevice.html
/doc/asio/reference/AsyncRandomAccessWriteDevice.html
@@ -1576,8 +1564,8 @@
/doc/asio/reference/dispatch/overload2.html
/doc/asio/reference/dispatch/overload3.html
/doc/asio/reference/dynamic_buffer/
-/doc/asio/reference/dynamic_buffer.html
/doc/asio/reference/DynamicBuffer.html
+/doc/asio/reference/dynamic_buffer.html
/doc/asio/reference/dynamic_buffer/overload1.html
/doc/asio/reference/dynamic_buffer/overload2.html
/doc/asio/reference/dynamic_buffer/overload3.html
@@ -1669,8 +1657,8 @@
/doc/asio/reference/execution_context/execution_context.html
/doc/asio/reference/execution_context/fork_event.html
/doc/asio/reference/execution_context/has_service.html
-/doc/asio/reference/execution_context.html
/doc/asio/reference/ExecutionContext.html
+/doc/asio/reference/execution_context.html
/doc/asio/reference/execution_context__id/
/doc/asio/reference/execution_context__id.html
/doc/asio/reference/execution_context__id/id.html
@@ -1768,6 +1756,39 @@
/doc/asio/reference/executor_work_guard.html
/doc/asio/reference/executor_work_guard/owns_work.html
/doc/asio/reference/executor_work_guard/reset.html
+/doc/asio/reference/experimental__awaitable/
+/doc/asio/reference/experimental__awaitable/_awaitable.html
+/doc/asio/reference/experimental__awaitable/awaitable.html
+/doc/asio/reference/experimental__awaitable/executor_type.html
+/doc/asio/reference/experimental__awaitable.html
+/doc/asio/reference/experimental__awaitable/value_type.html
+/doc/asio/reference/experimental__await_token/
+/doc/asio/reference/experimental__await_token/await_token/
+/doc/asio/reference/experimental__await_token/await_token.html
+/doc/asio/reference/experimental__await_token/await_token/overload1.html
+/doc/asio/reference/experimental__await_token/await_token/overload2.html
+/doc/asio/reference/experimental__await_token/executor_type.html
+/doc/asio/reference/experimental__await_token/get_executor.html
+/doc/asio/reference/experimental__await_token.html
+/doc/asio/reference/experimental__co_spawn/
+/doc/asio/reference/experimental__co_spawn.html
+/doc/asio/reference/experimental__co_spawn/overload1.html
+/doc/asio/reference/experimental__co_spawn/overload2.html
+/doc/asio/reference/experimental__co_spawn/overload3.html
+/doc/asio/reference/experimental__detached.html
+/doc/asio/reference/experimental__detached_t/
+/doc/asio/reference/experimental__detached_t/detached_t.html
+/doc/asio/reference/experimental__detached_t.html
+/doc/asio/reference/experimental__redirect_error.html
+/doc/asio/reference/experimental__redirect_error_t/
+/doc/asio/reference/experimental__redirect_error_t/ec_.html
+/doc/asio/reference/experimental__redirect_error_t.html
+/doc/asio/reference/experimental__redirect_error_t/redirect_error_t.html
+/doc/asio/reference/experimental__redirect_error_t/token_.html
+/doc/asio/reference/experimental__this_coro__executor.html
+/doc/asio/reference/experimental__this_coro__executor_t.html
+/doc/asio/reference/experimental__this_coro__token.html
+/doc/asio/reference/experimental__this_coro__token_t.html
/doc/asio/reference/generic__basic_endpoint/
/doc/asio/reference/generic__basic_endpoint/basic_endpoint/
/doc/asio/reference/generic__basic_endpoint/basic_endpoint.html
@@ -2310,8 +2331,8 @@
/doc/asio/reference/ip__basic_resolver_iterator/dereference.html
/doc/asio/reference/ip__basic_resolver_iterator/difference_type.html
/doc/asio/reference/ip__basic_resolver_iterator/equal.html
-/doc/asio/reference/ip__basic_resolver_iterator.html
/doc/asio/reference/ip__basic_resolver/iterator.html
+/doc/asio/reference/ip__basic_resolver_iterator.html
/doc/asio/reference/ip__basic_resolver_iterator/increment.html
/doc/asio/reference/ip__basic_resolver_iterator/index_.html
/doc/asio/reference/ip__basic_resolver_iterator/iterator_category.html
@@ -2349,8 +2370,8 @@
/doc/asio/reference/ip__basic_resolver_query/flags.html
/doc/asio/reference/ip__basic_resolver_query/hints.html
/doc/asio/reference/ip__basic_resolver_query/host_name.html
-/doc/asio/reference/ip__basic_resolver_query.html
/doc/asio/reference/ip__basic_resolver/query.html
+/doc/asio/reference/ip__basic_resolver_query.html
/doc/asio/reference/ip__basic_resolver_query/numeric_host.html
/doc/asio/reference/ip__basic_resolver_query/numeric_service.html
/doc/asio/reference/ip__basic_resolver_query/passive.html
@@ -2573,6 +2594,7 @@
/doc/asio/reference/is_write_buffered.html
/doc/asio/reference/is_write_buffered/value.html
/doc/asio/reference/IteratorConnectHandler.html
+/doc/asio/reference/LegacyCompletionHandler.html
/doc/asio/reference/local__basic_endpoint/
/doc/asio/reference/local__basic_endpoint/basic_endpoint/
/doc/asio/reference/local__basic_endpoint/basic_endpoint.html
@@ -3043,6 +3065,7 @@
/doc/asio/reference/ssl__context_base/no_sslv3.html
/doc/asio/reference/ssl__context_base/no_tlsv1_1.html
/doc/asio/reference/ssl__context_base/no_tlsv1_2.html
+/doc/asio/reference/ssl__context_base/no_tlsv1_3.html
/doc/asio/reference/ssl__context_base/no_tlsv1.html
/doc/asio/reference/ssl__context_base/options.html
/doc/asio/reference/ssl__context_base/password_purpose.html
@@ -3071,6 +3094,7 @@
/doc/asio/reference/ssl__context/no_sslv3.html
/doc/asio/reference/ssl__context/no_tlsv1_1.html
/doc/asio/reference/ssl__context/no_tlsv1_2.html
+/doc/asio/reference/ssl__context/no_tlsv1_3.html
/doc/asio/reference/ssl__context/no_tlsv1.html
/doc/asio/reference/ssl__context/operator_eq_.html
/doc/asio/reference/ssl__context/options.html
@@ -3370,8 +3394,8 @@
/doc/asio/reference/uses_executor.html
/doc/asio/reference/WaitHandler.html
/doc/asio/reference/wait_traits/
-/doc/asio/reference/wait_traits.html
/doc/asio/reference/WaitTraits.html
+/doc/asio/reference/wait_traits.html
/doc/asio/reference/wait_traits/to_wait_duration/
/doc/asio/reference/wait_traits/to_wait_duration.html
/doc/asio/reference/wait_traits/to_wait_duration/overload1.html
@@ -3669,10 +3693,6 @@
/doc/examples/diffs/http/server/request_parser.hpp.html
/doc/examples/diffs/http/server/server.cpp.html
/doc/examples/diffs/http/server/server.hpp.html
-/doc/examples/diffs/icmp/
-/doc/examples/diffs/icmp/icmp_header.hpp.html
-/doc/examples/diffs/icmp/ipv4_header.hpp.html
-/doc/examples/diffs/icmp/ping.cpp.html
/doc/examples/diffs/invocation/
/doc/examples/diffs/invocation/prioritised_handlers.cpp.html
/doc/examples/diffs/iostreams/
@@ -3687,9 +3707,29 @@
/doc/examples/diffs/multicast/sender.cpp.html
/doc/examples/diffs/nonblocking/
/doc/examples/diffs/nonblocking/third_party_lib.cpp.html
+/doc/examples/diffs/operations/
+/doc/examples/diffs/operations/composed_1.cpp.html
+/doc/examples/diffs/operations/composed_2.cpp.html
+/doc/examples/diffs/operations/composed_3.cpp.html
+/doc/examples/diffs/operations/composed_4.cpp.html
+/doc/examples/diffs/operations/composed_5.cpp.html
+/doc/examples/diffs/socks4/
+/doc/examples/diffs/socks4/socks4.hpp.html
+/doc/examples/diffs/socks4/sync_client.cpp.html
/doc/examples/diffs/spawn/
/doc/examples/diffs/spawn/echo_server.cpp.html
/doc/examples/diffs/spawn/parallel_grep.cpp.html
+/doc/examples/diffs/ssl/
+/doc/examples/diffs/ssl/client.cpp.html
+/doc/examples/diffs/ssl/server.cpp.html
+/doc/examples/diffs/timeouts/
+/doc/examples/diffs/timeouts/async_tcp_client.cpp.html
+/doc/examples/diffs/timeouts/blocking_tcp_client.cpp.html
+/doc/examples/diffs/timeouts/blocking_token_tcp_client.cpp.html
+/doc/examples/diffs/timeouts/blocking_udp_client.cpp.html
+/doc/examples/diffs/timeouts/server.cpp.html
+/doc/examples/diffs/timers/
+/doc/examples/diffs/timers/time_t_timer.cpp.html
/doc/home.png
/doc/important.png
/doc/index.html
@@ -3776,6 +3816,7 @@
/include/asio/detail/fd_set_adapter.hpp
/include/asio/detail/fenced_block.hpp
/include/asio/detail/functional.hpp
+/include/asio/detail/future.hpp
/include/asio/detail/gcc_arm_fenced_block.hpp
/include/asio/detail/gcc_hppa_fenced_block.hpp
/include/asio/detail/gcc_sync_fenced_block.hpp
@@ -3995,6 +4036,15 @@
/include/asio/execution_context.hpp
/include/asio/executor.hpp
/include/asio/executor_work_guard.hpp
+/include/asio/experimental/
+/include/asio/experimental/co_spawn.hpp
+/include/asio/experimental/detached.hpp
+/include/asio/experimental.hpp
+/include/asio/experimental/impl/
+/include/asio/experimental/impl/co_spawn.hpp
+/include/asio/experimental/impl/detached.hpp
+/include/asio/experimental/impl/redirect_error.hpp
+/include/asio/experimental/redirect_error.hpp
/include/asio/generic/
/include/asio/generic/basic_endpoint.hpp
/include/asio/generic/datagram_protocol.hpp
@@ -4357,10 +4407,10 @@
/src/examples/cpp03/timeouts/
/src/examples/cpp03/timeouts/async_tcp_client.cpp
/src/examples/cpp03/timeouts/blocking_tcp_client.cpp
+/src/examples/cpp03/timeouts/blocking_token_tcp_client.cpp
/src/examples/cpp03/timeouts/blocking_udp_client.cpp
/src/examples/cpp03/timeouts/server.cpp
/src/examples/cpp03/timers/
-/src/examples/cpp03/timers/tick_count_timer.cpp
/src/examples/cpp03/timers/time_t_timer.cpp
/src/examples/cpp03/tutorial/
/src/examples/cpp03/tutorial/daytime1/
@@ -4454,9 +4504,29 @@
/src/examples/cpp11/multicast/sender.cpp
/src/examples/cpp11/nonblocking/
/src/examples/cpp11/nonblocking/third_party_lib.cpp
+/src/examples/cpp11/operations/
+/src/examples/cpp11/operations/composed_1.cpp
+/src/examples/cpp11/operations/composed_2.cpp
+/src/examples/cpp11/operations/composed_3.cpp
+/src/examples/cpp11/operations/composed_4.cpp
+/src/examples/cpp11/operations/composed_5.cpp
+/src/examples/cpp11/socks4/
+/src/examples/cpp11/socks4/socks4.hpp
+/src/examples/cpp11/socks4/sync_client.cpp
/src/examples/cpp11/spawn/
/src/examples/cpp11/spawn/echo_server.cpp
/src/examples/cpp11/spawn/parallel_grep.cpp
+/src/examples/cpp11/ssl/
+/src/examples/cpp11/ssl/client.cpp
+/src/examples/cpp11/ssl/server.cpp
+/src/examples/cpp11/timeouts/
+/src/examples/cpp11/timeouts/async_tcp_client.cpp
+/src/examples/cpp11/timeouts/blocking_tcp_client.cpp
+/src/examples/cpp11/timeouts/blocking_token_tcp_client.cpp
+/src/examples/cpp11/timeouts/blocking_udp_client.cpp
+/src/examples/cpp11/timeouts/server.cpp
+/src/examples/cpp11/timers/
+/src/examples/cpp11/timers/time_t_timer.cpp
/src/examples/cpp14/
/src/examples/cpp14/echo/
/src/examples/cpp14/echo/async_tcp_echo_server.cpp
@@ -4478,6 +4548,15 @@
/src/examples/cpp14/iostreams/http_client.cpp
/src/examples/cpp14/Makefile.am
/src/examples/cpp14/Makefile.in
+/src/examples/cpp17/
+/src/examples/cpp17/coroutines_ts/
+/src/examples/cpp17/coroutines_ts/chat_server.cpp
+/src/examples/cpp17/coroutines_ts/double_buffered_echo_server.cpp
+/src/examples/cpp17/coroutines_ts/echo_server.cpp
+/src/examples/cpp17/coroutines_ts/range_based_for.cpp
+/src/examples/cpp17/coroutines_ts/refactored_echo_server.cpp
+/src/examples/cpp17/Makefile.am
+/src/examples/cpp17/Makefile.in
/src/Makefile.am
/src/Makefile.in
/src/Makefile.mgw
diff --git a/src/third_party/asio-master/asio/boost_asio.manifest b/src/third_party/asio-master/asio/boost_asio.manifest
index 98efac61d52..e9b7cd27d67 100644
--- a/src/third_party/asio-master/asio/boost_asio.manifest
+++ b/src/third_party/asio-master/asio/boost_asio.manifest
@@ -70,6 +70,7 @@
/boost/asio/detail/fd_set_adapter.hpp
/boost/asio/detail/fenced_block.hpp
/boost/asio/detail/functional.hpp
+/boost/asio/detail/future.hpp
/boost/asio/detail/gcc_arm_fenced_block.hpp
/boost/asio/detail/gcc_hppa_fenced_block.hpp
/boost/asio/detail/gcc_sync_fenced_block.hpp
@@ -288,6 +289,15 @@
/boost/asio/execution_context.hpp
/boost/asio/executor.hpp
/boost/asio/executor_work_guard.hpp
+/boost/asio/experimental/
+/boost/asio/experimental/co_spawn.hpp
+/boost/asio/experimental/detached.hpp
+/boost/asio/experimental.hpp
+/boost/asio/experimental/impl/
+/boost/asio/experimental/impl/co_spawn.hpp
+/boost/asio/experimental/impl/detached.hpp
+/boost/asio/experimental/impl/redirect_error.hpp
+/boost/asio/experimental/redirect_error.hpp
/boost/asio/generic/
/boost/asio/generic/basic_endpoint.hpp
/boost/asio/generic/datagram_protocol.hpp
@@ -499,8 +509,11 @@
/boost/system/config.hpp
/boost/system/cygwin_error.hpp
/boost/system/detail/
-/boost/system/detail/error_code.ipp
-/boost/system/detail/local_free_on_destruction.hpp
+/boost/system/detail/config.hpp
+/boost/system/detail/generic_category.hpp
+/boost/system/detail/std_interoperability.hpp
+/boost/system/detail/system_category_posix.hpp
+/boost/system/detail/system_category_win32.hpp
/boost/system/error_code.hpp
/boost/system/linux_error.hpp
/boost/system/system_error.hpp
@@ -648,10 +661,10 @@
/doc/html/boost_asio/example/cpp03/timeouts/
/doc/html/boost_asio/example/cpp03/timeouts/async_tcp_client.cpp
/doc/html/boost_asio/example/cpp03/timeouts/blocking_tcp_client.cpp
+/doc/html/boost_asio/example/cpp03/timeouts/blocking_token_tcp_client.cpp
/doc/html/boost_asio/example/cpp03/timeouts/blocking_udp_client.cpp
/doc/html/boost_asio/example/cpp03/timeouts/server.cpp
/doc/html/boost_asio/example/cpp03/timers/
-/doc/html/boost_asio/example/cpp03/timers/tick_count_timer.cpp
/doc/html/boost_asio/example/cpp03/timers/time_t_timer.cpp
/doc/html/boost_asio/example/cpp03/windows/
/doc/html/boost_asio/example/cpp03/windows/transmit_file.cpp
@@ -715,12 +728,40 @@
/doc/html/boost_asio/example/cpp11/multicast/
/doc/html/boost_asio/example/cpp11/multicast/receiver.cpp
/doc/html/boost_asio/example/cpp11/multicast/sender.cpp
+/doc/html/boost_asio/example/cpp11/operations/
+/doc/html/boost_asio/example/cpp11/operations/composed_1.cpp
+/doc/html/boost_asio/example/cpp11/operations/composed_2.cpp
+/doc/html/boost_asio/example/cpp11/operations/composed_3.cpp
+/doc/html/boost_asio/example/cpp11/operations/composed_4.cpp
+/doc/html/boost_asio/example/cpp11/operations/composed_5.cpp
+/doc/html/boost_asio/example/cpp11/socks4/
+/doc/html/boost_asio/example/cpp11/socks4/socks4.hpp
+/doc/html/boost_asio/example/cpp11/socks4/sync_client.cpp
/doc/html/boost_asio/example/cpp11/spawn/
/doc/html/boost_asio/example/cpp11/spawn/echo_server.cpp
/doc/html/boost_asio/example/cpp11/spawn/parallel_grep.cpp
+/doc/html/boost_asio/example/cpp11/ssl/
+/doc/html/boost_asio/example/cpp11/ssl/client.cpp
+/doc/html/boost_asio/example/cpp11/ssl/server.cpp
+/doc/html/boost_asio/example/cpp11/timeouts/
+/doc/html/boost_asio/example/cpp11/timeouts/async_tcp_client.cpp
+/doc/html/boost_asio/example/cpp11/timeouts/blocking_tcp_client.cpp
+/doc/html/boost_asio/example/cpp11/timeouts/blocking_token_tcp_client.cpp
+/doc/html/boost_asio/example/cpp11/timeouts/blocking_udp_client.cpp
+/doc/html/boost_asio/example/cpp11/timeouts/server.cpp
+/doc/html/boost_asio/example/cpp11/timers/
+/doc/html/boost_asio/example/cpp11/timers/time_t_timer.cpp
+/doc/html/boost_asio/example/cpp17/
+/doc/html/boost_asio/example/cpp17/coroutines_ts/
+/doc/html/boost_asio/example/cpp17/coroutines_ts/chat_server.cpp
+/doc/html/boost_asio/example/cpp17/coroutines_ts/double_buffered_echo_server.cpp
+/doc/html/boost_asio/example/cpp17/coroutines_ts/echo_server.cpp
+/doc/html/boost_asio/example/cpp17/coroutines_ts/range_based_for.cpp
+/doc/html/boost_asio/example/cpp17/coroutines_ts/refactored_echo_server.cpp
/doc/html/boost_asio/examples/
/doc/html/boost_asio/examples/cpp03_examples.html
/doc/html/boost_asio/examples/cpp11_examples.html
+/doc/html/boost_asio/examples/cpp17_examples.html
/doc/html/boost_asio/examples.html
/doc/html/boost_asio/history.html
/doc/html/boost_asio.html
@@ -734,6 +775,7 @@
/doc/html/boost_asio/overview/core/buffers.html
/doc/html/boost_asio/overview/core/concurrency_hint.html
/doc/html/boost_asio/overview/core/coroutine.html
+/doc/html/boost_asio/overview/core/coroutines_ts.html
/doc/html/boost_asio/overview/core/handler_tracking.html
/doc/html/boost_asio/overview/core.html
/doc/html/boost_asio/overview/core/line_based.html
@@ -809,21 +851,7 @@
/doc/html/boost_asio/reference/async_connect/overload4.html
/doc/html/boost_asio/reference/async_connect/overload5.html
/doc/html/boost_asio/reference/async_connect/overload6.html
-/doc/html/boost_asio/reference/asynchronous_operations/
-/doc/html/boost_asio/reference/asynchronous_operations/allocation_of_intermediate_storage.html
-/doc/html/boost_asio/reference/asynchronous_operations/associated_executor.html
-/doc/html/boost_asio/reference/asynchronous_operations/automatic_deduction_of_initiating_function_return_type.html
-/doc/html/boost_asio/reference/asynchronous_operations/completion_handler_executor.html
-/doc/html/boost_asio/reference/asynchronous_operations/completion_handlers_and_exceptions.html
-/doc/html/boost_asio/reference/asynchronous_operations/completion_token.html
-/doc/html/boost_asio/reference/asynchronous_operations/execution_of_completion_handler_on_completion_of_asynchronous_operation.html
-/doc/html/boost_asio/reference/asynchronous_operations/general_asynchronous_operation_concepts.html
/doc/html/boost_asio/reference/asynchronous_operations.html
-/doc/html/boost_asio/reference/asynchronous_operations/i_o_executor.html
-/doc/html/boost_asio/reference/asynchronous_operations/lifetime_of_initiating_function_arguments.html
-/doc/html/boost_asio/reference/asynchronous_operations/non_blocking_requirements_on_initiating_functions.html
-/doc/html/boost_asio/reference/asynchronous_operations/outstanding_work.html
-/doc/html/boost_asio/reference/asynchronous_operations/production_of_initiating_function_return_value.html
/doc/html/boost_asio/reference/asynchronous_socket_operations.html
/doc/html/boost_asio/reference/AsyncRandomAccessReadDevice.html
/doc/html/boost_asio/reference/AsyncRandomAccessWriteDevice.html
@@ -2285,8 +2313,8 @@
/doc/html/boost_asio/reference/dispatch/overload2.html
/doc/html/boost_asio/reference/dispatch/overload3.html
/doc/html/boost_asio/reference/dynamic_buffer/
-/doc/html/boost_asio/reference/dynamic_buffer.html
/doc/html/boost_asio/reference/DynamicBuffer.html
+/doc/html/boost_asio/reference/dynamic_buffer.html
/doc/html/boost_asio/reference/dynamic_buffer/overload1.html
/doc/html/boost_asio/reference/dynamic_buffer/overload2.html
/doc/html/boost_asio/reference/dynamic_buffer/overload3.html
@@ -2352,8 +2380,8 @@
/doc/html/boost_asio/reference/execution_context/execution_context.html
/doc/html/boost_asio/reference/execution_context/fork_event.html
/doc/html/boost_asio/reference/execution_context/has_service.html
-/doc/html/boost_asio/reference/execution_context.html
/doc/html/boost_asio/reference/ExecutionContext.html
+/doc/html/boost_asio/reference/execution_context.html
/doc/html/boost_asio/reference/execution_context__id/
/doc/html/boost_asio/reference/execution_context__id.html
/doc/html/boost_asio/reference/execution_context__id/id.html
@@ -2451,6 +2479,39 @@
/doc/html/boost_asio/reference/executor_work_guard.html
/doc/html/boost_asio/reference/executor_work_guard/owns_work.html
/doc/html/boost_asio/reference/executor_work_guard/reset.html
+/doc/html/boost_asio/reference/experimental__awaitable/
+/doc/html/boost_asio/reference/experimental__awaitable/_awaitable.html
+/doc/html/boost_asio/reference/experimental__awaitable/awaitable.html
+/doc/html/boost_asio/reference/experimental__awaitable/executor_type.html
+/doc/html/boost_asio/reference/experimental__awaitable.html
+/doc/html/boost_asio/reference/experimental__awaitable/value_type.html
+/doc/html/boost_asio/reference/experimental__await_token/
+/doc/html/boost_asio/reference/experimental__await_token/await_token/
+/doc/html/boost_asio/reference/experimental__await_token/await_token.html
+/doc/html/boost_asio/reference/experimental__await_token/await_token/overload1.html
+/doc/html/boost_asio/reference/experimental__await_token/await_token/overload2.html
+/doc/html/boost_asio/reference/experimental__await_token/executor_type.html
+/doc/html/boost_asio/reference/experimental__await_token/get_executor.html
+/doc/html/boost_asio/reference/experimental__await_token.html
+/doc/html/boost_asio/reference/experimental__co_spawn/
+/doc/html/boost_asio/reference/experimental__co_spawn.html
+/doc/html/boost_asio/reference/experimental__co_spawn/overload1.html
+/doc/html/boost_asio/reference/experimental__co_spawn/overload2.html
+/doc/html/boost_asio/reference/experimental__co_spawn/overload3.html
+/doc/html/boost_asio/reference/experimental__detached.html
+/doc/html/boost_asio/reference/experimental__detached_t/
+/doc/html/boost_asio/reference/experimental__detached_t/detached_t.html
+/doc/html/boost_asio/reference/experimental__detached_t.html
+/doc/html/boost_asio/reference/experimental__redirect_error.html
+/doc/html/boost_asio/reference/experimental__redirect_error_t/
+/doc/html/boost_asio/reference/experimental__redirect_error_t/ec_.html
+/doc/html/boost_asio/reference/experimental__redirect_error_t.html
+/doc/html/boost_asio/reference/experimental__redirect_error_t/redirect_error_t.html
+/doc/html/boost_asio/reference/experimental__redirect_error_t/token_.html
+/doc/html/boost_asio/reference/experimental__this_coro__executor.html
+/doc/html/boost_asio/reference/experimental__this_coro__executor_t.html
+/doc/html/boost_asio/reference/experimental__this_coro__token.html
+/doc/html/boost_asio/reference/experimental__this_coro__token_t.html
/doc/html/boost_asio/reference/generic__basic_endpoint/
/doc/html/boost_asio/reference/generic__basic_endpoint/basic_endpoint/
/doc/html/boost_asio/reference/generic__basic_endpoint/basic_endpoint.html
@@ -2993,8 +3054,8 @@
/doc/html/boost_asio/reference/ip__basic_resolver_iterator/dereference.html
/doc/html/boost_asio/reference/ip__basic_resolver_iterator/difference_type.html
/doc/html/boost_asio/reference/ip__basic_resolver_iterator/equal.html
-/doc/html/boost_asio/reference/ip__basic_resolver_iterator.html
/doc/html/boost_asio/reference/ip__basic_resolver/iterator.html
+/doc/html/boost_asio/reference/ip__basic_resolver_iterator.html
/doc/html/boost_asio/reference/ip__basic_resolver_iterator/increment.html
/doc/html/boost_asio/reference/ip__basic_resolver_iterator/index_.html
/doc/html/boost_asio/reference/ip__basic_resolver_iterator/iterator_category.html
@@ -3032,8 +3093,8 @@
/doc/html/boost_asio/reference/ip__basic_resolver_query/flags.html
/doc/html/boost_asio/reference/ip__basic_resolver_query/hints.html
/doc/html/boost_asio/reference/ip__basic_resolver_query/host_name.html
-/doc/html/boost_asio/reference/ip__basic_resolver_query.html
/doc/html/boost_asio/reference/ip__basic_resolver/query.html
+/doc/html/boost_asio/reference/ip__basic_resolver_query.html
/doc/html/boost_asio/reference/ip__basic_resolver_query/numeric_host.html
/doc/html/boost_asio/reference/ip__basic_resolver_query/numeric_service.html
/doc/html/boost_asio/reference/ip__basic_resolver_query/passive.html
@@ -3274,6 +3335,7 @@
/doc/html/boost_asio/reference/is_write_buffered.html
/doc/html/boost_asio/reference/is_write_buffered/value.html
/doc/html/boost_asio/reference/IteratorConnectHandler.html
+/doc/html/boost_asio/reference/LegacyCompletionHandler.html
/doc/html/boost_asio/reference/local__basic_endpoint/
/doc/html/boost_asio/reference/local__basic_endpoint/basic_endpoint/
/doc/html/boost_asio/reference/local__basic_endpoint/basic_endpoint.html
@@ -3743,6 +3805,7 @@
/doc/html/boost_asio/reference/ssl__context_base/no_sslv3.html
/doc/html/boost_asio/reference/ssl__context_base/no_tlsv1_1.html
/doc/html/boost_asio/reference/ssl__context_base/no_tlsv1_2.html
+/doc/html/boost_asio/reference/ssl__context_base/no_tlsv1_3.html
/doc/html/boost_asio/reference/ssl__context_base/no_tlsv1.html
/doc/html/boost_asio/reference/ssl__context_base/options.html
/doc/html/boost_asio/reference/ssl__context_base/password_purpose.html
@@ -3771,6 +3834,7 @@
/doc/html/boost_asio/reference/ssl__context/no_sslv3.html
/doc/html/boost_asio/reference/ssl__context/no_tlsv1_1.html
/doc/html/boost_asio/reference/ssl__context/no_tlsv1_2.html
+/doc/html/boost_asio/reference/ssl__context/no_tlsv1_3.html
/doc/html/boost_asio/reference/ssl__context/no_tlsv1.html
/doc/html/boost_asio/reference/ssl__context/operator_eq_.html
/doc/html/boost_asio/reference/ssl__context/options.html
@@ -4053,8 +4117,8 @@
/doc/html/boost_asio/reference/uses_executor.html
/doc/html/boost_asio/reference/WaitHandler.html
/doc/html/boost_asio/reference/wait_traits/
-/doc/html/boost_asio/reference/wait_traits.html
/doc/html/boost_asio/reference/WaitTraits.html
+/doc/html/boost_asio/reference/wait_traits.html
/doc/html/boost_asio/reference/wait_traits/to_wait_duration/
/doc/html/boost_asio/reference/wait_traits/to_wait_duration.html
/doc/html/boost_asio/reference/wait_traits/to_wait_duration/overload1.html
@@ -4319,6 +4383,7 @@
/libs/asio/doc/overview/buffers.qbk
/libs/asio/doc/overview/concurrency_hint.qbk
/libs/asio/doc/overview/coroutine.qbk
+/libs/asio/doc/overview/coroutines_ts.qbk
/libs/asio/doc/overview/cpp2011.qbk
/libs/asio/doc/overview/handler_tracking.qbk
/libs/asio/doc/overview/implementation.qbk
@@ -4375,6 +4440,7 @@
/libs/asio/doc/requirements/IoControlCommand.qbk
/libs/asio/doc/requirements/IoObjectService.qbk
/libs/asio/doc/requirements/IteratorConnectHandler.qbk
+/libs/asio/doc/requirements/LegacyCompletionHandler.qbk
/libs/asio/doc/requirements/MoveAcceptHandler.qbk
/libs/asio/doc/requirements/MutableBufferSequence.qbk
/libs/asio/doc/requirements/ProtoAllocator.qbk
@@ -4562,8 +4628,6 @@
/libs/asio/example/cpp03/spawn/Jamfile.v2
/libs/asio/example/cpp03/spawn/parallel_grep.cpp
/libs/asio/example/cpp03/ssl/
-/libs/asio/example/cpp03/ssl/ca2.pem
-/libs/asio/example/cpp03/ssl/ca3.pem
/libs/asio/example/cpp03/ssl/ca.pem
/libs/asio/example/cpp03/ssl/client.cpp
/libs/asio/example/cpp03/ssl/dh2048.pem
@@ -4574,12 +4638,12 @@
/libs/asio/example/cpp03/timeouts/
/libs/asio/example/cpp03/timeouts/async_tcp_client.cpp
/libs/asio/example/cpp03/timeouts/blocking_tcp_client.cpp
+/libs/asio/example/cpp03/timeouts/blocking_token_tcp_client.cpp
/libs/asio/example/cpp03/timeouts/blocking_udp_client.cpp
/libs/asio/example/cpp03/timeouts/Jamfile.v2
/libs/asio/example/cpp03/timeouts/server.cpp
/libs/asio/example/cpp03/timers/
/libs/asio/example/cpp03/timers/Jamfile.v2
-/libs/asio/example/cpp03/timers/tick_count_timer.cpp
/libs/asio/example/cpp03/timers/time_t_timer.cpp
/libs/asio/example/cpp03/tutorial/
/libs/asio/example/cpp03/tutorial/daytime1/
@@ -4677,6 +4741,7 @@
/libs/asio/example/cpp11/invocation/prioritised_handlers.cpp
/libs/asio/example/cpp11/iostreams/
/libs/asio/example/cpp11/iostreams/http_client.cpp
+/libs/asio/example/cpp11/iostreams/Jamfile.v2
/libs/asio/example/cpp11/local/
/libs/asio/example/cpp11/local/connect_pair.cpp
/libs/asio/example/cpp11/local/iostream_client.cpp
@@ -4690,20 +4755,46 @@
/libs/asio/example/cpp11/nonblocking/
/libs/asio/example/cpp11/nonblocking/Jamfile.v2
/libs/asio/example/cpp11/nonblocking/third_party_lib.cpp
+/libs/asio/example/cpp11/operations/
+/libs/asio/example/cpp11/operations/composed_1.cpp
+/libs/asio/example/cpp11/operations/composed_2.cpp
+/libs/asio/example/cpp11/operations/composed_3.cpp
+/libs/asio/example/cpp11/operations/composed_4.cpp
+/libs/asio/example/cpp11/operations/composed_5.cpp
+/libs/asio/example/cpp11/operations/Jamfile.v2
+/libs/asio/example/cpp11/socks4/
+/libs/asio/example/cpp11/socks4/Jamfile.v2
+/libs/asio/example/cpp11/socks4/socks4.hpp
+/libs/asio/example/cpp11/socks4/sync_client.cpp
/libs/asio/example/cpp11/spawn/
/libs/asio/example/cpp11/spawn/echo_server.cpp
/libs/asio/example/cpp11/spawn/Jamfile.v2
/libs/asio/example/cpp11/spawn/parallel_grep.cpp
-/libs/asio/example/cpp14/
-/libs/asio/example/cpp14/executors/
-/libs/asio/example/cpp14/executors/actor.cpp
-/libs/asio/example/cpp14/executors/async_1.cpp
-/libs/asio/example/cpp14/executors/async_2.cpp
-/libs/asio/example/cpp14/executors/bank_account_1.cpp
-/libs/asio/example/cpp14/executors/bank_account_2.cpp
-/libs/asio/example/cpp14/executors/fork_join.cpp
-/libs/asio/example/cpp14/executors/pipeline.cpp
-/libs/asio/example/cpp14/executors/priority_scheduler.cpp
+/libs/asio/example/cpp11/ssl/
+/libs/asio/example/cpp11/ssl/ca.pem
+/libs/asio/example/cpp11/ssl/client.cpp
+/libs/asio/example/cpp11/ssl/dh2048.pem
+/libs/asio/example/cpp11/ssl/Jamfile.v2
+/libs/asio/example/cpp11/ssl/README
+/libs/asio/example/cpp11/ssl/server.cpp
+/libs/asio/example/cpp11/ssl/server.pem
+/libs/asio/example/cpp11/timeouts/
+/libs/asio/example/cpp11/timeouts/async_tcp_client.cpp
+/libs/asio/example/cpp11/timeouts/blocking_tcp_client.cpp
+/libs/asio/example/cpp11/timeouts/blocking_token_tcp_client.cpp
+/libs/asio/example/cpp11/timeouts/blocking_udp_client.cpp
+/libs/asio/example/cpp11/timeouts/Jamfile.v2
+/libs/asio/example/cpp11/timeouts/server.cpp
+/libs/asio/example/cpp11/timers/
+/libs/asio/example/cpp11/timers/Jamfile.v2
+/libs/asio/example/cpp11/timers/time_t_timer.cpp
+/libs/asio/example/cpp17/
+/libs/asio/example/cpp17/coroutines_ts/
+/libs/asio/example/cpp17/coroutines_ts/chat_server.cpp
+/libs/asio/example/cpp17/coroutines_ts/double_buffered_echo_server.cpp
+/libs/asio/example/cpp17/coroutines_ts/echo_server.cpp
+/libs/asio/example/cpp17/coroutines_ts/range_based_for.cpp
+/libs/asio/example/cpp17/coroutines_ts/refactored_echo_server.cpp
/libs/asio/index.html
/libs/asio/meta/
/libs/asio/meta/libraries.json
@@ -4870,18 +4961,34 @@
/libs/system/build/Jamfile
/libs/system/build/Jamfile.v2
/libs/system/doc/
-/libs/system/doc/index.html
-/libs/system/doc/reference.html
+/libs/system/doc/Jamfile
+/libs/system/doc/system/
+/libs/system/doc/system/acknowledgements.adoc
+/libs/system/doc/system.adoc
+/libs/system/doc/system/changes.adoc
+/libs/system/doc/system/copyright.adoc
+/libs/system/doc/system-docinfo-footer.html
+/libs/system/doc/system/history.adoc
+/libs/system/doc/system/introduction.adoc
+/libs/system/doc/system/rationale.adoc
+/libs/system/doc/system/reference.adoc
/libs/system/index.html
/libs/system/meta/
/libs/system/meta/libraries.json
/libs/system/src/
/libs/system/src/error_code.cpp
/libs/system/test/
+/libs/system/test/after_main_test.cpp
+/libs/system/test/before_main_test.cpp
/libs/system/test/config_test.cpp
+/libs/system/test/constexpr_test.cpp
/libs/system/test/dynamic_link_test.cpp
+/libs/system/test/error_category_test.cpp
/libs/system/test/error_code_test.cpp
/libs/system/test/error_code_user_test.cpp
+/libs/system/test/failed_constexpr_test.cpp
+/libs/system/test/failed_test.cpp
+/libs/system/test/generic_category_test.cpp
/libs/system/test/header_only_test.cpp
/libs/system/test/initialization_test.cpp
/libs/system/test/Jamfile.v2
@@ -4901,9 +5008,15 @@
/libs/system/test/msvc/system-dll/system-dll.vcxproj
/libs/system/test/msvc/system.sln
/libs/system/test/quick.cpp
+/libs/system/test/single_instance_1.cpp
+/libs/system/test/single_instance_2.cpp
+/libs/system/test/single_instance_test.cpp
/libs/system/test/std_interop_test.cpp
/libs/system/test/std_mismatch_test.cpp
+/libs/system/test/system_category_test.cpp
/libs/system/test/system_error_test.cpp
+/libs/system/test/throws_assign_fail.cpp
/libs/system/test/throw_test.cpp
+/libs/system/test/win32_hresult_test.cpp
/libs/system/.travis.yml
/README.txt
diff --git a/src/third_party/asio-master/asio/boostify.pl b/src/third_party/asio-master/asio/boostify.pl
index 4d5522de531..73fbdb5151f 100755
--- a/src/third_party/asio-master/asio/boostify.pl
+++ b/src/third_party/asio-master/asio/boostify.pl
@@ -530,7 +530,12 @@ sub copy_examples
"src/examples/cpp11/local",
"src/examples/cpp11/multicast",
"src/examples/cpp11/nonblocking",
+ "src/examples/cpp11/operations",
+ "src/examples/cpp11/socks4",
"src/examples/cpp11/spawn",
+ "src/examples/cpp11/ssl",
+ "src/examples/cpp11/timeouts",
+ "src/examples/cpp11/timers",
"src/examples/cpp14/executors",
"src/examples/cpp17/coroutines_ts");
diff --git a/src/third_party/asio-master/asio/configure.ac b/src/third_party/asio-master/asio/configure.ac
index 3085f51326b..d78c9d72029 100644
--- a/src/third_party/asio-master/asio/configure.ac
+++ b/src/third_party/asio-master/asio/configure.ac
@@ -1,4 +1,4 @@
-AC_INIT(asio, [1.12.0])
+AC_INIT(asio, [1.12.2])
AC_CONFIG_SRCDIR(include/asio.hpp)
AM_MAINTAINER_MODE
AM_INIT_AUTOMAKE([tar-ustar])
@@ -182,4 +182,5 @@ AC_OUTPUT([
src/tests/Makefile
src/examples/cpp03/Makefile
src/examples/cpp11/Makefile
- src/examples/cpp14/Makefile])
+ src/examples/cpp14/Makefile
+ src/examples/cpp17/Makefile])
diff --git a/src/third_party/asio-master/asio/include/Makefile.am b/src/third_party/asio-master/asio/include/Makefile.am
index 2bfb01772e9..a6ac9947dbb 100644
--- a/src/third_party/asio-master/asio/include/Makefile.am
+++ b/src/third_party/asio-master/asio/include/Makefile.am
@@ -68,6 +68,7 @@ nobase_include_HEADERS = \
asio/detail/fd_set_adapter.hpp \
asio/detail/fenced_block.hpp \
asio/detail/functional.hpp \
+ asio/detail/future.hpp \
asio/detail/gcc_arm_fenced_block.hpp \
asio/detail/gcc_hppa_fenced_block.hpp \
asio/detail/gcc_sync_fenced_block.hpp \
diff --git a/src/third_party/asio-master/asio/include/asio/buffer.hpp b/src/third_party/asio-master/asio/include/asio/buffer.hpp
index a9aa8aad272..56a14880dc5 100644
--- a/src/third_party/asio-master/asio/include/asio/buffer.hpp
+++ b/src/third_party/asio-master/asio/include/asio/buffer.hpp
@@ -23,7 +23,6 @@
#include <string>
#include <vector>
#include "asio/detail/array_fwd.hpp"
-#include "asio/detail/is_buffer_sequence.hpp"
#include "asio/detail/string_view.hpp"
#include "asio/detail/throw_exception.hpp"
#include "asio/detail/type_traits.hpp"
@@ -346,41 +345,6 @@ public:
#endif // !defined(ASIO_NO_DEPRECATED)
-/// Trait to determine whether a type satisfies the MutableBufferSequence
-/// requirements.
-template <typename T>
-struct is_mutable_buffer_sequence
-#if defined(GENERATING_DOCUMENTATION)
- : integral_constant<bool, automatically_determined>
-#else // defined(GENERATING_DOCUMENTATION)
- : asio::detail::is_buffer_sequence<T, mutable_buffer>
-#endif // defined(GENERATING_DOCUMENTATION)
-{
-};
-
-/// Trait to determine whether a type satisfies the ConstBufferSequence
-/// requirements.
-template <typename T>
-struct is_const_buffer_sequence
-#if defined(GENERATING_DOCUMENTATION)
- : integral_constant<bool, automatically_determined>
-#else // defined(GENERATING_DOCUMENTATION)
- : asio::detail::is_buffer_sequence<T, const_buffer>
-#endif // defined(GENERATING_DOCUMENTATION)
-{
-};
-
-/// Trait to determine whether a type satisfies the DynamicBuffer requirements.
-template <typename T>
-struct is_dynamic_buffer
-#if defined(GENERATING_DOCUMENTATION)
- : integral_constant<bool, automatically_determined>
-#else // defined(GENERATING_DOCUMENTATION)
- : asio::detail::is_dynamic_buffer<T>
-#endif // defined(GENERATING_DOCUMENTATION)
-{
-};
-
/// (Deprecated: Use the socket/descriptor wait() and async_wait() member
/// functions.) An implementation of both the ConstBufferSequence and
/// MutableBufferSequence concepts to represent a null buffer sequence.
@@ -1403,7 +1367,7 @@ inline ASIO_MUTABLE_BUFFER buffer(
);
}
-/// Create a new non-modifiable buffer that represents the given string.
+/// Create a new modifiable buffer that represents the given string.
/**
* @returns A mutable_buffer value equivalent to:
* @code mutable_buffer(
@@ -2158,5 +2122,48 @@ inline std::size_t buffer_copy(const MutableBufferSequence& target,
} // namespace asio
#include "asio/detail/pop_options.hpp"
+#include "asio/detail/is_buffer_sequence.hpp"
+#include "asio/detail/push_options.hpp"
+
+namespace asio {
+
+/// Trait to determine whether a type satisfies the MutableBufferSequence
+/// requirements.
+template <typename T>
+struct is_mutable_buffer_sequence
+#if defined(GENERATING_DOCUMENTATION)
+ : integral_constant<bool, automatically_determined>
+#else // defined(GENERATING_DOCUMENTATION)
+ : asio::detail::is_buffer_sequence<T, mutable_buffer>
+#endif // defined(GENERATING_DOCUMENTATION)
+{
+};
+
+/// Trait to determine whether a type satisfies the ConstBufferSequence
+/// requirements.
+template <typename T>
+struct is_const_buffer_sequence
+#if defined(GENERATING_DOCUMENTATION)
+ : integral_constant<bool, automatically_determined>
+#else // defined(GENERATING_DOCUMENTATION)
+ : asio::detail::is_buffer_sequence<T, const_buffer>
+#endif // defined(GENERATING_DOCUMENTATION)
+{
+};
+
+/// Trait to determine whether a type satisfies the DynamicBuffer requirements.
+template <typename T>
+struct is_dynamic_buffer
+#if defined(GENERATING_DOCUMENTATION)
+ : integral_constant<bool, automatically_determined>
+#else // defined(GENERATING_DOCUMENTATION)
+ : asio::detail::is_dynamic_buffer<T>
+#endif // defined(GENERATING_DOCUMENTATION)
+{
+};
+
+} // namespace asio
+
+#include "asio/detail/pop_options.hpp"
#endif // ASIO_BUFFER_HPP
diff --git a/src/third_party/asio-master/asio/include/asio/connect.hpp b/src/third_party/asio-master/asio/include/asio/connect.hpp
index 487ce3e0856..89a9f35f984 100644
--- a/src/third_party/asio-master/asio/include/asio/connect.hpp
+++ b/src/third_party/asio-master/asio/include/asio/connect.hpp
@@ -58,7 +58,8 @@ struct is_endpoint_sequence
/**
* @defgroup connect asio::connect
*
- * @brief Establishes a socket connection by trying each endpoint in a sequence.
+ * @brief The @c connect function is a composed operation that establishes a
+ * socket connection by trying each endpoint in a sequence.
*/
/*@{*/
@@ -131,8 +132,8 @@ typename Protocol::endpoint connect(
EndpointSequence>::value>::type* = 0);
#if !defined(ASIO_NO_DEPRECATED)
-/// (Deprecated.) Establishes a socket connection by trying each endpoint in a
-/// sequence.
+/// (Deprecated: Use range overload.) Establishes a socket connection by trying
+/// each endpoint in a sequence.
/**
* This function attempts to connect a socket to one of a sequence of
* endpoints. It does this by repeated calls to the socket's @c connect member
@@ -159,8 +160,8 @@ template <typename Protocol ASIO_SVC_TPARAM, typename Iterator>
Iterator connect(basic_socket<Protocol ASIO_SVC_TARG>& s, Iterator begin,
typename enable_if<!is_endpoint_sequence<Iterator>::value>::type* = 0);
-/// (Deprecated.) Establishes a socket connection by trying each endpoint in a
-/// sequence.
+/// (Deprecated: Use range overload.) Establishes a socket connection by trying
+/// each endpoint in a sequence.
/**
* This function attempts to connect a socket to one of a sequence of
* endpoints. It does this by repeated calls to the socket's @c connect member
@@ -386,8 +387,8 @@ typename Protocol::endpoint connect(
EndpointSequence>::value>::type* = 0);
#if !defined(ASIO_NO_DEPRECATED)
-/// (Deprecated.) Establishes a socket connection by trying each endpoint in a
-/// sequence.
+/// (Deprecated: Use range overload.) Establishes a socket connection by trying
+/// each endpoint in a sequence.
/**
* This function attempts to connect a socket to one of a sequence of
* endpoints. It does this by repeated calls to the socket's @c connect member
@@ -427,8 +428,8 @@ Iterator connect(basic_socket<Protocol ASIO_SVC_TARG>& s,
Iterator begin, ConnectCondition connect_condition,
typename enable_if<!is_endpoint_sequence<Iterator>::value>::type* = 0);
-/// (Deprecated.) Establishes a socket connection by trying each endpoint in a
-/// sequence.
+/// (Deprecated: Use range overload.) Establishes a socket connection by trying
+/// each endpoint in a sequence.
/**
* This function attempts to connect a socket to one of a sequence of
* endpoints. It does this by repeated calls to the socket's @c connect member
@@ -602,8 +603,8 @@ Iterator connect(basic_socket<Protocol ASIO_SVC_TARG>& s,
/**
* @defgroup async_connect asio::async_connect
*
- * @brief Asynchronously establishes a socket connection by trying each
- * endpoint in a sequence.
+ * @brief The @c async_connect function is a composed asynchronous operation
+ * that establishes a socket connection by trying each endpoint in a sequence.
*/
/*@{*/
@@ -679,8 +680,8 @@ async_connect(basic_socket<Protocol ASIO_SVC_TARG>& s,
EndpointSequence>::value>::type* = 0);
#if !defined(ASIO_NO_DEPRECATED)
-/// (Deprecated.) Asynchronously establishes a socket connection by trying each
-/// endpoint in a sequence.
+/// (Deprecated: Use range overload.) Asynchronously establishes a socket
+/// connection by trying each endpoint in a sequence.
/**
* This function attempts to connect a socket to one of a sequence of
* endpoints. It does this by repeated calls to the socket's @c async_connect
@@ -886,8 +887,8 @@ async_connect(basic_socket<Protocol ASIO_SVC_TARG>& s,
EndpointSequence>::value>::type* = 0);
#if !defined(ASIO_NO_DEPRECATED)
-/// (Deprecated.) Asynchronously establishes a socket connection by trying each
-/// endpoint in a sequence.
+/// (Deprecated: Use range overload.) Asynchronously establishes a socket
+/// connection by trying each endpoint in a sequence.
/**
* This function attempts to connect a socket to one of a sequence of
* endpoints. It does this by repeated calls to the socket's @c async_connect
diff --git a/src/third_party/asio-master/asio/include/asio/detail/config.hpp b/src/third_party/asio-master/asio/include/asio/detail/config.hpp
index 6363108d572..2b8582e4077 100644
--- a/src/third_party/asio-master/asio/include/asio/detail/config.hpp
+++ b/src/third_party/asio-master/asio/include/asio/detail/config.hpp
@@ -79,9 +79,6 @@
# define ASIO_MSVC _MSC_VER
# endif // defined(ASIO_HAS_BOOST_CONFIG) && defined(BOOST_MSVC)
#endif // !defined(ASIO_MSVC)
-#if defined(ASIO_MSVC)
-# include <ciso646> // Needed for _HAS_CXX17.
-#endif // defined(ASIO_MSVC)
// Clang / libc++ detection.
#if defined(__clang__)
@@ -120,6 +117,14 @@
# define ASIO_HAS_MOVE 1
# endif // (_MSC_VER >= 1700)
# endif // defined(ASIO_MSVC)
+# if defined(__INTEL_CXX11_MODE__)
+# if defined(__INTEL_COMPILER) && (__INTEL_COMPILER >= 1500)
+# define BOOST_ASIO_HAS_MOVE 1
+# endif // defined(__INTEL_COMPILER) && (__INTEL_COMPILER >= 1500)
+# if defined(__ICL) && (__ICL >= 1500)
+# define BOOST_ASIO_HAS_MOVE 1
+# endif // defined(__ICL) && (__ICL >= 1500)
+# endif // defined(__INTEL_CXX11_MODE__)
# endif // !defined(ASIO_DISABLE_MOVE)
#endif // !defined(ASIO_HAS_MOVE)
@@ -238,7 +243,7 @@
// Support noexcept on compilers known to allow it.
#if !defined(ASIO_NOEXCEPT)
# if !defined(ASIO_DISABLE_NOEXCEPT)
-# if (BOOST_VERSION >= 105300)
+# if defined(ASIO_HAS_BOOST_CONFIG) && (BOOST_VERSION >= 105300)
# define ASIO_NOEXCEPT BOOST_NOEXCEPT
# define ASIO_NOEXCEPT_OR_NOTHROW BOOST_NOEXCEPT_OR_NOTHROW
# elif defined(__clang__)
@@ -770,9 +775,7 @@
# if defined(__GNUC__)
# if ((__GNUC__ == 4) && (__GNUC_MINOR__ >= 7)) || (__GNUC__ > 4)
# if defined(__GXX_EXPERIMENTAL_CXX0X__)
-# if defined(_GLIBCXX_HAS_GTHREADS)
-# define ASIO_HAS_STD_FUTURE 1
-# endif // defined(_GLIBCXX_HAS_GTHREADS)
+# define ASIO_HAS_STD_FUTURE 1
# endif // defined(__GXX_EXPERIMENTAL_CXX0X__)
# endif // ((__GNUC__ == 4) && (__GNUC_MINOR__ >= 7)) || (__GNUC__ > 4)
# endif // defined(__GNUC__)
@@ -788,23 +791,29 @@
#if !defined(ASIO_HAS_STD_STRING_VIEW)
# if !defined(ASIO_DISABLE_STD_STRING_VIEW)
# if defined(__clang__)
-# if (__cplusplus >= 201703)
-# if __has_include(<string_view>)
-# define ASIO_HAS_STD_STRING_VIEW 1
-# endif // __has_include(<string_view>)
-# endif // (__cplusplus >= 201703)
-# endif // defined(__clang__)
-# if defined(__GNUC__)
+# if defined(ASIO_HAS_CLANG_LIBCXX)
+# if (__cplusplus >= 201402)
+# if __has_include(<string_view>)
+# define ASIO_HAS_STD_STRING_VIEW 1
+# endif // __has_include(<string_view>)
+# endif // (__cplusplus >= 201402)
+# else // defined(ASIO_HAS_CLANG_LIBCXX)
+# if (__cplusplus >= 201703)
+# if __has_include(<string_view>)
+# define ASIO_HAS_STD_STRING_VIEW 1
+# endif // __has_include(<string_view>)
+# endif // (__cplusplus >= 201703)
+# endif // defined(ASIO_HAS_CLANG_LIBCXX)
+# elif defined(__GNUC__)
# if (__GNUC__ >= 7)
# if (__cplusplus >= 201703)
# define ASIO_HAS_STD_STRING_VIEW 1
# endif // (__cplusplus >= 201703)
# endif // (__GNUC__ >= 7)
-# endif // defined(__GNUC__)
-# if defined(ASIO_MSVC)
-# if (_MSC_VER >= 1910 && _HAS_CXX17)
-# define ASIO_HAS_STD_STRING_VIEW
-# endif // (_MSC_VER >= 1910 && _HAS_CXX17)
+# elif defined(ASIO_MSVC)
+# if (_MSC_VER >= 1910 && _MSVC_LANG >= 201703)
+# define ASIO_HAS_STD_STRING_VIEW 1
+# endif // (_MSC_VER >= 1910 && _MSVC_LANG >= 201703)
# endif // defined(ASIO_MSVC)
# endif // !defined(ASIO_DISABLE_STD_STRING_VIEW)
#endif // !defined(ASIO_HAS_STD_STRING_VIEW)
@@ -813,11 +822,21 @@
#if !defined(ASIO_HAS_STD_EXPERIMENTAL_STRING_VIEW)
# if !defined(ASIO_DISABLE_STD_EXPERIMENTAL_STRING_VIEW)
# if defined(__clang__)
-# if (__cplusplus >= 201402)
-# if __has_include(<experimental/string_view>)
-# define ASIO_HAS_STD_EXPERIMENTAL_STRING_VIEW 1
-# endif // __has_include(<experimental/string_view>)
-# endif // (__cplusplus >= 201402)
+# if defined(ASIO_HAS_CLANG_LIBCXX)
+# if (_LIBCPP_VERSION < 7000)
+# if (__cplusplus >= 201402)
+# if __has_include(<experimental/string_view>)
+# define ASIO_HAS_STD_EXPERIMENTAL_STRING_VIEW 1
+# endif // __has_include(<experimental/string_view>)
+# endif // (__cplusplus >= 201402)
+# endif // (_LIBCPP_VERSION < 7000)
+# else // defined(ASIO_HAS_CLANG_LIBCXX)
+# if (__cplusplus >= 201402)
+# if __has_include(<experimental/string_view>)
+# define ASIO_HAS_STD_EXPERIMENTAL_STRING_VIEW 1
+# endif // __has_include(<experimental/string_view>)
+# endif // (__cplusplus >= 201402)
+# endif // // defined(ASIO_HAS_CLANG_LIBCXX)
# endif // defined(__clang__)
# if defined(__GNUC__)
# if ((__GNUC__ == 4) && (__GNUC_MINOR__ >= 9)) || (__GNUC__ > 4)
@@ -862,9 +881,9 @@
#if !defined(ASIO_HAS_STD_INVOKE_RESULT)
# if !defined(ASIO_DISABLE_STD_INVOKE_RESULT)
# if defined(ASIO_MSVC)
-# if (_MSC_VER >= 1910 && _HAS_CXX17)
+# if (_MSC_VER >= 1911 && _MSVC_LANG >= 201703)
# define ASIO_HAS_STD_INVOKE_RESULT 1
-# endif // (_MSC_VER >= 1910 && _HAS_CXX17)
+# endif // (_MSC_VER >= 1911 && _MSVC_LANG >= 201703)
# endif // defined(ASIO_MSVC)
# endif // !defined(ASIO_DISABLE_STD_INVOKE_RESULT)
#endif // !defined(ASIO_HAS_STD_INVOKE_RESULT)
diff --git a/src/third_party/asio-master/asio/include/asio/detail/future.hpp b/src/third_party/asio-master/asio/include/asio/detail/future.hpp
new file mode 100644
index 00000000000..27461553f1f
--- /dev/null
+++ b/src/third_party/asio-master/asio/include/asio/detail/future.hpp
@@ -0,0 +1,33 @@
+//
+// detail/future.hpp
+// ~~~~~~~~~~~~~~~~~
+//
+// Copyright (c) 2003-2018 Christopher M. Kohlhoff (chris at kohlhoff dot com)
+//
+// Distributed under the Boost Software License, Version 1.0. (See accompanying
+// file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
+//
+
+#ifndef ASIO_DETAIL_FUTURE_HPP
+#define ASIO_DETAIL_FUTURE_HPP
+
+#if defined(_MSC_VER) && (_MSC_VER >= 1200)
+# pragma once
+#endif // defined(_MSC_VER) && (_MSC_VER >= 1200)
+
+#include "asio/detail/config.hpp"
+#if defined(ASIO_HAS_STD_FUTURE)
+# include <future>
+// Even though the future header is available, libstdc++ may not implement the
+// std::future class itself. However, we need to have already included the
+// future header to reliably test for _GLIBCXX_HAS_GTHREADS.
+# if defined(__GNUC__) && !defined(ASIO_HAS_CLANG_LIBCXX)
+# if defined(_GLIBCXX_HAS_GTHREADS)
+# define ASIO_HAS_STD_FUTURE_CLASS 1
+# endif // defined(_GLIBCXX_HAS_GTHREADS)
+# else // defined(__GNUC__) && !defined(ASIO_HAS_CLANG_LIBCXX)
+# define ASIO_HAS_STD_FUTURE_CLASS 1
+# endif // defined(__GNUC__) && !defined(ASIO_HAS_CLANG_LIBCXX)
+#endif // defined(ASIO_HAS_STD_FUTURE)
+
+#endif // ASIO_DETAIL_FUTURE_HPP
diff --git a/src/third_party/asio-master/asio/include/asio/detail/impl/socket_ops.ipp b/src/third_party/asio-master/asio/include/asio/detail/impl/socket_ops.ipp
index 254960135fa..62233766118 100644
--- a/src/third_party/asio-master/asio/include/asio/detail/impl/socket_ops.ipp
+++ b/src/third_party/asio-master/asio/include/asio/detail/impl/socket_ops.ipp
@@ -2090,7 +2090,7 @@ const char* inet_ntop(int af, const void* src, char* dest, size_t length,
if (result != 0 && af == ASIO_OS_DEF(AF_INET6) && scope_id != 0)
{
using namespace std; // For strcat and sprintf.
- char if_name[IF_NAMESIZE + 1] = "%";
+ char if_name[(IF_NAMESIZE > 21 ? IF_NAMESIZE : 21) + 1] = "%";
const in6_addr_type* ipv6_address = static_cast<const in6_addr_type*>(src);
bool is_link_local = ((ipv6_address->s6_addr[0] == 0xfe)
&& ((ipv6_address->s6_addr[1] & 0xc0) == 0x80));
diff --git a/src/third_party/asio-master/asio/include/asio/detail/is_buffer_sequence.hpp b/src/third_party/asio-master/asio/include/asio/detail/is_buffer_sequence.hpp
index 42ad0ebe1a2..69f9bbdf264 100644
--- a/src/third_party/asio-master/asio/include/asio/detail/is_buffer_sequence.hpp
+++ b/src/third_party/asio-master/asio/include/asio/detail/is_buffer_sequence.hpp
@@ -52,23 +52,47 @@ struct buffer_sequence_memfns_check
};
template <typename>
-char (&begin_memfn_helper(...))[2];
+char (&buffer_sequence_begin_helper(...))[2];
+
+#if defined(ASIO_HAS_DECLTYPE)
template <typename T>
-char begin_memfn_helper(
+char buffer_sequence_begin_helper(T* t,
+ typename enable_if<!is_same<
+ decltype(asio::buffer_sequence_begin(*t)),
+ void>::value>::type*);
+
+#else // defined(ASIO_HAS_DECLTYPE)
+
+template <typename T>
+char buffer_sequence_begin_helper(T* t,
buffer_sequence_memfns_check<
void (buffer_sequence_memfns_base::*)(),
&buffer_sequence_memfns_derived<T>::begin>*);
+#endif // defined(ASIO_HAS_DECLTYPE)
+
template <typename>
-char (&end_memfn_helper(...))[2];
+char (&buffer_sequence_end_helper(...))[2];
+
+#if defined(ASIO_HAS_DECLTYPE)
template <typename T>
-char end_memfn_helper(
+char buffer_sequence_end_helper(T* t,
+ typename enable_if<!is_same<
+ decltype(asio::buffer_sequence_end(*t)),
+ void>::value>::type*);
+
+#else // defined(ASIO_HAS_DECLTYPE)
+
+template <typename T>
+char buffer_sequence_end_helper(T* t,
buffer_sequence_memfns_check<
void (buffer_sequence_memfns_base::*)(),
&buffer_sequence_memfns_derived<T>::end>*);
+#endif // defined(ASIO_HAS_DECLTYPE)
+
template <typename>
char (&size_memfn_helper(...))[2];
@@ -133,25 +157,25 @@ char consume_memfn_helper(
&buffer_sequence_memfns_derived<T>::consume>*);
template <typename, typename>
-char (&buffer_element_type_helper(...))[2];
+char (&buffer_sequence_element_type_helper(...))[2];
-#if defined(ASIO_HAS_DECL_TYPE)
+#if defined(ASIO_HAS_DECLTYPE)
template <typename T, typename Buffer>
-char buffer_element_type_helper(T* t,
+char buffer_sequence_element_type_helper(T* t,
typename enable_if<is_convertible<
- decltype(*buffer_sequence_begin(*t)),
+ decltype(*asio::buffer_sequence_begin(*t)),
Buffer>::value>::type*);
-#else // defined(ASIO_HAS_DECL_TYPE)
+#else // defined(ASIO_HAS_DECLTYPE)
template <typename T, typename Buffer>
-char buffer_element_type_helper(
+char buffer_sequence_element_type_helper(
typename T::const_iterator*,
typename enable_if<is_convertible<
typename T::value_type, Buffer>::value>::type*);
-#endif // defined(ASIO_HAS_DECL_TYPE)
+#endif // defined(ASIO_HAS_DECLTYPE)
template <typename>
char (&const_buffers_type_typedef_helper(...))[2];
@@ -170,9 +194,9 @@ char mutable_buffers_type_typedef_helper(
template <typename T, typename Buffer>
struct is_buffer_sequence_class
: integral_constant<bool,
- sizeof(begin_memfn_helper<T>(0)) != 1 &&
- sizeof(end_memfn_helper<T>(0)) != 1 &&
- sizeof(buffer_element_type_helper<T, Buffer>(0, 0)) == 1>
+ sizeof(buffer_sequence_begin_helper<T>(0)) != 1 &&
+ sizeof(buffer_sequence_end_helper<T>(0)) != 1 &&
+ sizeof(buffer_sequence_element_type_helper<T, Buffer>(0, 0)) == 1>
{
};
diff --git a/src/third_party/asio-master/asio/include/asio/detail/timer_queue.hpp b/src/third_party/asio-master/asio/include/asio/detail/timer_queue.hpp
index 380e7791eb9..de37000dbbd 100644
--- a/src/third_party/asio-master/asio/include/asio/detail/timer_queue.hpp
+++ b/src/third_party/asio-master/asio/include/asio/detail/timer_queue.hpp
@@ -266,11 +266,13 @@ private:
{
if (index == heap_.size() - 1)
{
+ timer.heap_index_ = (std::numeric_limits<std::size_t>::max)();
heap_.pop_back();
}
else
{
swap_heap(index, heap_.size() - 1);
+ timer.heap_index_ = (std::numeric_limits<std::size_t>::max)();
heap_.pop_back();
if (index > 0 && Time_Traits::less_than(
heap_[index].time_, heap_[(index - 1) / 2].time_))
diff --git a/src/third_party/asio-master/asio/include/asio/detail/win_global.hpp b/src/third_party/asio-master/asio/include/asio/detail/win_global.hpp
index 3b15a32d301..dd0a55564b6 100644
--- a/src/third_party/asio-master/asio/include/asio/detail/win_global.hpp
+++ b/src/third_party/asio-master/asio/include/asio/detail/win_global.hpp
@@ -58,7 +58,8 @@ T& win_global()
{
win_global_impl<T>::mutex_.init();
static_mutex::scoped_lock lock(win_global_impl<T>::mutex_);
- win_global_impl<T>::ptr_ = new T;
+ if (win_global_impl<T>::ptr_ == 0)
+ win_global_impl<T>::ptr_ = new T;
win_global_impl<T>::tss_ptr_ = win_global_impl<T>::ptr_;
}
diff --git a/src/third_party/asio-master/asio/include/asio/impl/io_context.hpp b/src/third_party/asio-master/asio/include/asio/impl/io_context.hpp
index eaf580da7fd..5b6300f8475 100644
--- a/src/third_party/asio-master/asio/include/asio/impl/io_context.hpp
+++ b/src/third_party/asio-master/asio/include/asio/impl/io_context.hpp
@@ -247,7 +247,7 @@ void io_context::executor_type::dispatch(
p.p = new (p.v) op(ASIO_MOVE_CAST(Function)(f), a);
ASIO_HANDLER_CREATION((this->context(), *p.p,
- "io_context", &this->context(), 0, "post"));
+ "io_context", &this->context(), 0, "dispatch"));
io_context_.impl_.post_immediate_completion(p.p, false);
p.v = p.p = 0;
diff --git a/src/third_party/asio-master/asio/include/asio/impl/read_until.hpp b/src/third_party/asio-master/asio/include/asio/impl/read_until.hpp
index 1f39e1933b5..1a093cf033b 100644
--- a/src/third_party/asio-master/asio/include/asio/impl/read_until.hpp
+++ b/src/third_party/asio-master/asio/include/asio/impl/read_until.hpp
@@ -269,7 +269,9 @@ std::size_t read_until(SyncReadStream& s,
}
// Need more data.
- std::size_t bytes_to_read = read_size_helper(b, 65536);
+ std::size_t bytes_to_read = std::min<std::size_t>(
+ std::max<std::size_t>(512, b.capacity() - b.size()),
+ std::min<std::size_t>(65536, b.max_size() - b.size()));
b.commit(s.read_some(b.prepare(bytes_to_read), ec));
if (ec)
return 0;
diff --git a/src/third_party/asio-master/asio/include/asio/impl/use_future.hpp b/src/third_party/asio-master/asio/include/asio/impl/use_future.hpp
index 51eb7e2ca41..40bf7a47a06 100644
--- a/src/third_party/asio-master/asio/include/asio/impl/use_future.hpp
+++ b/src/third_party/asio-master/asio/include/asio/impl/use_future.hpp
@@ -16,7 +16,6 @@
#endif // defined(_MSC_VER) && (_MSC_VER >= 1200)
#include "asio/detail/config.hpp"
-#include <future>
#include <tuple>
#include "asio/async_result.hpp"
#include "asio/detail/memory.hpp"
diff --git a/src/third_party/asio-master/asio/include/asio/ip/bad_address_cast.hpp b/src/third_party/asio-master/asio/include/asio/ip/bad_address_cast.hpp
index 8c71f704f83..0838d4a71e0 100644
--- a/src/third_party/asio-master/asio/include/asio/ip/bad_address_cast.hpp
+++ b/src/third_party/asio-master/asio/include/asio/ip/bad_address_cast.hpp
@@ -24,7 +24,12 @@ namespace asio {
namespace ip {
/// Thrown to indicate a failed address conversion.
-class bad_address_cast : public std::bad_cast
+class bad_address_cast :
+#if defined(ASIO_MSVC) && defined(_HAS_EXCEPTIONS) && !_HAS_EXCEPTIONS
+ public std::exception
+#else
+ public std::bad_cast
+#endif
{
public:
/// Default constructor.
diff --git a/src/third_party/asio-master/asio/include/asio/ip/basic_resolver.hpp b/src/third_party/asio-master/asio/include/asio/ip/basic_resolver.hpp
index 812dbec541c..9f408956848 100644
--- a/src/third_party/asio-master/asio/include/asio/ip/basic_resolver.hpp
+++ b/src/third_party/asio-master/asio/include/asio/ip/basic_resolver.hpp
@@ -198,7 +198,8 @@ public:
}
#if !defined(ASIO_NO_DEPRECATED)
- /// (Deprecated.) Perform forward resolution of a query to a list of entries.
+ /// (Deprecated: Use overload with separate host and service parameters.)
+ /// Perform forward resolution of a query to a list of entries.
/**
* This function is used to resolve a query into a list of endpoint entries.
*
@@ -219,7 +220,8 @@ public:
return r;
}
- /// (Deprecated.) Perform forward resolution of a query to a list of entries.
+ /// (Deprecated: Use overload with separate host and service parameters.)
+ /// Perform forward resolution of a query to a list of entries.
/**
* This function is used to resolve a query into a list of endpoint entries.
*
@@ -600,8 +602,8 @@ public:
}
#if !defined(ASIO_NO_DEPRECATED)
- /// (Deprecated.) Asynchronously perform forward resolution of a query to a
- /// list of entries.
+ /// (Deprecated: Use overload with separate host and service parameters.)
+ /// Asynchronously perform forward resolution of a query to a list of entries.
/**
* This function is used to asynchronously resolve a query into a list of
* endpoint entries.
diff --git a/src/third_party/asio-master/asio/include/asio/ip/basic_resolver_results.hpp b/src/third_party/asio-master/asio/include/asio/ip/basic_resolver_results.hpp
index 185075f0bf9..b87e33655e9 100644
--- a/src/third_party/asio-master/asio/include/asio/ip/basic_resolver_results.hpp
+++ b/src/third_party/asio-master/asio/include/asio/ip/basic_resolver_results.hpp
@@ -232,19 +232,19 @@ public:
/// Get the number of entries in the results range.
size_type size() const ASIO_NOEXCEPT
{
- return this->values_->size();
+ return this->values_ ? this->values_->size() : 0;
}
/// Get the maximum number of entries permitted in a results range.
size_type max_size() const ASIO_NOEXCEPT
{
- return this->values_->max_size();
+ return this->values_ ? this->values_->max_size() : values_type().max_size();
}
/// Determine whether the results range is empty.
bool empty() const ASIO_NOEXCEPT
{
- return this->values_->empty();
+ return this->values_ ? this->values_->empty() : true;
}
/// Obtain a begin iterator for the results range.
@@ -252,7 +252,7 @@ public:
{
basic_resolver_results tmp(*this);
tmp.index_ = 0;
- return tmp;
+ return ASIO_MOVE_CAST(basic_resolver_results)(tmp);
}
/// Obtain an end iterator for the results range.
diff --git a/src/third_party/asio-master/asio/include/asio/packaged_task.hpp b/src/third_party/asio-master/asio/include/asio/packaged_task.hpp
index 1e20b42e4d2..29b15b88045 100644
--- a/src/third_party/asio-master/asio/include/asio/packaged_task.hpp
+++ b/src/third_party/asio-master/asio/include/asio/packaged_task.hpp
@@ -16,11 +16,11 @@
#endif // defined(_MSC_VER) && (_MSC_VER >= 1200)
#include "asio/detail/config.hpp"
+#include "asio/detail/future.hpp"
-#if defined(ASIO_HAS_STD_FUTURE) \
+#if defined(ASIO_HAS_STD_FUTURE_CLASS) \
|| defined(GENERATING_DOCUMENTATION)
-#include <future>
#include "asio/async_result.hpp"
#include "asio/detail/type_traits.hpp"
#include "asio/detail/variadic_templates.hpp"
@@ -120,7 +120,7 @@ private:
#include "asio/detail/pop_options.hpp"
-#endif // defined(ASIO_HAS_STD_FUTURE)
+#endif // defined(ASIO_HAS_STD_FUTURE_CLASS)
// || defined(GENERATING_DOCUMENTATION)
#endif // ASIO_PACKAGED_TASK_HPP
diff --git a/src/third_party/asio-master/asio/include/asio/read.hpp b/src/third_party/asio-master/asio/include/asio/read.hpp
index e77206a88cf..02e8b677853 100644
--- a/src/third_party/asio-master/asio/include/asio/read.hpp
+++ b/src/third_party/asio-master/asio/include/asio/read.hpp
@@ -32,8 +32,8 @@ namespace asio {
/**
* @defgroup read asio::read
*
- * @brief Attempt to read a certain amount of data from a stream before
- * returning.
+ * @brief The @c read function is a composed operation that reads a certain
+ * amount of data from a stream before returning.
*/
/*@{*/
@@ -532,8 +532,8 @@ std::size_t read(SyncReadStream& s, basic_streambuf<Allocator>& b,
/**
* @defgroup async_read asio::async_read
*
- * @brief Start an asynchronous operation to read a certain amount of data from
- * a stream.
+ * @brief The @c async_read function is a composed asynchronous operation that
+ * reads a certain amount of data from a stream before completion.
*/
/*@{*/
diff --git a/src/third_party/asio-master/asio/include/asio/read_at.hpp b/src/third_party/asio-master/asio/include/asio/read_at.hpp
index df2c628782c..3e25a9152e5 100644
--- a/src/third_party/asio-master/asio/include/asio/read_at.hpp
+++ b/src/third_party/asio-master/asio/include/asio/read_at.hpp
@@ -32,8 +32,8 @@ namespace asio {
/**
* @defgroup read_at asio::read_at
*
- * @brief Attempt to read a certain amount of data at the specified offset
- * before returning.
+ * @brief The @c read_at function is a composed operation that reads a certain
+ * amount of data at the specified offset before returning.
*/
/*@{*/
@@ -394,8 +394,8 @@ std::size_t read_at(SyncRandomAccessReadDevice& d,
/**
* @defgroup async_read_at asio::async_read_at
*
- * @brief Start an asynchronous operation to read a certain amount of data at
- * the specified offset.
+ * @brief The @c async_read_at function is a composed asynchronous operation
+ * that reads a certain amount of data at the specified offset.
*/
/*@{*/
diff --git a/src/third_party/asio-master/asio/include/asio/read_until.hpp b/src/third_party/asio-master/asio/include/asio/read_until.hpp
index f413d987d0f..a346d4ba656 100644
--- a/src/third_party/asio-master/asio/include/asio/read_until.hpp
+++ b/src/third_party/asio-master/asio/include/asio/read_until.hpp
@@ -67,9 +67,10 @@ struct is_match_condition
/**
* @defgroup read_until asio::read_until
*
- * @brief Read data into a dynamic buffer sequence, or into a streambuf, until
- * it contains a delimiter, matches a regular expression, or a function object
- * indicates a match.
+ * @brief The @c read_until function is a composed operation that reads data
+ * into a dynamic buffer sequence, or into a streambuf, until it contains a
+ * delimiter, matches a regular expression, or a function object indicates a
+ * match.
*/
/*@{*/
@@ -985,9 +986,10 @@ std::size_t read_until(SyncReadStream& s,
/**
* @defgroup async_read_until asio::async_read_until
*
- * @brief Start an asynchronous operation to read data into a dynamic buffer
- * sequence, or into a streambuf, until it contains a delimiter, matches a
- * regular expression, or a function object indicates a match.
+ * @brief The @c async_read_until function is a composed asynchronous operation
+ * that reads data into a dynamic buffer sequence, or into a streambuf, until
+ * it contains a delimiter, matches a regular expression, or a function object
+ * indicates a match.
*/
/*@{*/
diff --git a/src/third_party/asio-master/asio/include/asio/ssl/context_base.hpp b/src/third_party/asio-master/asio/include/asio/ssl/context_base.hpp
index 56c76936e0c..b862f9682b4 100644
--- a/src/third_party/asio-master/asio/include/asio/ssl/context_base.hpp
+++ b/src/third_party/asio-master/asio/include/asio/ssl/context_base.hpp
@@ -85,6 +85,15 @@ public:
/// TLS version 1.2 server.
tlsv12_server,
+ /// Generic TLS version 1.3.
+ tlsv13,
+
+ /// TLS version 1.3 client.
+ tlsv13_client,
+
+ /// TLS version 1.3 server.
+ tlsv13_server,
+
/// Generic TLS.
tls,
@@ -120,6 +129,9 @@ public:
/// Disable TLS v1.2.
static const long no_tlsv1_2 = implementation_defined;
+ /// Disable TLS v1.3.
+ static const long no_tlsv1_3 = implementation_defined;
+
/// Disable compression. Compression is disabled by default.
static const long no_compression = implementation_defined;
#else
@@ -138,6 +150,11 @@ public:
# else // defined(SSL_OP_NO_TLSv1_2)
ASIO_STATIC_CONSTANT(long, no_tlsv1_2 = 0x08000000L);
# endif // defined(SSL_OP_NO_TLSv1_2)
+# if defined(SSL_OP_NO_TLSv1_3)
+ ASIO_STATIC_CONSTANT(long, no_tlsv1_3 = SSL_OP_NO_TLSv1_3);
+# else // defined(SSL_OP_NO_TLSv1_3)
+ ASIO_STATIC_CONSTANT(long, no_tlsv1_3 = 0x20000000L);
+# endif // defined(SSL_OP_NO_TLSv1_3)
# if defined(SSL_OP_NO_COMPRESSION)
ASIO_STATIC_CONSTANT(long, no_compression = SSL_OP_NO_COMPRESSION);
# else // defined(SSL_OP_NO_COMPRESSION)
diff --git a/src/third_party/asio-master/asio/include/asio/ssl/impl/context.ipp b/src/third_party/asio-master/asio/include/asio/ssl/impl/context.ipp
index b756fd26e5a..3bc3f295c29 100644
--- a/src/third_party/asio-master/asio/include/asio/ssl/impl/context.ipp
+++ b/src/third_party/asio-master/asio/include/asio/ssl/impl/context.ipp
@@ -157,7 +157,7 @@ context::context(context::method m)
SSL_CTX_set_max_proto_version(handle_, TLS1_VERSION);
}
break;
-#else // (OPENSSL_VERSION_NUMBER >= 0x10100000L)
+#elif defined(SSL_TXT_TLSV1)
case context::tlsv1:
handle_ = ::SSL_CTX_new(::TLSv1_method());
break;
@@ -167,7 +167,14 @@ context::context(context::method m)
case context::tlsv1_server:
handle_ = ::SSL_CTX_new(::TLSv1_server_method());
break;
-#endif // (OPENSSL_VERSION_NUMBER >= 0x10100000L)
+#else // defined(SSL_TXT_TLSV1)
+ case context::tlsv1:
+ case context::tlsv1_client:
+ case context::tlsv1_server:
+ asio::detail::throw_error(
+ asio::error::invalid_argument, "context");
+ break;
+#endif // defined(SSL_TXT_TLSV1)
// TLS v1.1.
#if (OPENSSL_VERSION_NUMBER >= 0x10100000L) && !defined(LIBRESSL_VERSION_NUMBER)
@@ -240,7 +247,7 @@ context::context(context::method m)
SSL_CTX_set_max_proto_version(handle_, TLS1_2_VERSION);
}
break;
-#elif defined(SSL_TXT_TLSV1_1)
+#elif defined(SSL_TXT_TLSV1_2)
case context::tlsv12:
handle_ = ::SSL_CTX_new(::TLSv1_2_method());
break;
@@ -250,14 +257,52 @@ context::context(context::method m)
case context::tlsv12_server:
handle_ = ::SSL_CTX_new(::TLSv1_2_server_method());
break;
-#else // defined(SSL_TXT_TLSV1_1)
+#else // defined(SSL_TXT_TLSV1_2)
case context::tlsv12:
case context::tlsv12_client:
case context::tlsv12_server:
asio::detail::throw_error(
asio::error::invalid_argument, "context");
break;
-#endif // defined(SSL_TXT_TLSV1_1)
+#endif // defined(SSL_TXT_TLSV1_2)
+
+ // TLS v1.3.
+#if (OPENSSL_VERSION_NUMBER >= 0x10101000L) \
+ && !defined(LIBRESSL_VERSION_NUMBER)
+ case context::tlsv13:
+ handle_ = ::SSL_CTX_new(::TLS_method());
+ if (handle_)
+ {
+ SSL_CTX_set_min_proto_version(handle_, TLS1_3_VERSION);
+ SSL_CTX_set_max_proto_version(handle_, TLS1_3_VERSION);
+ }
+ break;
+ case context::tlsv13_client:
+ handle_ = ::SSL_CTX_new(::TLS_client_method());
+ if (handle_)
+ {
+ SSL_CTX_set_min_proto_version(handle_, TLS1_3_VERSION);
+ SSL_CTX_set_max_proto_version(handle_, TLS1_3_VERSION);
+ }
+ break;
+ case context::tlsv13_server:
+ handle_ = ::SSL_CTX_new(::TLS_server_method());
+ if (handle_)
+ {
+ SSL_CTX_set_min_proto_version(handle_, TLS1_3_VERSION);
+ SSL_CTX_set_max_proto_version(handle_, TLS1_3_VERSION);
+ }
+ break;
+#else // (OPENSSL_VERSION_NUMBER >= 0x10101000L)
+ // && !defined(LIBRESSL_VERSION_NUMBER)
+ case context::tlsv13:
+ case context::tlsv13_client:
+ case context::tlsv13_server:
+ asio::detail::throw_error(
+ asio::error::invalid_argument, "context");
+ break;
+#endif // (OPENSSL_VERSION_NUMBER >= 0x10101000L)
+ // && !defined(LIBRESSL_VERSION_NUMBER)
// Any supported SSL/TLS version.
case context::sslv23:
diff --git a/src/third_party/asio-master/asio/include/asio/ssl/stream.hpp b/src/third_party/asio-master/asio/include/asio/ssl/stream.hpp
index 2b221ed514f..a05ee88346f 100644
--- a/src/third_party/asio-master/asio/include/asio/ssl/stream.hpp
+++ b/src/third_party/asio-master/asio/include/asio/ssl/stream.hpp
@@ -634,7 +634,8 @@ public:
*
* @note The async_write_some operation may not transmit all of the data to
* the peer. Consider using the @ref async_write function if you need to
- * ensure that all data is written before the blocking operation completes.
+ * ensure that all data is written before the asynchronous operation
+ * completes.
*/
template <typename ConstBufferSequence, typename WriteHandler>
ASIO_INITFN_RESULT_TYPE(WriteHandler,
diff --git a/src/third_party/asio-master/asio/include/asio/thread_pool.hpp b/src/third_party/asio-master/asio/include/asio/thread_pool.hpp
index f22f18d1177..1a86bcd5ba1 100644
--- a/src/third_party/asio-master/asio/include/asio/thread_pool.hpp
+++ b/src/third_party/asio-master/asio/include/asio/thread_pool.hpp
@@ -32,7 +32,7 @@ namespace asio {
*
* @par Submitting tasks to the pool
*
- * To submit functions to the io_context, use the @ref asio::dispatch,
+ * To submit functions to the thread_pool, use the @ref asio::dispatch,
* @ref asio::post or @ref asio::defer free functions.
*
* For example:
diff --git a/src/third_party/asio-master/asio/include/asio/use_future.hpp b/src/third_party/asio-master/asio/include/asio/use_future.hpp
index 3f9c6968790..3ac95a562d1 100644
--- a/src/third_party/asio-master/asio/include/asio/use_future.hpp
+++ b/src/third_party/asio-master/asio/include/asio/use_future.hpp
@@ -16,8 +16,9 @@
#endif // defined(_MSC_VER) && (_MSC_VER >= 1200)
#include "asio/detail/config.hpp"
+#include "asio/detail/future.hpp"
-#if defined(ASIO_HAS_STD_FUTURE) \
+#if defined(ASIO_HAS_STD_FUTURE_CLASS) \
|| defined(GENERATING_DOCUMENTATION)
#include <memory>
@@ -153,7 +154,7 @@ __declspec(selectany) use_future_t<> use_future;
#include "asio/impl/use_future.hpp"
-#endif // defined(ASIO_HAS_STD_FUTURE)
+#endif // defined(ASIO_HAS_STD_FUTURE_CLASS)
// || defined(GENERATING_DOCUMENTATION)
#endif // ASIO_USE_FUTURE_HPP
diff --git a/src/third_party/asio-master/asio/include/asio/version.hpp b/src/third_party/asio-master/asio/include/asio/version.hpp
index ee0313f7366..82ceb168297 100644
--- a/src/third_party/asio-master/asio/include/asio/version.hpp
+++ b/src/third_party/asio-master/asio/include/asio/version.hpp
@@ -18,6 +18,6 @@
// ASIO_VERSION % 100 is the sub-minor version
// ASIO_VERSION / 100 % 1000 is the minor version
// ASIO_VERSION / 100000 is the major version
-#define ASIO_VERSION 101200 // 1.12.0
+#define ASIO_VERSION 101202 // 1.12.2
#endif // ASIO_VERSION_HPP
diff --git a/src/third_party/asio-master/asio/include/asio/write.hpp b/src/third_party/asio-master/asio/include/asio/write.hpp
index 517a8420537..7f9251a8721 100644
--- a/src/third_party/asio-master/asio/include/asio/write.hpp
+++ b/src/third_party/asio-master/asio/include/asio/write.hpp
@@ -32,7 +32,8 @@ namespace asio {
/**
* @defgroup write asio::write
*
- * @brief Write a certain amount of data to a stream before returning.
+ * @brief The @c write function is a composed operation that writes a certain
+ * amount of data to a stream before returning.
*/
/*@{*/
@@ -532,8 +533,8 @@ std::size_t write(SyncWriteStream& s, basic_streambuf<Allocator>& b,
/**
* @defgroup async_write asio::async_write
*
- * @brief Start an asynchronous operation to write a certain amount of data to a
- * stream.
+ * @brief The @c async_write function is a composed asynchronous operation that
+ * writes a certain amount of data to a stream before completion.
*/
/*@{*/
diff --git a/src/third_party/asio-master/asio/include/asio/write_at.hpp b/src/third_party/asio-master/asio/include/asio/write_at.hpp
index 5018d210605..b7e5da48289 100644
--- a/src/third_party/asio-master/asio/include/asio/write_at.hpp
+++ b/src/third_party/asio-master/asio/include/asio/write_at.hpp
@@ -32,7 +32,8 @@ namespace asio {
/**
* @defgroup write_at asio::write_at
*
- * @brief Write a certain amount of data at a specified offset before returning.
+ * @brief The @c write_at function is a composed operation that writes a
+ * certain amount of data at a specified offset before returning.
*/
/*@{*/
@@ -392,8 +393,9 @@ std::size_t write_at(SyncRandomAccessWriteDevice& d, uint64_t offset,
/**
* @defgroup async_write_at asio::async_write_at
*
- * @brief Start an asynchronous operation to write a certain amount of data at
- * the specified offset.
+ * @brief The @c async_write_at function is a composed asynchronous operation
+ * that writes a certain amount of data at the specified offset before
+ * completion.
*/
/*@{*/
diff --git a/src/third_party/scripts/asio_get_sources.sh b/src/third_party/scripts/asio_get_sources.sh
index 544cfbf845d..6c432f1ff66 100755
--- a/src/third_party/scripts/asio_get_sources.sh
+++ b/src/third_party/scripts/asio_get_sources.sh
@@ -13,7 +13,7 @@ if [ "$#" -ne 0 ]; then
fi
NAME=asio
-REVISION=b0926b61b057ce563241d609cae5768ed3a4e1b1
+REVISION=22afb86087a77037cd296d27134756c9b0d2cb75
SRC_ROOT=$(mktemp -d /tmp/asio.XXXXXX)
#trap "rm -rf $SRC_ROOT" EXIT
SRC=${SRC_ROOT}/${NAME}_${REVISION}