passenger 6.0.10 → 6.0.13

Sign up to get free protection for your applications and to get access to all the features.
Files changed (448) hide show
  1. checksums.yaml +4 -4
  2. data/CHANGELOG +84 -1
  3. data/CONTRIBUTORS +4 -0
  4. data/bin/passenger-install-nginx-module +2 -1
  5. data/build/common_library.rb +1 -1
  6. data/dev/copy_boost_headers +48 -16
  7. data/dev/index_cxx_dependencies.rb +1 -1
  8. data/dev/webpacketpp.patch +39 -0
  9. data/package.json +1 -1
  10. data/resources/mime.types +1 -0
  11. data/resources/templates/standalone/server.erb +1 -0
  12. data/src/agent/Core/ApplicationPool/Group/StateInspection.cpp +1 -0
  13. data/src/agent/Core/ApplicationPool/Options.h +5 -0
  14. data/src/agent/Core/Config.h +1 -1
  15. data/src/agent/Core/Controller/CheckoutSession.cpp +24 -13
  16. data/src/agent/Core/Controller/Config.h +5 -2
  17. data/src/agent/Core/Controller/InitRequest.cpp +2 -0
  18. data/src/agent/Core/Controller/InternalUtils.cpp +32 -6
  19. data/src/agent/Core/Controller.h +4 -1
  20. data/src/agent/Core/OptionParser.h +4 -0
  21. data/src/agent/Core/SpawningKit/Config/AutoGeneratedCode.h +7 -0
  22. data/src/agent/Core/SpawningKit/Config.h +13 -0
  23. data/src/agent/Core/SpawningKit/Handshake/Prepare.h +4 -0
  24. data/src/agent/Core/SpawningKit/Spawner.h +1 -0
  25. data/src/agent/SpawnEnvSetupper/SpawnEnvSetupperMain.cpp +4 -0
  26. data/src/agent/Watchdog/Config.h +1 -1
  27. data/src/apache2_module/ConfigGeneral/AutoGeneratedDefinitions.cpp +5 -0
  28. data/src/apache2_module/ConfigGeneral/AutoGeneratedManifestDefaultsInitialization.cpp +5 -0
  29. data/src/apache2_module/ConfigGeneral/AutoGeneratedSetterFuncs.cpp +18 -0
  30. data/src/apache2_module/DirConfig/AutoGeneratedCreateFunction.cpp +3 -0
  31. data/src/apache2_module/DirConfig/AutoGeneratedHeaderSerialization.cpp +3 -0
  32. data/src/apache2_module/DirConfig/AutoGeneratedManifestGeneration.cpp +11 -0
  33. data/src/apache2_module/DirConfig/AutoGeneratedMergeFunction.cpp +7 -0
  34. data/src/apache2_module/DirConfig/AutoGeneratedStruct.h +17 -0
  35. data/src/apache2_module/Hooks.cpp +1 -0
  36. data/src/cxx_supportlib/Constants.h +1 -1
  37. data/src/cxx_supportlib/IOTools/IOUtils.cpp +4 -4
  38. data/src/cxx_supportlib/vendor-modified/boost/align/align.hpp +19 -0
  39. data/src/cxx_supportlib/vendor-modified/boost/align/aligned_alloc.hpp +47 -0
  40. data/src/cxx_supportlib/vendor-modified/boost/align/alignment_of.hpp +54 -0
  41. data/src/cxx_supportlib/vendor-modified/boost/align/alignment_of_forward.hpp +20 -0
  42. data/src/cxx_supportlib/vendor-modified/boost/align/detail/align_cxx11.hpp +21 -0
  43. data/src/cxx_supportlib/vendor-modified/boost/align/detail/aligned_alloc.hpp +52 -0
  44. data/src/cxx_supportlib/vendor-modified/boost/align/detail/aligned_alloc_posix.hpp +41 -0
  45. data/src/cxx_supportlib/vendor-modified/boost/align/detail/alignment_of.hpp +31 -0
  46. data/src/cxx_supportlib/vendor-modified/boost/align/detail/alignment_of_cxx11.hpp +23 -0
  47. data/src/cxx_supportlib/vendor-modified/boost/align/detail/element_type.hpp +91 -0
  48. data/src/cxx_supportlib/vendor-modified/boost/align/detail/integral_constant.hpp +53 -0
  49. data/src/cxx_supportlib/vendor-modified/boost/align/detail/is_alignment.hpp +28 -0
  50. data/src/cxx_supportlib/vendor-modified/boost/align/detail/min_size.hpp +26 -0
  51. data/src/cxx_supportlib/vendor-modified/boost/asio/associated_allocator.hpp +53 -1
  52. data/src/cxx_supportlib/vendor-modified/boost/asio/associated_cancellation_slot.hpp +179 -0
  53. data/src/cxx_supportlib/vendor-modified/boost/asio/associated_executor.hpp +57 -1
  54. data/src/cxx_supportlib/vendor-modified/boost/asio/associator.hpp +37 -0
  55. data/src/cxx_supportlib/vendor-modified/boost/asio/async_result.hpp +789 -106
  56. data/src/cxx_supportlib/vendor-modified/boost/asio/awaitable.hpp +1 -1
  57. data/src/cxx_supportlib/vendor-modified/boost/asio/basic_datagram_socket.hpp +80 -0
  58. data/src/cxx_supportlib/vendor-modified/boost/asio/basic_deadline_timer.hpp +10 -0
  59. data/src/cxx_supportlib/vendor-modified/boost/asio/basic_raw_socket.hpp +80 -0
  60. data/src/cxx_supportlib/vendor-modified/boost/asio/basic_seq_packet_socket.hpp +30 -0
  61. data/src/cxx_supportlib/vendor-modified/boost/asio/basic_socket.hpp +20 -0
  62. data/src/cxx_supportlib/vendor-modified/boost/asio/basic_socket_acceptor.hpp +90 -0
  63. data/src/cxx_supportlib/vendor-modified/boost/asio/basic_stream_socket.hpp +60 -0
  64. data/src/cxx_supportlib/vendor-modified/boost/asio/basic_waitable_timer.hpp +10 -0
  65. data/src/cxx_supportlib/vendor-modified/boost/asio/bind_cancellation_slot.hpp +723 -0
  66. data/src/cxx_supportlib/vendor-modified/boost/asio/bind_executor.hpp +191 -12
  67. data/src/cxx_supportlib/vendor-modified/boost/asio/cancellation_signal.hpp +361 -0
  68. data/src/cxx_supportlib/vendor-modified/boost/asio/cancellation_state.hpp +237 -0
  69. data/src/cxx_supportlib/vendor-modified/boost/asio/cancellation_type.hpp +176 -0
  70. data/src/cxx_supportlib/vendor-modified/boost/asio/co_spawn.hpp +30 -2
  71. data/src/cxx_supportlib/vendor-modified/boost/asio/connect.hpp +60 -0
  72. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/base_from_cancellation_state.hpp +165 -0
  73. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/bind_handler.hpp +209 -76
  74. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/config.hpp +149 -60
  75. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/deadline_timer_service.hpp +40 -0
  76. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/dev_poll_reactor.hpp +8 -4
  77. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/epoll_reactor.hpp +14 -4
  78. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/functional.hpp +6 -0
  79. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/handler_alloc_helpers.hpp +14 -10
  80. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/handler_type_requirements.hpp +21 -18
  81. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/handler_work.hpp +30 -19
  82. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/impl/dev_poll_reactor.hpp +8 -0
  83. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/impl/dev_poll_reactor.ipp +14 -0
  84. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/impl/epoll_reactor.hpp +20 -0
  85. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/impl/epoll_reactor.ipp +30 -0
  86. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/impl/kqueue_reactor.hpp +20 -0
  87. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/impl/kqueue_reactor.ipp +29 -0
  88. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/impl/select_reactor.hpp +24 -0
  89. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/impl/select_reactor.ipp +19 -0
  90. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/impl/strand_executor_service.hpp +3 -1
  91. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/impl/timer_queue_ptime.ipp +6 -0
  92. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/kqueue_reactor.hpp +15 -5
  93. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/memory.hpp +60 -0
  94. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/pop_options.hpp +8 -0
  95. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/push_options.hpp +27 -0
  96. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/reactive_descriptor_service.hpp +93 -0
  97. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/reactive_socket_service.hpp +77 -0
  98. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/reactive_socket_service_base.hpp +111 -0
  99. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/reactor_op.hpp +4 -0
  100. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/reactor_op_queue.hpp +44 -0
  101. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/recycling_allocator.hpp +2 -1
  102. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/resolve_endpoint_op.hpp +2 -2
  103. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/select_reactor.hpp +14 -4
  104. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/thread_info_base.hpp +90 -24
  105. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/timer_queue.hpp +30 -1
  106. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/timer_queue_ptime.hpp +4 -0
  107. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/wait_op.hpp +5 -1
  108. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/work_dispatcher.hpp +5 -2
  109. data/src/cxx_supportlib/vendor-modified/boost/asio/execution/any_executor.hpp +12 -12
  110. data/src/cxx_supportlib/vendor-modified/boost/asio/execution/bulk_execute.hpp +10 -8
  111. data/src/cxx_supportlib/vendor-modified/boost/asio/execution/connect.hpp +8 -8
  112. data/src/cxx_supportlib/vendor-modified/boost/asio/execution/execute.hpp +7 -7
  113. data/src/cxx_supportlib/vendor-modified/boost/asio/execution/schedule.hpp +7 -7
  114. data/src/cxx_supportlib/vendor-modified/boost/asio/execution/set_done.hpp +7 -7
  115. data/src/cxx_supportlib/vendor-modified/boost/asio/execution/set_error.hpp +7 -7
  116. data/src/cxx_supportlib/vendor-modified/boost/asio/execution/set_value.hpp +13 -13
  117. data/src/cxx_supportlib/vendor-modified/boost/asio/execution/start.hpp +7 -7
  118. data/src/cxx_supportlib/vendor-modified/boost/asio/execution/submit.hpp +8 -8
  119. data/src/cxx_supportlib/vendor-modified/boost/asio/experimental/append.hpp +73 -0
  120. data/src/cxx_supportlib/vendor-modified/boost/asio/experimental/as_tuple.hpp +133 -0
  121. data/src/cxx_supportlib/vendor-modified/boost/asio/experimental/awaitable_operators.hpp +538 -0
  122. data/src/cxx_supportlib/vendor-modified/boost/asio/experimental/cancellation_condition.hpp +157 -0
  123. data/src/cxx_supportlib/vendor-modified/boost/asio/experimental/coro.hpp +1057 -0
  124. data/src/cxx_supportlib/vendor-modified/boost/asio/experimental/deferred.hpp +607 -0
  125. data/src/cxx_supportlib/vendor-modified/boost/asio/experimental/detail/completion_handler_erasure.hpp +160 -0
  126. data/src/cxx_supportlib/vendor-modified/boost/asio/experimental/detail/coro_promise_allocator.hpp +120 -0
  127. data/src/cxx_supportlib/vendor-modified/boost/asio/experimental/detail/coro_traits.hpp +185 -0
  128. data/src/cxx_supportlib/vendor-modified/boost/asio/experimental/detail/partial_promise.hpp +181 -0
  129. data/src/cxx_supportlib/vendor-modified/boost/asio/experimental/impl/append.hpp +219 -0
  130. data/src/cxx_supportlib/vendor-modified/boost/asio/experimental/impl/as_single.hpp +14 -28
  131. data/src/cxx_supportlib/vendor-modified/boost/asio/experimental/impl/as_tuple.hpp +248 -0
  132. data/src/cxx_supportlib/vendor-modified/boost/asio/experimental/impl/deferred.hpp +106 -0
  133. data/src/cxx_supportlib/vendor-modified/boost/asio/experimental/impl/parallel_group.hpp +434 -0
  134. data/src/cxx_supportlib/vendor-modified/boost/asio/experimental/impl/prepend.hpp +219 -0
  135. data/src/cxx_supportlib/vendor-modified/boost/asio/experimental/impl/promise.hpp +100 -0
  136. data/src/cxx_supportlib/vendor-modified/boost/asio/experimental/parallel_group.hpp +217 -0
  137. data/src/cxx_supportlib/vendor-modified/boost/asio/experimental/prepend.hpp +73 -0
  138. data/src/cxx_supportlib/vendor-modified/boost/asio/experimental/promise.hpp +608 -0
  139. data/src/cxx_supportlib/vendor-modified/boost/asio/experimental/use_coro.hpp +284 -0
  140. data/src/cxx_supportlib/vendor-modified/boost/asio/impl/awaitable.hpp +344 -20
  141. data/src/cxx_supportlib/vendor-modified/boost/asio/impl/buffered_read_stream.hpp +23 -54
  142. data/src/cxx_supportlib/vendor-modified/boost/asio/impl/buffered_write_stream.hpp +23 -54
  143. data/src/cxx_supportlib/vendor-modified/boost/asio/impl/co_spawn.hpp +66 -18
  144. data/src/cxx_supportlib/vendor-modified/boost/asio/impl/compose.hpp +55 -5
  145. data/src/cxx_supportlib/vendor-modified/boost/asio/impl/connect.hpp +68 -80
  146. data/src/cxx_supportlib/vendor-modified/boost/asio/impl/defer.hpp +8 -4
  147. data/src/cxx_supportlib/vendor-modified/boost/asio/impl/dispatch.hpp +8 -4
  148. data/src/cxx_supportlib/vendor-modified/boost/asio/impl/handler_alloc_hook.ipp +3 -2
  149. data/src/cxx_supportlib/vendor-modified/boost/asio/impl/post.hpp +8 -4
  150. data/src/cxx_supportlib/vendor-modified/boost/asio/impl/read.hpp +98 -113
  151. data/src/cxx_supportlib/vendor-modified/boost/asio/impl/read_at.hpp +71 -82
  152. data/src/cxx_supportlib/vendor-modified/boost/asio/impl/read_until.hpp +210 -266
  153. data/src/cxx_supportlib/vendor-modified/boost/asio/impl/redirect_error.hpp +248 -30
  154. data/src/cxx_supportlib/vendor-modified/boost/asio/impl/spawn.hpp +11 -21
  155. data/src/cxx_supportlib/vendor-modified/boost/asio/impl/use_awaitable.hpp +15 -3
  156. data/src/cxx_supportlib/vendor-modified/boost/asio/impl/write.hpp +71 -87
  157. data/src/cxx_supportlib/vendor-modified/boost/asio/impl/write_at.hpp +46 -68
  158. data/src/cxx_supportlib/vendor-modified/boost/asio/io_context.hpp +4 -4
  159. data/src/cxx_supportlib/vendor-modified/boost/asio/local/detail/impl/endpoint.ipp +2 -7
  160. data/src/cxx_supportlib/vendor-modified/boost/asio/posix/basic_descriptor.hpp +10 -0
  161. data/src/cxx_supportlib/vendor-modified/boost/asio/posix/basic_stream_descriptor.hpp +23 -3
  162. data/src/cxx_supportlib/vendor-modified/boost/asio/prefer.hpp +21 -21
  163. data/src/cxx_supportlib/vendor-modified/boost/asio/query.hpp +9 -9
  164. data/src/cxx_supportlib/vendor-modified/boost/asio/read.hpp +88 -0
  165. data/src/cxx_supportlib/vendor-modified/boost/asio/read_at.hpp +44 -0
  166. data/src/cxx_supportlib/vendor-modified/boost/asio/read_until.hpp +132 -0
  167. data/src/cxx_supportlib/vendor-modified/boost/asio/require.hpp +21 -21
  168. data/src/cxx_supportlib/vendor-modified/boost/asio/require_concept.hpp +9 -9
  169. data/src/cxx_supportlib/vendor-modified/boost/asio/ssl/detail/buffered_handshake_op.hpp +1 -1
  170. data/src/cxx_supportlib/vendor-modified/boost/asio/ssl/detail/engine.hpp +5 -0
  171. data/src/cxx_supportlib/vendor-modified/boost/asio/ssl/detail/handshake_op.hpp +1 -1
  172. data/src/cxx_supportlib/vendor-modified/boost/asio/ssl/detail/impl/engine.ipp +14 -0
  173. data/src/cxx_supportlib/vendor-modified/boost/asio/ssl/detail/io.hpp +36 -27
  174. data/src/cxx_supportlib/vendor-modified/boost/asio/ssl/detail/read_op.hpp +1 -1
  175. data/src/cxx_supportlib/vendor-modified/boost/asio/ssl/detail/shutdown_op.hpp +2 -2
  176. data/src/cxx_supportlib/vendor-modified/boost/asio/ssl/detail/stream_core.hpp +37 -0
  177. data/src/cxx_supportlib/vendor-modified/boost/asio/ssl/detail/write_op.hpp +1 -1
  178. data/src/cxx_supportlib/vendor-modified/boost/asio/ssl/impl/context.ipp +14 -7
  179. data/src/cxx_supportlib/vendor-modified/boost/asio/ssl/stream.hpp +73 -1
  180. data/src/cxx_supportlib/vendor-modified/boost/asio/system_executor.hpp +4 -4
  181. data/src/cxx_supportlib/vendor-modified/boost/asio/this_coro.hpp +235 -0
  182. data/src/cxx_supportlib/vendor-modified/boost/asio/thread_pool.hpp +4 -4
  183. data/src/cxx_supportlib/vendor-modified/boost/asio/use_awaitable.hpp +7 -10
  184. data/src/cxx_supportlib/vendor-modified/boost/asio/version.hpp +1 -1
  185. data/src/cxx_supportlib/vendor-modified/boost/asio/windows/basic_random_access_handle.hpp +20 -0
  186. data/src/cxx_supportlib/vendor-modified/boost/asio/windows/basic_stream_handle.hpp +20 -0
  187. data/src/cxx_supportlib/vendor-modified/boost/asio/write.hpp +88 -0
  188. data/src/cxx_supportlib/vendor-modified/boost/asio/write_at.hpp +44 -0
  189. data/src/cxx_supportlib/vendor-modified/boost/asio.hpp +6 -0
  190. data/src/cxx_supportlib/vendor-modified/boost/atomic/atomic_ref.hpp +14 -1
  191. data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/config.hpp +17 -13
  192. data/src/cxx_supportlib/vendor-modified/boost/atomic/ipc_atomic_ref.hpp +14 -1
  193. data/src/cxx_supportlib/vendor-modified/boost/config/assert_cxx03.hpp +2 -5
  194. data/src/cxx_supportlib/vendor-modified/boost/config/assert_cxx11.hpp +2 -5
  195. data/src/cxx_supportlib/vendor-modified/boost/config/assert_cxx14.hpp +2 -2
  196. data/src/cxx_supportlib/vendor-modified/boost/config/assert_cxx17.hpp +2 -2
  197. data/src/cxx_supportlib/vendor-modified/boost/config/assert_cxx20.hpp +56 -0
  198. data/src/cxx_supportlib/vendor-modified/boost/config/auto_link.hpp +1 -5
  199. data/src/cxx_supportlib/vendor-modified/boost/config/compiler/common_edg.hpp +31 -11
  200. data/src/cxx_supportlib/vendor-modified/boost/config/detail/cxx_composite.hpp +20 -4
  201. data/src/cxx_supportlib/vendor-modified/boost/config/detail/select_platform_config.hpp +5 -0
  202. data/src/cxx_supportlib/vendor-modified/boost/config/detail/suffix.hpp +81 -0
  203. data/src/cxx_supportlib/vendor-modified/boost/config/platform/bsd.hpp +5 -8
  204. data/src/cxx_supportlib/vendor-modified/boost/config/platform/wasm.hpp +17 -0
  205. data/src/cxx_supportlib/vendor-modified/boost/config/stdlib/dinkumware.hpp +26 -0
  206. data/src/cxx_supportlib/vendor-modified/boost/config/stdlib/libcpp.hpp +49 -0
  207. data/src/cxx_supportlib/vendor-modified/boost/config/stdlib/libstdcpp3.hpp +46 -4
  208. data/src/cxx_supportlib/vendor-modified/boost/container/adaptive_pool.hpp +2 -2
  209. data/src/cxx_supportlib/vendor-modified/boost/container/allocator.hpp +1 -1
  210. data/src/cxx_supportlib/vendor-modified/boost/container/detail/adaptive_node_pool.hpp +2 -2
  211. data/src/cxx_supportlib/vendor-modified/boost/container/detail/node_pool.hpp +2 -2
  212. data/src/cxx_supportlib/vendor-modified/boost/container/detail/std_fwd.hpp +3 -0
  213. data/src/cxx_supportlib/vendor-modified/boost/container/devector.hpp +2 -2
  214. data/src/cxx_supportlib/vendor-modified/boost/container/new_allocator.hpp +1 -1
  215. data/src/cxx_supportlib/vendor-modified/boost/container/node_allocator.hpp +1 -1
  216. data/src/cxx_supportlib/vendor-modified/boost/container/pmr/polymorphic_allocator.hpp +6 -6
  217. data/src/cxx_supportlib/vendor-modified/boost/container/static_vector.hpp +4 -4
  218. data/src/cxx_supportlib/vendor-modified/boost/container/throw_exception.hpp +45 -38
  219. data/src/cxx_supportlib/vendor-modified/boost/container/vector.hpp +24 -0
  220. data/src/cxx_supportlib/vendor-modified/boost/core/ignore_unused.hpp +32 -2
  221. data/src/cxx_supportlib/vendor-modified/boost/core/uncaught_exceptions.hpp +7 -7
  222. data/src/cxx_supportlib/vendor-modified/boost/date_time/compiler_config.hpp +0 -24
  223. data/src/cxx_supportlib/vendor-modified/boost/date_time/posix_time/time_parsers.hpp +4 -0
  224. data/src/cxx_supportlib/vendor-modified/boost/intrusive/any_hook.hpp +4 -4
  225. data/src/cxx_supportlib/vendor-modified/boost/intrusive/avl_set.hpp +83 -83
  226. data/src/cxx_supportlib/vendor-modified/boost/intrusive/avltree.hpp +43 -43
  227. data/src/cxx_supportlib/vendor-modified/boost/intrusive/avltree_algorithms.hpp +31 -31
  228. data/src/cxx_supportlib/vendor-modified/boost/intrusive/bs_set.hpp +85 -85
  229. data/src/cxx_supportlib/vendor-modified/boost/intrusive/bstree.hpp +68 -68
  230. data/src/cxx_supportlib/vendor-modified/boost/intrusive/bstree_algorithms.hpp +72 -62
  231. data/src/cxx_supportlib/vendor-modified/boost/intrusive/circular_list_algorithms.hpp +19 -20
  232. data/src/cxx_supportlib/vendor-modified/boost/intrusive/circular_slist_algorithms.hpp +19 -19
  233. data/src/cxx_supportlib/vendor-modified/boost/intrusive/derivation_value_traits.hpp +4 -4
  234. data/src/cxx_supportlib/vendor-modified/boost/intrusive/detail/any_node_and_algorithms.hpp +2 -2
  235. data/src/cxx_supportlib/vendor-modified/boost/intrusive/detail/bstree_algorithms_base.hpp +3 -3
  236. data/src/cxx_supportlib/vendor-modified/boost/intrusive/detail/common_slist_algorithms.hpp +5 -5
  237. data/src/cxx_supportlib/vendor-modified/boost/intrusive/detail/config_begin.hpp +1 -0
  238. data/src/cxx_supportlib/vendor-modified/boost/intrusive/detail/generic_hook.hpp +8 -8
  239. data/src/cxx_supportlib/vendor-modified/boost/intrusive/detail/hash_combine.hpp +2 -4
  240. data/src/cxx_supportlib/vendor-modified/boost/intrusive/detail/hashtable_node.hpp +1 -1
  241. data/src/cxx_supportlib/vendor-modified/boost/intrusive/detail/math.hpp +2 -50
  242. data/src/cxx_supportlib/vendor-modified/boost/intrusive/detail/node_cloner_disposer.hpp +1 -1
  243. data/src/cxx_supportlib/vendor-modified/boost/intrusive/hashtable.hpp +71 -70
  244. data/src/cxx_supportlib/vendor-modified/boost/intrusive/linear_slist_algorithms.hpp +15 -14
  245. data/src/cxx_supportlib/vendor-modified/boost/intrusive/list.hpp +84 -82
  246. data/src/cxx_supportlib/vendor-modified/boost/intrusive/list_hook.hpp +10 -10
  247. data/src/cxx_supportlib/vendor-modified/boost/intrusive/member_value_traits.hpp +4 -4
  248. data/src/cxx_supportlib/vendor-modified/boost/intrusive/parent_from_member.hpp +2 -2
  249. data/src/cxx_supportlib/vendor-modified/boost/intrusive/pointer_plus_bits.hpp +4 -4
  250. data/src/cxx_supportlib/vendor-modified/boost/intrusive/pointer_traits.hpp +18 -18
  251. data/src/cxx_supportlib/vendor-modified/boost/intrusive/rbtree.hpp +43 -43
  252. data/src/cxx_supportlib/vendor-modified/boost/intrusive/rbtree_algorithms.hpp +26 -26
  253. data/src/cxx_supportlib/vendor-modified/boost/intrusive/set.hpp +85 -85
  254. data/src/cxx_supportlib/vendor-modified/boost/intrusive/set_hook.hpp +12 -12
  255. data/src/cxx_supportlib/vendor-modified/boost/intrusive/sg_set.hpp +93 -93
  256. data/src/cxx_supportlib/vendor-modified/boost/intrusive/sgtree.hpp +51 -51
  257. data/src/cxx_supportlib/vendor-modified/boost/intrusive/sgtree_algorithms.hpp +24 -24
  258. data/src/cxx_supportlib/vendor-modified/boost/intrusive/slist.hpp +104 -104
  259. data/src/cxx_supportlib/vendor-modified/boost/intrusive/slist_hook.hpp +8 -6
  260. data/src/cxx_supportlib/vendor-modified/boost/intrusive/splay_set.hpp +91 -91
  261. data/src/cxx_supportlib/vendor-modified/boost/intrusive/splaytree.hpp +46 -46
  262. data/src/cxx_supportlib/vendor-modified/boost/intrusive/splaytree_algorithms.hpp +31 -31
  263. data/src/cxx_supportlib/vendor-modified/boost/intrusive/treap.hpp +51 -51
  264. data/src/cxx_supportlib/vendor-modified/boost/intrusive/treap_algorithms.hpp +18 -18
  265. data/src/cxx_supportlib/vendor-modified/boost/intrusive/treap_set.hpp +97 -97
  266. data/src/cxx_supportlib/vendor-modified/boost/intrusive/trivial_value_traits.hpp +6 -4
  267. data/src/cxx_supportlib/vendor-modified/boost/intrusive/unordered_set.hpp +63 -63
  268. data/src/cxx_supportlib/vendor-modified/boost/intrusive/unordered_set_hook.hpp +15 -15
  269. data/src/cxx_supportlib/vendor-modified/boost/lexical_cast/detail/converter_numeric.hpp +4 -1
  270. data/src/cxx_supportlib/vendor-modified/boost/move/detail/config_begin.hpp +1 -0
  271. data/src/cxx_supportlib/vendor-modified/boost/move/detail/iterator_traits.hpp +1 -0
  272. data/src/cxx_supportlib/vendor-modified/boost/move/detail/nsec_clock.hpp +1 -1
  273. data/src/cxx_supportlib/vendor-modified/boost/operators.hpp +2 -0
  274. data/src/cxx_supportlib/vendor-modified/boost/regex/concepts.hpp +1 -1
  275. data/src/cxx_supportlib/vendor-modified/boost/regex/v4/basic_regex_parser.hpp +3 -0
  276. data/src/cxx_supportlib/vendor-modified/boost/regex/v4/unicode_iterator.hpp +112 -31
  277. data/src/cxx_supportlib/vendor-modified/boost/regex/v5/basic_regex_parser.hpp +3 -0
  278. data/src/cxx_supportlib/vendor-modified/boost/regex/v5/mem_block_cache.hpp +4 -8
  279. data/src/cxx_supportlib/vendor-modified/boost/regex/v5/unicode_iterator.hpp +0 -2
  280. data/src/cxx_supportlib/vendor-modified/boost/regex/v5/w32_regex_traits.hpp +6 -2
  281. data/src/cxx_supportlib/vendor-modified/boost/smart_ptr/detail/shared_count.hpp +1 -1
  282. data/src/cxx_supportlib/vendor-modified/boost/smart_ptr/detail/sp_counted_impl.hpp +22 -2
  283. data/src/cxx_supportlib/vendor-modified/boost/smart_ptr/detail/sp_obsolete.hpp +32 -0
  284. data/src/cxx_supportlib/vendor-modified/boost/smart_ptr/shared_ptr.hpp +59 -1
  285. data/src/cxx_supportlib/vendor-modified/boost/system/detail/config.hpp +9 -11
  286. data/src/cxx_supportlib/vendor-modified/boost/system/detail/error_category.hpp +27 -21
  287. data/src/cxx_supportlib/vendor-modified/boost/system/detail/error_category_impl.hpp +34 -3
  288. data/src/cxx_supportlib/vendor-modified/boost/system/detail/error_code.hpp +378 -36
  289. data/src/cxx_supportlib/vendor-modified/boost/system/detail/error_condition.hpp +97 -21
  290. data/src/cxx_supportlib/vendor-modified/boost/system/detail/interop_category.hpp +107 -0
  291. data/src/cxx_supportlib/vendor-modified/boost/system/detail/is_same.hpp +33 -0
  292. data/src/cxx_supportlib/vendor-modified/boost/system/detail/snprintf.hpp +70 -0
  293. data/src/cxx_supportlib/vendor-modified/boost/system/detail/{to_std_category.hpp → std_category.hpp} +5 -55
  294. data/src/cxx_supportlib/vendor-modified/boost/system/detail/system_category_impl.hpp +2 -12
  295. data/src/cxx_supportlib/vendor-modified/boost/system/error_code.hpp +0 -33
  296. data/src/cxx_supportlib/vendor-modified/boost/utility/detail/result_of_variadic.hpp +190 -0
  297. data/src/cxx_supportlib/vendor-modified/boost/utility/result_of.hpp +20 -9
  298. data/src/cxx_supportlib/vendor-modified/boost/utility/string_view.hpp +3 -1
  299. data/src/cxx_supportlib/vendor-modified/boost/version.hpp +2 -2
  300. data/src/cxx_supportlib/{vendor-copy → vendor-modified}/websocketpp/COPYING +0 -0
  301. data/src/cxx_supportlib/{vendor-copy → vendor-modified}/websocketpp/changelog.md +0 -0
  302. data/src/cxx_supportlib/{vendor-copy → vendor-modified}/websocketpp/readme.md +0 -0
  303. data/src/cxx_supportlib/{vendor-copy → vendor-modified}/websocketpp/websocketpp/base64/base64.hpp +0 -0
  304. data/src/cxx_supportlib/{vendor-copy → vendor-modified}/websocketpp/websocketpp/client.hpp +0 -0
  305. data/src/cxx_supportlib/{vendor-copy → vendor-modified}/websocketpp/websocketpp/close.hpp +0 -0
  306. data/src/cxx_supportlib/{vendor-copy → vendor-modified}/websocketpp/websocketpp/common/asio.hpp +0 -0
  307. data/src/cxx_supportlib/{vendor-copy → vendor-modified}/websocketpp/websocketpp/common/asio_ssl.hpp +0 -0
  308. data/src/cxx_supportlib/{vendor-copy → vendor-modified}/websocketpp/websocketpp/common/chrono.hpp +0 -0
  309. data/src/cxx_supportlib/{vendor-copy → vendor-modified}/websocketpp/websocketpp/common/connection_hdl.hpp +0 -0
  310. data/src/cxx_supportlib/{vendor-copy → vendor-modified}/websocketpp/websocketpp/common/cpp11.hpp +0 -0
  311. data/src/cxx_supportlib/{vendor-copy → vendor-modified}/websocketpp/websocketpp/common/functional.hpp +2 -7
  312. data/src/cxx_supportlib/{vendor-copy → vendor-modified}/websocketpp/websocketpp/common/md5.hpp +0 -0
  313. data/src/cxx_supportlib/{vendor-copy → vendor-modified}/websocketpp/websocketpp/common/memory.hpp +0 -0
  314. data/src/cxx_supportlib/{vendor-copy → vendor-modified}/websocketpp/websocketpp/common/network.hpp +0 -0
  315. data/src/cxx_supportlib/{vendor-copy → vendor-modified}/websocketpp/websocketpp/common/platforms.hpp +0 -0
  316. data/src/cxx_supportlib/{vendor-copy → vendor-modified}/websocketpp/websocketpp/common/random.hpp +0 -0
  317. data/src/cxx_supportlib/{vendor-copy → vendor-modified}/websocketpp/websocketpp/common/regex.hpp +0 -0
  318. data/src/cxx_supportlib/{vendor-copy → vendor-modified}/websocketpp/websocketpp/common/stdint.hpp +0 -0
  319. data/src/cxx_supportlib/{vendor-copy → vendor-modified}/websocketpp/websocketpp/common/system_error.hpp +0 -0
  320. data/src/cxx_supportlib/{vendor-copy → vendor-modified}/websocketpp/websocketpp/common/thread.hpp +0 -0
  321. data/src/cxx_supportlib/{vendor-copy → vendor-modified}/websocketpp/websocketpp/common/time.hpp +0 -0
  322. data/src/cxx_supportlib/{vendor-copy → vendor-modified}/websocketpp/websocketpp/common/type_traits.hpp +0 -0
  323. data/src/cxx_supportlib/{vendor-copy → vendor-modified}/websocketpp/websocketpp/concurrency/basic.hpp +0 -0
  324. data/src/cxx_supportlib/{vendor-copy → vendor-modified}/websocketpp/websocketpp/concurrency/none.hpp +0 -0
  325. data/src/cxx_supportlib/{vendor-copy → vendor-modified}/websocketpp/websocketpp/config/asio.hpp +0 -0
  326. data/src/cxx_supportlib/{vendor-copy → vendor-modified}/websocketpp/websocketpp/config/asio_client.hpp +0 -0
  327. data/src/cxx_supportlib/{vendor-copy → vendor-modified}/websocketpp/websocketpp/config/asio_no_tls.hpp +0 -0
  328. data/src/cxx_supportlib/{vendor-copy → vendor-modified}/websocketpp/websocketpp/config/asio_no_tls_client.hpp +0 -0
  329. data/src/cxx_supportlib/{vendor-copy → vendor-modified}/websocketpp/websocketpp/config/boost_config.hpp +0 -0
  330. data/src/cxx_supportlib/{vendor-copy → vendor-modified}/websocketpp/websocketpp/config/core.hpp +0 -0
  331. data/src/cxx_supportlib/{vendor-copy → vendor-modified}/websocketpp/websocketpp/config/core_client.hpp +0 -0
  332. data/src/cxx_supportlib/{vendor-copy → vendor-modified}/websocketpp/websocketpp/config/debug.hpp +0 -0
  333. data/src/cxx_supportlib/{vendor-copy → vendor-modified}/websocketpp/websocketpp/config/debug_asio.hpp +0 -0
  334. data/src/cxx_supportlib/{vendor-copy → vendor-modified}/websocketpp/websocketpp/config/debug_asio_no_tls.hpp +0 -0
  335. data/src/cxx_supportlib/{vendor-copy → vendor-modified}/websocketpp/websocketpp/config/minimal_client.hpp +0 -0
  336. data/src/cxx_supportlib/{vendor-copy → vendor-modified}/websocketpp/websocketpp/config/minimal_server.hpp +0 -0
  337. data/src/cxx_supportlib/{vendor-copy → vendor-modified}/websocketpp/websocketpp/connection.hpp +0 -0
  338. data/src/cxx_supportlib/{vendor-copy → vendor-modified}/websocketpp/websocketpp/connection_base.hpp +0 -0
  339. data/src/cxx_supportlib/{vendor-copy → vendor-modified}/websocketpp/websocketpp/endpoint.hpp +0 -0
  340. data/src/cxx_supportlib/{vendor-copy → vendor-modified}/websocketpp/websocketpp/endpoint_base.hpp +0 -0
  341. data/src/cxx_supportlib/{vendor-copy → vendor-modified}/websocketpp/websocketpp/error.hpp +0 -0
  342. data/src/cxx_supportlib/{vendor-copy → vendor-modified}/websocketpp/websocketpp/extensions/extension.hpp +0 -0
  343. data/src/cxx_supportlib/{vendor-copy → vendor-modified}/websocketpp/websocketpp/extensions/permessage_deflate/disabled.hpp +0 -0
  344. data/src/cxx_supportlib/{vendor-copy → vendor-modified}/websocketpp/websocketpp/extensions/permessage_deflate/enabled.hpp +0 -0
  345. data/src/cxx_supportlib/{vendor-copy → vendor-modified}/websocketpp/websocketpp/frame.hpp +0 -0
  346. data/src/cxx_supportlib/{vendor-copy → vendor-modified}/websocketpp/websocketpp/http/constants.hpp +0 -0
  347. data/src/cxx_supportlib/{vendor-copy → vendor-modified}/websocketpp/websocketpp/http/impl/parser.hpp +0 -0
  348. data/src/cxx_supportlib/{vendor-copy → vendor-modified}/websocketpp/websocketpp/http/impl/request.hpp +0 -0
  349. data/src/cxx_supportlib/{vendor-copy → vendor-modified}/websocketpp/websocketpp/http/impl/response.hpp +0 -0
  350. data/src/cxx_supportlib/{vendor-copy → vendor-modified}/websocketpp/websocketpp/http/parser.hpp +0 -0
  351. data/src/cxx_supportlib/{vendor-copy → vendor-modified}/websocketpp/websocketpp/http/request.hpp +0 -0
  352. data/src/cxx_supportlib/{vendor-copy → vendor-modified}/websocketpp/websocketpp/http/response.hpp +0 -0
  353. data/src/cxx_supportlib/{vendor-copy → vendor-modified}/websocketpp/websocketpp/impl/connection_impl.hpp +0 -0
  354. data/src/cxx_supportlib/{vendor-copy → vendor-modified}/websocketpp/websocketpp/impl/endpoint_impl.hpp +0 -0
  355. data/src/cxx_supportlib/{vendor-copy → vendor-modified}/websocketpp/websocketpp/impl/utilities_impl.hpp +0 -0
  356. data/src/cxx_supportlib/{vendor-copy → vendor-modified}/websocketpp/websocketpp/logger/basic.hpp +0 -0
  357. data/src/cxx_supportlib/{vendor-copy → vendor-modified}/websocketpp/websocketpp/logger/levels.hpp +0 -0
  358. data/src/cxx_supportlib/{vendor-copy → vendor-modified}/websocketpp/websocketpp/logger/stub.hpp +0 -0
  359. data/src/cxx_supportlib/{vendor-copy → vendor-modified}/websocketpp/websocketpp/logger/syslog.hpp +0 -0
  360. data/src/cxx_supportlib/{vendor-copy → vendor-modified}/websocketpp/websocketpp/message_buffer/alloc.hpp +0 -0
  361. data/src/cxx_supportlib/{vendor-copy → vendor-modified}/websocketpp/websocketpp/message_buffer/message.hpp +0 -0
  362. data/src/cxx_supportlib/{vendor-copy → vendor-modified}/websocketpp/websocketpp/message_buffer/pool.hpp +0 -0
  363. data/src/cxx_supportlib/{vendor-copy → vendor-modified}/websocketpp/websocketpp/processors/base.hpp +0 -0
  364. data/src/cxx_supportlib/{vendor-copy → vendor-modified}/websocketpp/websocketpp/processors/hybi00.hpp +0 -0
  365. data/src/cxx_supportlib/{vendor-copy → vendor-modified}/websocketpp/websocketpp/processors/hybi07.hpp +0 -0
  366. data/src/cxx_supportlib/{vendor-copy → vendor-modified}/websocketpp/websocketpp/processors/hybi08.hpp +0 -0
  367. data/src/cxx_supportlib/{vendor-copy → vendor-modified}/websocketpp/websocketpp/processors/hybi13.hpp +0 -0
  368. data/src/cxx_supportlib/{vendor-copy → vendor-modified}/websocketpp/websocketpp/processors/processor.hpp +0 -0
  369. data/src/cxx_supportlib/{vendor-copy → vendor-modified}/websocketpp/websocketpp/random/none.hpp +0 -0
  370. data/src/cxx_supportlib/{vendor-copy → vendor-modified}/websocketpp/websocketpp/random/random_device.hpp +0 -0
  371. data/src/cxx_supportlib/{vendor-copy → vendor-modified}/websocketpp/websocketpp/roles/client_endpoint.hpp +0 -0
  372. data/src/cxx_supportlib/{vendor-copy → vendor-modified}/websocketpp/websocketpp/roles/server_endpoint.hpp +0 -0
  373. data/src/cxx_supportlib/{vendor-copy → vendor-modified}/websocketpp/websocketpp/server.hpp +0 -0
  374. data/src/cxx_supportlib/{vendor-copy → vendor-modified}/websocketpp/websocketpp/sha1/sha1.hpp +0 -0
  375. data/src/cxx_supportlib/{vendor-copy → vendor-modified}/websocketpp/websocketpp/transport/asio/base.hpp +0 -0
  376. data/src/cxx_supportlib/{vendor-copy → vendor-modified}/websocketpp/websocketpp/transport/asio/connection.hpp +0 -0
  377. data/src/cxx_supportlib/{vendor-copy → vendor-modified}/websocketpp/websocketpp/transport/asio/endpoint.hpp +0 -0
  378. data/src/cxx_supportlib/{vendor-copy → vendor-modified}/websocketpp/websocketpp/transport/asio/security/base.hpp +0 -0
  379. data/src/cxx_supportlib/{vendor-copy → vendor-modified}/websocketpp/websocketpp/transport/asio/security/none.hpp +0 -0
  380. data/src/cxx_supportlib/{vendor-copy → vendor-modified}/websocketpp/websocketpp/transport/asio/security/tls.hpp +0 -0
  381. data/src/cxx_supportlib/{vendor-copy → vendor-modified}/websocketpp/websocketpp/transport/base/connection.hpp +0 -0
  382. data/src/cxx_supportlib/{vendor-copy → vendor-modified}/websocketpp/websocketpp/transport/base/endpoint.hpp +0 -0
  383. data/src/cxx_supportlib/{vendor-copy → vendor-modified}/websocketpp/websocketpp/transport/debug/base.hpp +0 -0
  384. data/src/cxx_supportlib/{vendor-copy → vendor-modified}/websocketpp/websocketpp/transport/debug/connection.hpp +0 -0
  385. data/src/cxx_supportlib/{vendor-copy → vendor-modified}/websocketpp/websocketpp/transport/debug/endpoint.hpp +0 -0
  386. data/src/cxx_supportlib/{vendor-copy → vendor-modified}/websocketpp/websocketpp/transport/iostream/base.hpp +0 -0
  387. data/src/cxx_supportlib/{vendor-copy → vendor-modified}/websocketpp/websocketpp/transport/iostream/connection.hpp +0 -0
  388. data/src/cxx_supportlib/{vendor-copy → vendor-modified}/websocketpp/websocketpp/transport/iostream/endpoint.hpp +0 -0
  389. data/src/cxx_supportlib/{vendor-copy → vendor-modified}/websocketpp/websocketpp/transport/stub/base.hpp +0 -0
  390. data/src/cxx_supportlib/{vendor-copy → vendor-modified}/websocketpp/websocketpp/transport/stub/connection.hpp +0 -0
  391. data/src/cxx_supportlib/{vendor-copy → vendor-modified}/websocketpp/websocketpp/transport/stub/endpoint.hpp +0 -0
  392. data/src/cxx_supportlib/{vendor-copy → vendor-modified}/websocketpp/websocketpp/uri.hpp +0 -0
  393. data/src/cxx_supportlib/{vendor-copy → vendor-modified}/websocketpp/websocketpp/utf8_validator.hpp +0 -0
  394. data/src/cxx_supportlib/{vendor-copy → vendor-modified}/websocketpp/websocketpp/utilities.hpp +0 -0
  395. data/src/cxx_supportlib/{vendor-copy → vendor-modified}/websocketpp/websocketpp/version.hpp +0 -0
  396. data/src/nginx_module/ConfigGeneral/AutoGeneratedDefinitions.c +16 -0
  397. data/src/nginx_module/ConfigGeneral/AutoGeneratedManifestDefaultsInitialization.c +12 -0
  398. data/src/nginx_module/ConfigGeneral/AutoGeneratedSetterFuncs.c +24 -0
  399. data/src/nginx_module/LocationConfig/AutoGeneratedCreateFunction.c +10 -0
  400. data/src/nginx_module/LocationConfig/AutoGeneratedHeaderSerialization.c +39 -0
  401. data/src/nginx_module/LocationConfig/AutoGeneratedManifestGeneration.c +26 -0
  402. data/src/nginx_module/LocationConfig/AutoGeneratedMergeFunction.c +6 -0
  403. data/src/nginx_module/LocationConfig/AutoGeneratedStruct.h +8 -0
  404. data/src/nginx_module/ngx_http_passenger_module.c +1 -0
  405. data/src/nodejs_supportlib/vendor-copy/winston/lib/winston/common.js +50 -29
  406. data/src/nodejs_supportlib/vendor-copy/winston/lib/winston/config/cli-config.js +20 -20
  407. data/src/nodejs_supportlib/vendor-copy/winston/lib/winston/config/npm-config.js +11 -11
  408. data/src/nodejs_supportlib/vendor-copy/winston/lib/winston/config/syslog-config.js +3 -3
  409. data/src/nodejs_supportlib/vendor-copy/winston/lib/winston/config.js +8 -2
  410. data/src/nodejs_supportlib/vendor-copy/winston/lib/winston/container.js +2 -1
  411. data/src/nodejs_supportlib/vendor-copy/winston/lib/winston/logger.js +174 -146
  412. data/src/nodejs_supportlib/vendor-copy/winston/lib/winston/transports/console.js +4 -2
  413. data/src/nodejs_supportlib/vendor-copy/winston/lib/winston/transports/file.js +15 -5
  414. data/src/nodejs_supportlib/vendor-copy/winston/lib/winston/transports/http.js +14 -4
  415. data/src/nodejs_supportlib/vendor-copy/winston/lib/winston/transports.js +26 -24
  416. data/src/nodejs_supportlib/vendor-copy/winston/lib/winston.js +5 -5
  417. data/src/nodejs_supportlib/vendor-copy/winston/node_modules/async/package.json +4 -13
  418. data/src/nodejs_supportlib/vendor-copy/winston/node_modules/colors/package.json +19 -33
  419. data/src/nodejs_supportlib/vendor-copy/winston/node_modules/cycle/package.json +11 -29
  420. data/src/nodejs_supportlib/vendor-copy/winston/node_modules/eyes/package.json +12 -40
  421. data/src/nodejs_supportlib/vendor-copy/winston/node_modules/isstream/package.json +3 -12
  422. data/src/nodejs_supportlib/vendor-copy/winston/node_modules/stack-trace/lib/stack-trace.js +49 -24
  423. data/src/nodejs_supportlib/vendor-copy/winston/node_modules/stack-trace/package.json +4 -16
  424. data/src/nodejs_supportlib/vendor-copy/winston/package.json +11 -55
  425. data/src/ruby_supportlib/phusion_passenger/admin_tools/instance_registry.rb +3 -2
  426. data/src/ruby_supportlib/phusion_passenger/apache2/config_options.rb +6 -0
  427. data/src/ruby_supportlib/phusion_passenger/config/nginx_engine_compiler.rb +3 -2
  428. data/src/ruby_supportlib/phusion_passenger/loader_shared_helpers.rb +8 -1
  429. data/src/ruby_supportlib/phusion_passenger/nginx/config_options.rb +12 -0
  430. data/src/ruby_supportlib/phusion_passenger/packaging.rb +1 -0
  431. data/src/ruby_supportlib/phusion_passenger/platform_info/binary_compatibility.rb +7 -5
  432. data/src/ruby_supportlib/phusion_passenger/platform_info/depcheck_specs/libs.rb +6 -2
  433. data/src/ruby_supportlib/phusion_passenger/platform_info/linux.rb +2 -1
  434. data/src/ruby_supportlib/phusion_passenger/platform_info/openssl.rb +1 -1
  435. data/src/ruby_supportlib/phusion_passenger/platform_info/operating_system.rb +17 -3
  436. data/src/ruby_supportlib/phusion_passenger/platform_info/pcre.rb +65 -0
  437. data/src/ruby_supportlib/phusion_passenger/request_handler/thread_handler.rb +18 -18
  438. data/src/ruby_supportlib/phusion_passenger/request_handler.rb +4 -1
  439. data/src/ruby_supportlib/phusion_passenger/standalone/config_options_list.rb +7 -1
  440. data/src/ruby_supportlib/phusion_passenger/standalone/start_command/builtin_engine.rb +1 -0
  441. data/src/ruby_supportlib/phusion_passenger.rb +5 -5
  442. metadata +148 -105
  443. data/src/cxx_supportlib/vendor-modified/boost/system/detail/is_generic_value.hpp +0 -125
  444. data/src/nodejs_supportlib/vendor-copy/winston/lib/winston/transports/daily-rotate-file.js +0 -601
  445. data/src/nodejs_supportlib/vendor-copy/winston/lib/winston/transports/webhook.js +0 -146
  446. data/src/nodejs_supportlib/vendor-copy/winston/node_modules/pkginfo/LICENSE +0 -19
  447. data/src/nodejs_supportlib/vendor-copy/winston/node_modules/pkginfo/lib/pkginfo.js +0 -136
  448. data/src/nodejs_supportlib/vendor-copy/winston/node_modules/pkginfo/package.json +0 -56
@@ -15,8 +15,7 @@
15
15
  # pragma once
16
16
  #endif // defined(_MSC_VER) && (_MSC_VER >= 1200)
17
17
 
18
- #include <boost/asio/associated_allocator.hpp>
19
- #include <boost/asio/associated_executor.hpp>
18
+ #include <boost/asio/associator.hpp>
20
19
  #include <boost/asio/detail/handler_alloc_helpers.hpp>
21
20
  #include <boost/asio/detail/handler_cont_helpers.hpp>
22
21
  #include <boost/asio/detail/handler_invoke_helpers.hpp>
@@ -78,7 +77,7 @@ namespace detail
78
77
  const std::size_t bytes_written)
79
78
  {
80
79
  storage_.consume(bytes_written);
81
- handler_(ec, bytes_written);
80
+ BOOST_ASIO_MOVE_OR_LVALUE(WriteHandler)(handler_)(ec, bytes_written);
82
81
  }
83
82
 
84
83
  //private:
@@ -183,30 +182,18 @@ namespace detail
183
182
 
184
183
  #if !defined(GENERATING_DOCUMENTATION)
185
184
 
186
- template <typename WriteHandler, typename Allocator>
187
- struct associated_allocator<
188
- detail::buffered_flush_handler<WriteHandler>, Allocator>
185
+ template <template <typename, typename> class Associator,
186
+ typename WriteHandler, typename DefaultCandidate>
187
+ struct associator<Associator,
188
+ detail::buffered_flush_handler<WriteHandler>,
189
+ DefaultCandidate>
190
+ : Associator<WriteHandler, DefaultCandidate>
189
191
  {
190
- typedef typename associated_allocator<WriteHandler, Allocator>::type type;
191
-
192
- static type get(const detail::buffered_flush_handler<WriteHandler>& h,
193
- const Allocator& a = Allocator()) BOOST_ASIO_NOEXCEPT
194
- {
195
- return associated_allocator<WriteHandler, Allocator>::get(h.handler_, a);
196
- }
197
- };
198
-
199
- template <typename WriteHandler, typename Executor>
200
- struct associated_executor<
201
- detail::buffered_flush_handler<WriteHandler>, Executor>
202
- : detail::associated_executor_forwarding_base<WriteHandler, Executor>
203
- {
204
- typedef typename associated_executor<WriteHandler, Executor>::type type;
205
-
206
- static type get(const detail::buffered_flush_handler<WriteHandler>& h,
207
- const Executor& ex = Executor()) BOOST_ASIO_NOEXCEPT
192
+ static typename Associator<WriteHandler, DefaultCandidate>::type get(
193
+ const detail::buffered_flush_handler<WriteHandler>& h,
194
+ const DefaultCandidate& c = DefaultCandidate()) BOOST_ASIO_NOEXCEPT
208
195
  {
209
- return associated_executor<WriteHandler, Executor>::get(h.handler_, ex);
196
+ return Associator<WriteHandler, DefaultCandidate>::get(h.handler_, c);
210
197
  }
211
198
  };
212
199
 
@@ -294,7 +281,7 @@ namespace detail
294
281
  if (ec)
295
282
  {
296
283
  const std::size_t length = 0;
297
- handler_(ec, length);
284
+ BOOST_ASIO_MOVE_OR_LVALUE(WriteHandler)(handler_)(ec, length);
298
285
  }
299
286
  else
300
287
  {
@@ -307,7 +294,7 @@ namespace detail
307
294
  storage_.resize(orig_size + length);
308
295
  const std::size_t bytes_copied = boost::asio::buffer_copy(
309
296
  storage_.data() + orig_size, buffers_, length);
310
- handler_(ec, bytes_copied);
297
+ BOOST_ASIO_MOVE_OR_LVALUE(WriteHandler)(handler_)(ec, bytes_copied);
311
298
  }
312
299
  }
313
300
 
@@ -435,38 +422,20 @@ namespace detail
435
422
 
436
423
  #if !defined(GENERATING_DOCUMENTATION)
437
424
 
438
- template <typename ConstBufferSequence,
439
- typename WriteHandler, typename Allocator>
440
- struct associated_allocator<
425
+ template <template <typename, typename> class Associator,
426
+ typename ConstBufferSequence, typename WriteHandler,
427
+ typename DefaultCandidate>
428
+ struct associator<Associator,
441
429
  detail::buffered_write_some_handler<ConstBufferSequence, WriteHandler>,
442
- Allocator>
430
+ DefaultCandidate>
431
+ : Associator<WriteHandler, DefaultCandidate>
443
432
  {
444
- typedef typename associated_allocator<WriteHandler, Allocator>::type type;
445
-
446
- static type get(
447
- const detail::buffered_write_some_handler<
448
- ConstBufferSequence, WriteHandler>& h,
449
- const Allocator& a = Allocator()) BOOST_ASIO_NOEXCEPT
450
- {
451
- return associated_allocator<WriteHandler, Allocator>::get(h.handler_, a);
452
- }
453
- };
454
-
455
- template <typename ConstBufferSequence,
456
- typename WriteHandler, typename Executor>
457
- struct associated_executor<
458
- detail::buffered_write_some_handler<ConstBufferSequence, WriteHandler>,
459
- Executor>
460
- : detail::associated_executor_forwarding_base<WriteHandler, Executor>
461
- {
462
- typedef typename associated_executor<WriteHandler, Executor>::type type;
463
-
464
- static type get(
433
+ static typename Associator<WriteHandler, DefaultCandidate>::type get(
465
434
  const detail::buffered_write_some_handler<
466
435
  ConstBufferSequence, WriteHandler>& h,
467
- const Executor& ex = Executor()) BOOST_ASIO_NOEXCEPT
436
+ const DefaultCandidate& c = DefaultCandidate()) BOOST_ASIO_NOEXCEPT
468
437
  {
469
- return associated_executor<WriteHandler, Executor>::get(h.handler_, ex);
438
+ return Associator<WriteHandler, DefaultCandidate>::get(h.handler_, c);
470
439
  }
471
440
  };
472
441
 
@@ -16,6 +16,7 @@
16
16
  #endif // defined(_MSC_VER) && (_MSC_VER >= 1200)
17
17
 
18
18
  #include <boost/asio/detail/config.hpp>
19
+ #include <boost/asio/associated_cancellation_slot.hpp>
19
20
  #include <boost/asio/awaitable.hpp>
20
21
  #include <boost/asio/dispatch.hpp>
21
22
  #include <boost/asio/execution/outstanding_work.hpp>
@@ -77,16 +78,18 @@ make_co_spawn_work_guard(const Executor& ex)
77
78
  }
78
79
 
79
80
  template <typename T, typename Executor, typename F, typename Handler>
80
- awaitable<void, Executor> co_spawn_entry_point(
81
+ awaitable<awaitable_thread_entry_point, Executor> co_spawn_entry_point(
81
82
  awaitable<T, Executor>*, Executor ex, F f, Handler handler)
82
83
  {
83
84
  auto spawn_work = make_co_spawn_work_guard(ex);
84
85
  auto handler_work = make_co_spawn_work_guard(
85
86
  boost::asio::get_associated_executor(handler, ex));
86
87
 
87
- (void) co_await (post)(spawn_work.get_executor(),
88
- use_awaitable_t<Executor>{});
88
+ (void) co_await (dispatch)(
89
+ use_awaitable_t<Executor>{__FILE__, __LINE__, "co_spawn_entry_point"});
89
90
 
91
+ (co_await awaitable_thread_has_context_switched{}) = false;
92
+ std::exception_ptr e = nullptr;
90
93
  bool done = false;
91
94
  try
92
95
  {
@@ -94,36 +97,63 @@ awaitable<void, Executor> co_spawn_entry_point(
94
97
 
95
98
  done = true;
96
99
 
97
- (dispatch)(handler_work.get_executor(),
98
- [handler = std::move(handler), t = std::move(t)]() mutable
99
- {
100
- handler(std::exception_ptr(), std::move(t));
101
- });
100
+ if (co_await awaitable_thread_has_context_switched{})
101
+ {
102
+ (dispatch)(handler_work.get_executor(),
103
+ [handler = std::move(handler), t = std::move(t)]() mutable
104
+ {
105
+ std::move(handler)(std::exception_ptr(), std::move(t));
106
+ });
107
+ }
108
+ else
109
+ {
110
+ (post)(handler_work.get_executor(),
111
+ [handler = std::move(handler), t = std::move(t)]() mutable
112
+ {
113
+ std::move(handler)(std::exception_ptr(), std::move(t));
114
+ });
115
+ }
116
+
117
+ co_return;
102
118
  }
103
119
  catch (...)
104
120
  {
105
121
  if (done)
106
122
  throw;
107
123
 
124
+ e = std::current_exception();
125
+ }
126
+
127
+ if (co_await awaitable_thread_has_context_switched{})
128
+ {
108
129
  (dispatch)(handler_work.get_executor(),
109
- [handler = std::move(handler), e = std::current_exception()]() mutable
130
+ [handler = std::move(handler), e]() mutable
131
+ {
132
+ std::move(handler)(e, T());
133
+ });
134
+ }
135
+ else
136
+ {
137
+ (post)(handler_work.get_executor(),
138
+ [handler = std::move(handler), e]() mutable
110
139
  {
111
- handler(e, T());
140
+ std::move(handler)(e, T());
112
141
  });
113
142
  }
114
143
  }
115
144
 
116
145
  template <typename Executor, typename F, typename Handler>
117
- awaitable<void, Executor> co_spawn_entry_point(
146
+ awaitable<awaitable_thread_entry_point, Executor> co_spawn_entry_point(
118
147
  awaitable<void, Executor>*, Executor ex, F f, Handler handler)
119
148
  {
120
149
  auto spawn_work = make_co_spawn_work_guard(ex);
121
150
  auto handler_work = make_co_spawn_work_guard(
122
151
  boost::asio::get_associated_executor(handler, ex));
123
152
 
124
- (void) co_await (post)(spawn_work.get_executor(),
153
+ (void) co_await (dispatch)(
125
154
  use_awaitable_t<Executor>{__FILE__, __LINE__, "co_spawn_entry_point"});
126
155
 
156
+ (co_await awaitable_thread_has_context_switched{}) = false;
127
157
  std::exception_ptr e = nullptr;
128
158
  try
129
159
  {
@@ -134,11 +164,22 @@ awaitable<void, Executor> co_spawn_entry_point(
134
164
  e = std::current_exception();
135
165
  }
136
166
 
137
- (dispatch)(handler_work.get_executor(),
138
- [handler = std::move(handler), e]() mutable
139
- {
140
- handler(e);
141
- });
167
+ if (co_await awaitable_thread_has_context_switched{})
168
+ {
169
+ (dispatch)(handler_work.get_executor(),
170
+ [handler = std::move(handler), e]() mutable
171
+ {
172
+ std::move(handler)(e);
173
+ });
174
+ }
175
+ else
176
+ {
177
+ (post)(handler_work.get_executor(),
178
+ [handler = std::move(handler), e]() mutable
179
+ {
180
+ std::move(handler)(e);
181
+ });
182
+ }
142
183
  }
143
184
 
144
185
  template <typename T, typename Executor>
@@ -181,9 +222,16 @@ public:
181
222
  {
182
223
  typedef typename result_of<F()>::type awaitable_type;
183
224
 
225
+ cancellation_state proxy_cancel_state(
226
+ boost::asio::get_associated_cancellation_slot(handler),
227
+ enable_total_cancellation());
228
+
229
+ cancellation_state cancel_state(proxy_cancel_state.slot());
230
+
184
231
  auto a = (co_spawn_entry_point)(static_cast<awaitable_type*>(nullptr),
185
232
  ex_, std::forward<F>(f), std::forward<Handler>(handler));
186
- awaitable_handler<executor_type, void>(std::move(a), ex_).launch();
233
+ awaitable_handler<executor_type, void>(std::move(a), ex_,
234
+ proxy_cancel_state.slot(), cancel_state).launch();
187
235
  }
188
236
 
189
237
  private:
@@ -17,6 +17,7 @@
17
17
 
18
18
  #include <boost/asio/detail/config.hpp>
19
19
  #include <boost/asio/associated_executor.hpp>
20
+ #include <boost/asio/detail/base_from_cancellation_state.hpp>
20
21
  #include <boost/asio/detail/handler_alloc_helpers.hpp>
21
22
  #include <boost/asio/detail/handler_cont_helpers.hpp>
22
23
  #include <boost/asio/detail/handler_invoke_helpers.hpp>
@@ -294,13 +295,16 @@ namespace detail
294
295
  template <typename Impl, typename Work, typename Handler, typename Signature>
295
296
  class composed_op
296
297
  #endif // defined(BOOST_ASIO_HAS_VARIADIC_TEMPLATES)
298
+ : public base_from_cancellation_state<Handler>
297
299
  {
298
300
  public:
299
301
  template <typename I, typename W, typename H>
300
302
  composed_op(BOOST_ASIO_MOVE_ARG(I) impl,
301
303
  BOOST_ASIO_MOVE_ARG(W) work,
302
304
  BOOST_ASIO_MOVE_ARG(H) handler)
303
- : impl_(BOOST_ASIO_MOVE_CAST(I)(impl)),
305
+ : base_from_cancellation_state<Handler>(
306
+ handler, enable_terminal_cancellation()),
307
+ impl_(BOOST_ASIO_MOVE_CAST(I)(impl)),
304
308
  work_(BOOST_ASIO_MOVE_CAST(W)(work)),
305
309
  handler_(BOOST_ASIO_MOVE_CAST(H)(handler)),
306
310
  invocations_(0)
@@ -309,7 +313,10 @@ namespace detail
309
313
 
310
314
  #if defined(BOOST_ASIO_HAS_MOVE)
311
315
  composed_op(composed_op&& other)
312
- : impl_(BOOST_ASIO_MOVE_CAST(Impl)(other.impl_)),
316
+ : base_from_cancellation_state<Handler>(
317
+ BOOST_ASIO_MOVE_CAST(base_from_cancellation_state<
318
+ Handler>)(other)),
319
+ impl_(BOOST_ASIO_MOVE_CAST(Impl)(other.impl_)),
313
320
  work_(BOOST_ASIO_MOVE_CAST(Work)(other.work_)),
314
321
  handler_(BOOST_ASIO_MOVE_CAST(Handler)(other.handler_)),
315
322
  invocations_(other.invocations_)
@@ -343,13 +350,15 @@ namespace detail
343
350
  {
344
351
  if (invocations_ < ~0u)
345
352
  ++invocations_;
353
+ this->get_cancellation_state().slot().clear();
346
354
  impl_(*this, BOOST_ASIO_MOVE_CAST(T)(t)...);
347
355
  }
348
356
 
349
357
  void complete(Args... args)
350
358
  {
351
359
  this->work_.reset();
352
- this->handler_(BOOST_ASIO_MOVE_CAST(Args)(args)...);
360
+ BOOST_ASIO_MOVE_OR_LVALUE(Handler)(this->handler_)(
361
+ BOOST_ASIO_MOVE_CAST(Args)(args)...);
353
362
  }
354
363
 
355
364
  #else // defined(BOOST_ASIO_HAS_VARIADIC_TEMPLATES)
@@ -358,13 +367,14 @@ namespace detail
358
367
  {
359
368
  if (invocations_ < ~0u)
360
369
  ++invocations_;
370
+ this->get_cancellation_state().slot().clear();
361
371
  impl_(*this);
362
372
  }
363
373
 
364
374
  void complete()
365
375
  {
366
376
  this->work_.reset();
367
- this->handler_();
377
+ BOOST_ASIO_MOVE_OR_LVALUE(Handler)(this->handler_)();
368
378
  }
369
379
 
370
380
  #define BOOST_ASIO_PRIVATE_COMPOSED_OP_DEF(n) \
@@ -373,6 +383,7 @@ namespace detail
373
383
  { \
374
384
  if (invocations_ < ~0u) \
375
385
  ++invocations_; \
386
+ this->get_cancellation_state().slot().clear(); \
376
387
  impl_(*this, BOOST_ASIO_VARIADIC_MOVE_ARGS(n)); \
377
388
  } \
378
389
  \
@@ -380,7 +391,8 @@ namespace detail
380
391
  void complete(BOOST_ASIO_VARIADIC_MOVE_PARAMS(n)) \
381
392
  { \
382
393
  this->work_.reset(); \
383
- this->handler_(BOOST_ASIO_VARIADIC_MOVE_ARGS(n)); \
394
+ BOOST_ASIO_MOVE_OR_LVALUE(Handler)(this->handler_)( \
395
+ BOOST_ASIO_VARIADIC_MOVE_ARGS(n)); \
384
396
  } \
385
397
  /**/
386
398
  BOOST_ASIO_VARIADIC_GENERATE(BOOST_ASIO_PRIVATE_COMPOSED_OP_DEF)
@@ -388,6 +400,27 @@ namespace detail
388
400
 
389
401
  #endif // defined(BOOST_ASIO_HAS_VARIADIC_TEMPLATES)
390
402
 
403
+ void reset_cancellation_state()
404
+ {
405
+ base_from_cancellation_state<Handler>::reset_cancellation_state(handler_);
406
+ }
407
+
408
+ template <typename Filter>
409
+ void reset_cancellation_state(BOOST_ASIO_MOVE_ARG(Filter) filter)
410
+ {
411
+ base_from_cancellation_state<Handler>::reset_cancellation_state(handler_,
412
+ BOOST_ASIO_MOVE_CAST(Filter)(filter));
413
+ }
414
+
415
+ template <typename InFilter, typename OutFilter>
416
+ void reset_cancellation_state(BOOST_ASIO_MOVE_ARG(InFilter) in_filter,
417
+ BOOST_ASIO_MOVE_ARG(OutFilter) out_filter)
418
+ {
419
+ base_from_cancellation_state<Handler>::reset_cancellation_state(handler_,
420
+ BOOST_ASIO_MOVE_CAST(InFilter)(in_filter),
421
+ BOOST_ASIO_MOVE_CAST(OutFilter)(out_filter));
422
+ }
423
+
391
424
  //private:
392
425
  Impl impl_;
393
426
  Work work_;
@@ -521,6 +554,23 @@ namespace detail
521
554
  } // namespace detail
522
555
 
523
556
  #if !defined(GENERATING_DOCUMENTATION)
557
+
558
+ template <template <typename, typename> class Associator,
559
+ typename Impl, typename Work, typename Handler,
560
+ typename Signature, typename DefaultCandidate>
561
+ struct associator<Associator,
562
+ detail::composed_op<Impl, Work, Handler, Signature>,
563
+ DefaultCandidate>
564
+ : Associator<Handler, DefaultCandidate>
565
+ {
566
+ static typename Associator<Handler, DefaultCandidate>::type get(
567
+ const detail::composed_op<Impl, Work, Handler, Signature>& h,
568
+ const DefaultCandidate& c = DefaultCandidate()) BOOST_ASIO_NOEXCEPT
569
+ {
570
+ return Associator<Handler, DefaultCandidate>::get(h.handler_, c);
571
+ }
572
+ };
573
+
524
574
  #if defined(BOOST_ASIO_HAS_VARIADIC_TEMPLATES)
525
575
 
526
576
  template <typename CompletionToken, typename Signature,
@@ -16,8 +16,8 @@
16
16
  #endif // defined(_MSC_VER) && (_MSC_VER >= 1200)
17
17
 
18
18
  #include <algorithm>
19
- #include <boost/asio/associated_allocator.hpp>
20
- #include <boost/asio/associated_executor.hpp>
19
+ #include <boost/asio/associator.hpp>
20
+ #include <boost/asio/detail/base_from_cancellation_state.hpp>
21
21
  #include <boost/asio/detail/bind_handler.hpp>
22
22
  #include <boost/asio/detail/handler_alloc_helpers.hpp>
23
23
  #include <boost/asio/detail/handler_cont_helpers.hpp>
@@ -295,14 +295,18 @@ namespace detail
295
295
 
296
296
  template <typename Protocol, typename Executor, typename EndpointSequence,
297
297
  typename ConnectCondition, typename RangeConnectHandler>
298
- class range_connect_op : base_from_connect_condition<ConnectCondition>
298
+ class range_connect_op
299
+ : public base_from_cancellation_state<RangeConnectHandler>,
300
+ base_from_connect_condition<ConnectCondition>
299
301
  {
300
302
  public:
301
303
  range_connect_op(basic_socket<Protocol, Executor>& sock,
302
304
  const EndpointSequence& endpoints,
303
305
  const ConnectCondition& connect_condition,
304
306
  RangeConnectHandler& handler)
305
- : base_from_connect_condition<ConnectCondition>(connect_condition),
307
+ : base_from_cancellation_state<RangeConnectHandler>(
308
+ handler, enable_partial_cancellation()),
309
+ base_from_connect_condition<ConnectCondition>(connect_condition),
306
310
  socket_(sock),
307
311
  endpoints_(endpoints),
308
312
  index_(0),
@@ -313,7 +317,8 @@ namespace detail
313
317
 
314
318
  #if defined(BOOST_ASIO_HAS_MOVE)
315
319
  range_connect_op(const range_connect_op& other)
316
- : base_from_connect_condition<ConnectCondition>(other),
320
+ : base_from_cancellation_state<RangeConnectHandler>(other),
321
+ base_from_connect_condition<ConnectCondition>(other),
317
322
  socket_(other.socket_),
318
323
  endpoints_(other.endpoints_),
319
324
  index_(other.index_),
@@ -323,7 +328,10 @@ namespace detail
323
328
  }
324
329
 
325
330
  range_connect_op(range_connect_op&& other)
326
- : base_from_connect_condition<ConnectCondition>(other),
331
+ : base_from_cancellation_state<RangeConnectHandler>(
332
+ BOOST_ASIO_MOVE_CAST(base_from_cancellation_state<
333
+ RangeConnectHandler>)(other)),
334
+ base_from_connect_condition<ConnectCondition>(other),
327
335
  socket_(other.socket_),
328
336
  endpoints_(other.endpoints_),
329
337
  index_(other.index_),
@@ -389,11 +397,18 @@ namespace detail
389
397
  if (!ec)
390
398
  break;
391
399
 
400
+ if (this->cancelled() != cancellation_type::none)
401
+ {
402
+ ec = boost::asio::error::operation_aborted;
403
+ break;
404
+ }
405
+
392
406
  ++iter;
393
407
  ++index_;
394
408
  }
395
409
 
396
- handler_(static_cast<const boost::system::error_code&>(ec),
410
+ BOOST_ASIO_MOVE_OR_LVALUE(RangeConnectHandler)(handler_)(
411
+ static_cast<const boost::system::error_code&>(ec),
397
412
  static_cast<const typename Protocol::endpoint&>(
398
413
  ec || iter == end ? typename Protocol::endpoint() : *iter));
399
414
  }
@@ -516,14 +531,18 @@ namespace detail
516
531
 
517
532
  template <typename Protocol, typename Executor, typename Iterator,
518
533
  typename ConnectCondition, typename IteratorConnectHandler>
519
- class iterator_connect_op : base_from_connect_condition<ConnectCondition>
534
+ class iterator_connect_op
535
+ : public base_from_cancellation_state<IteratorConnectHandler>,
536
+ base_from_connect_condition<ConnectCondition>
520
537
  {
521
538
  public:
522
539
  iterator_connect_op(basic_socket<Protocol, Executor>& sock,
523
540
  const Iterator& begin, const Iterator& end,
524
541
  const ConnectCondition& connect_condition,
525
542
  IteratorConnectHandler& handler)
526
- : base_from_connect_condition<ConnectCondition>(connect_condition),
543
+ : base_from_cancellation_state<IteratorConnectHandler>(
544
+ handler, enable_partial_cancellation()),
545
+ base_from_connect_condition<ConnectCondition>(connect_condition),
527
546
  socket_(sock),
528
547
  iter_(begin),
529
548
  end_(end),
@@ -534,7 +553,8 @@ namespace detail
534
553
 
535
554
  #if defined(BOOST_ASIO_HAS_MOVE)
536
555
  iterator_connect_op(const iterator_connect_op& other)
537
- : base_from_connect_condition<ConnectCondition>(other),
556
+ : base_from_cancellation_state<IteratorConnectHandler>(other),
557
+ base_from_connect_condition<ConnectCondition>(other),
538
558
  socket_(other.socket_),
539
559
  iter_(other.iter_),
540
560
  end_(other.end_),
@@ -544,7 +564,10 @@ namespace detail
544
564
  }
545
565
 
546
566
  iterator_connect_op(iterator_connect_op&& other)
547
- : base_from_connect_condition<ConnectCondition>(other),
567
+ : base_from_cancellation_state<IteratorConnectHandler>(
568
+ BOOST_ASIO_MOVE_CAST(base_from_cancellation_state<
569
+ IteratorConnectHandler>)(other)),
570
+ base_from_connect_condition<ConnectCondition>(other),
548
571
  socket_(other.socket_),
549
572
  iter_(other.iter_),
550
573
  end_(other.end_),
@@ -596,10 +619,17 @@ namespace detail
596
619
  if (!ec)
597
620
  break;
598
621
 
622
+ if (this->cancelled() != cancellation_type::none)
623
+ {
624
+ ec = boost::asio::error::operation_aborted;
625
+ break;
626
+ }
627
+
599
628
  ++iter_;
600
629
  }
601
630
 
602
- handler_(static_cast<const boost::system::error_code&>(ec),
631
+ BOOST_ASIO_MOVE_OR_LVALUE(IteratorConnectHandler)(handler_)(
632
+ static_cast<const boost::system::error_code&>(ec),
603
633
  static_cast<const Iterator&>(iter_));
604
634
  }
605
635
  }
@@ -724,86 +754,44 @@ namespace detail
724
754
 
725
755
  #if !defined(GENERATING_DOCUMENTATION)
726
756
 
727
- template <typename Protocol, typename Executor, typename EndpointSequence,
728
- typename ConnectCondition, typename RangeConnectHandler, typename Allocator>
729
- struct associated_allocator<
730
- detail::range_connect_op<Protocol, Executor, EndpointSequence,
731
- ConnectCondition, RangeConnectHandler>, Allocator>
757
+ template <template <typename, typename> class Associator,
758
+ typename Protocol, typename Executor, typename EndpointSequence,
759
+ typename ConnectCondition, typename RangeConnectHandler,
760
+ typename DefaultCandidate>
761
+ struct associator<Associator,
762
+ detail::range_connect_op<Protocol, Executor,
763
+ EndpointSequence, ConnectCondition, RangeConnectHandler>,
764
+ DefaultCandidate>
765
+ : Associator<RangeConnectHandler, DefaultCandidate>
732
766
  {
733
- typedef typename associated_allocator<
734
- RangeConnectHandler, Allocator>::type type;
735
-
736
- static type get(
737
- const detail::range_connect_op<Protocol, Executor, EndpointSequence,
738
- ConnectCondition, RangeConnectHandler>& h,
739
- const Allocator& a = Allocator()) BOOST_ASIO_NOEXCEPT
767
+ static typename Associator<RangeConnectHandler, DefaultCandidate>::type get(
768
+ const detail::range_connect_op<Protocol, Executor,
769
+ EndpointSequence, ConnectCondition, RangeConnectHandler>& h,
770
+ const DefaultCandidate& c = DefaultCandidate()) BOOST_ASIO_NOEXCEPT
740
771
  {
741
- return associated_allocator<RangeConnectHandler,
742
- Allocator>::get(h.handler_, a);
772
+ return Associator<RangeConnectHandler, DefaultCandidate>::get(
773
+ h.handler_, c);
743
774
  }
744
775
  };
745
776
 
746
- template <typename Protocol, typename Executor, typename EndpointSequence,
747
- typename ConnectCondition, typename RangeConnectHandler, typename Executor1>
748
- struct associated_executor<
749
- detail::range_connect_op<Protocol, Executor, EndpointSequence,
750
- ConnectCondition, RangeConnectHandler>, Executor1>
751
- : detail::associated_executor_forwarding_base<RangeConnectHandler, Executor1>
752
- {
753
- typedef typename associated_executor<
754
- RangeConnectHandler, Executor1>::type type;
755
-
756
- static type get(
757
- const detail::range_connect_op<Protocol, Executor, EndpointSequence,
758
- ConnectCondition, RangeConnectHandler>& h,
759
- const Executor1& ex = Executor1()) BOOST_ASIO_NOEXCEPT
760
- {
761
- return associated_executor<RangeConnectHandler,
762
- Executor1>::get(h.handler_, ex);
763
- }
764
- };
765
-
766
- template <typename Protocol, typename Executor, typename Iterator,
767
- typename ConnectCondition, typename IteratorConnectHandler,
768
- typename Allocator>
769
- struct associated_allocator<
770
- detail::iterator_connect_op<Protocol, Executor,
771
- Iterator, ConnectCondition, IteratorConnectHandler>,
772
- Allocator>
773
- {
774
- typedef typename associated_allocator<
775
- IteratorConnectHandler, Allocator>::type type;
776
-
777
- static type get(
778
- const detail::iterator_connect_op<Protocol, Executor,
779
- Iterator, ConnectCondition, IteratorConnectHandler>& h,
780
- const Allocator& a = Allocator()) BOOST_ASIO_NOEXCEPT
781
- {
782
- return associated_allocator<IteratorConnectHandler,
783
- Allocator>::get(h.handler_, a);
784
- }
785
- };
786
-
787
- template <typename Protocol, typename Executor, typename Iterator,
777
+ template <template <typename, typename> class Associator,
778
+ typename Protocol, typename Executor, typename Iterator,
788
779
  typename ConnectCondition, typename IteratorConnectHandler,
789
- typename Executor1>
790
- struct associated_executor<
780
+ typename DefaultCandidate>
781
+ struct associator<Associator,
791
782
  detail::iterator_connect_op<Protocol, Executor,
792
783
  Iterator, ConnectCondition, IteratorConnectHandler>,
793
- Executor1>
794
- : detail::associated_executor_forwarding_base<
795
- IteratorConnectHandler, Executor1>
784
+ DefaultCandidate>
785
+ : Associator<IteratorConnectHandler, DefaultCandidate>
796
786
  {
797
- typedef typename associated_executor<
798
- IteratorConnectHandler, Executor1>::type type;
799
-
800
- static type get(
787
+ static typename Associator<IteratorConnectHandler, DefaultCandidate>::type
788
+ get(
801
789
  const detail::iterator_connect_op<Protocol, Executor,
802
790
  Iterator, ConnectCondition, IteratorConnectHandler>& h,
803
- const Executor1& ex = Executor1()) BOOST_ASIO_NOEXCEPT
791
+ const DefaultCandidate& c = DefaultCandidate()) BOOST_ASIO_NOEXCEPT
804
792
  {
805
- return associated_executor<IteratorConnectHandler,
806
- Executor1>::get(h.handler_, ex);
793
+ return Associator<IteratorConnectHandler, DefaultCandidate>::get(
794
+ h.handler_, c);
807
795
  }
808
796
  };
809
797