passenger 6.0.1 → 6.0.6

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (453) hide show
  1. checksums.yaml +4 -4
  2. data/CHANGELOG +145 -18
  3. data/CONTRIBUTORS +6 -0
  4. data/bin/passenger-install-nginx-module +1 -1
  5. data/bin/passenger-status +15 -0
  6. data/build/misc.rb +3 -1
  7. data/build/support/vendor/cxxcodebuilder/lib/cxxcodebuilder/builder.rb +56 -3
  8. data/dev/copy_boost_headers +1 -0
  9. data/package.json +1 -1
  10. data/passenger.gemspec +9 -1
  11. data/resources/templates/error_renderer/with_details/src/bootstrap/bootstrap.css +0 -0
  12. data/resources/templates/error_renderer/with_details/src/bootstrap/bootstrap.js +0 -0
  13. data/resources/templates/error_renderer/with_details/src/bootstrap/config.json +0 -0
  14. data/resources/templates/standalone/http.erb +2 -0
  15. data/resources/templates/standalone/server.erb +1 -0
  16. data/src/agent/Core/ApplicationPool/Group/ProcessListManagement.cpp +1 -1
  17. data/src/agent/Core/ApplicationPool/Group/StateInspection.cpp +1 -0
  18. data/src/agent/Core/ApplicationPool/Options.h +10 -0
  19. data/src/agent/Core/ApplicationPool/Pool/GarbageCollection.cpp +1 -1
  20. data/src/agent/Core/ApplicationPool/Pool/StateInspection.cpp +1 -1
  21. data/src/agent/Core/Config.h +14 -1
  22. data/src/agent/Core/Controller.h +1 -0
  23. data/src/agent/Core/Controller/Config.h +5 -1
  24. data/src/agent/Core/Controller/ForwardResponse.cpp +13 -0
  25. data/src/agent/Core/Controller/InitRequest.cpp +3 -0
  26. data/src/agent/Core/Controller/InitializationAndShutdown.cpp +1 -0
  27. data/src/agent/Core/CoreMain.cpp +2 -1
  28. data/src/agent/Core/OptionParser.h +3 -0
  29. data/src/agent/Core/SpawningKit/Context.h +1 -0
  30. data/src/agent/Core/SpawningKit/Handshake/Prepare.h +1 -1
  31. data/src/agent/Core/SpawningKit/Handshake/WorkDir.h +5 -2
  32. data/src/agent/TempDirToucher/TempDirToucherMain.cpp +2 -0
  33. data/src/agent/Watchdog/Config.h +15 -1
  34. data/src/agent/Watchdog/WatchdogMain.cpp +7 -0
  35. data/src/apache2_module/ConfigGeneral/AutoGeneratedDefinitions.cpp +10 -0
  36. data/src/apache2_module/ConfigGeneral/AutoGeneratedManifestDefaultsInitialization.cpp +10 -0
  37. data/src/apache2_module/ConfigGeneral/AutoGeneratedSetterFuncs.cpp +30 -0
  38. data/src/apache2_module/Hooks.cpp +6 -0
  39. data/src/apache2_module/ServerConfig/AutoGeneratedManifestGeneration.cpp +20 -0
  40. data/src/apache2_module/ServerConfig/AutoGeneratedStruct.h +24 -0
  41. data/src/cxx_supportlib/Constants.h +2 -1
  42. data/src/cxx_supportlib/LoggingKit/Config.h +2 -0
  43. data/src/cxx_supportlib/LoggingKit/Implementation.cpp +15 -9
  44. data/src/cxx_supportlib/ServerKit/HttpChunkedBodyParser.h +1 -1
  45. data/src/cxx_supportlib/SystemTools/ContainerHelpers.h +20 -19
  46. data/src/cxx_supportlib/WebSocketCommandReverseServer.h +11 -7
  47. data/src/cxx_supportlib/oxt/system_calls.cpp +10 -10
  48. data/src/cxx_supportlib/vendor-modified/boost/algorithm/string/finder.hpp +0 -4
  49. data/src/cxx_supportlib/vendor-modified/boost/asio/buffer.hpp +46 -37
  50. data/src/cxx_supportlib/vendor-modified/boost/asio/connect.hpp +16 -15
  51. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/config.hpp +45 -26
  52. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/future.hpp +33 -0
  53. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/impl/socket_ops.ipp +1 -1
  54. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/is_buffer_sequence.hpp +38 -14
  55. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/timer_queue.hpp +2 -0
  56. data/src/cxx_supportlib/vendor-modified/boost/asio/impl/io_context.hpp +1 -1
  57. data/src/cxx_supportlib/vendor-modified/boost/asio/impl/read_until.hpp +3 -1
  58. data/src/cxx_supportlib/vendor-modified/boost/asio/impl/use_future.hpp +0 -1
  59. data/src/cxx_supportlib/vendor-modified/boost/asio/ip/bad_address_cast.hpp +6 -1
  60. data/src/cxx_supportlib/vendor-modified/boost/asio/ip/basic_resolver.hpp +6 -4
  61. data/src/cxx_supportlib/vendor-modified/boost/asio/ip/basic_resolver_results.hpp +4 -4
  62. data/src/cxx_supportlib/vendor-modified/boost/asio/packaged_task.hpp +3 -3
  63. data/src/cxx_supportlib/vendor-modified/boost/asio/read.hpp +4 -4
  64. data/src/cxx_supportlib/vendor-modified/boost/asio/read_at.hpp +4 -4
  65. data/src/cxx_supportlib/vendor-modified/boost/asio/read_until.hpp +8 -6
  66. data/src/cxx_supportlib/vendor-modified/boost/asio/ssl/context_base.hpp +17 -0
  67. data/src/cxx_supportlib/vendor-modified/boost/asio/ssl/impl/context.ipp +50 -5
  68. data/src/cxx_supportlib/vendor-modified/boost/asio/ssl/stream.hpp +2 -1
  69. data/src/cxx_supportlib/vendor-modified/boost/asio/thread_pool.hpp +1 -1
  70. data/src/cxx_supportlib/vendor-modified/boost/asio/use_future.hpp +3 -2
  71. data/src/cxx_supportlib/vendor-modified/boost/asio/version.hpp +1 -1
  72. data/src/cxx_supportlib/vendor-modified/boost/asio/write.hpp +4 -3
  73. data/src/cxx_supportlib/vendor-modified/boost/asio/write_at.hpp +5 -3
  74. data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/ops_gcc_x86_dcas.hpp +13 -12
  75. data/src/cxx_supportlib/vendor-modified/boost/chrono/detail/inlined/mac/chrono.hpp +10 -10
  76. data/src/cxx_supportlib/vendor-modified/boost/chrono/detail/inlined/mac/process_cpu_clocks.hpp +34 -34
  77. data/src/cxx_supportlib/vendor-modified/boost/chrono/detail/inlined/mac/thread_clock.hpp +4 -4
  78. data/src/cxx_supportlib/vendor-modified/boost/chrono/detail/inlined/posix/chrono.hpp +8 -8
  79. data/src/cxx_supportlib/vendor-modified/boost/chrono/detail/inlined/posix/process_cpu_clocks.hpp +27 -27
  80. data/src/cxx_supportlib/vendor-modified/boost/chrono/detail/inlined/posix/thread_clock.hpp +4 -4
  81. data/src/cxx_supportlib/vendor-modified/boost/chrono/detail/system.hpp +5 -4
  82. data/src/cxx_supportlib/vendor-modified/boost/chrono/io/time_point_io.hpp +1 -1
  83. data/src/cxx_supportlib/vendor-modified/boost/circular_buffer.hpp +3 -3
  84. data/src/cxx_supportlib/vendor-modified/boost/circular_buffer/allocators.hpp +89 -0
  85. data/src/cxx_supportlib/vendor-modified/boost/circular_buffer/base.hpp +83 -74
  86. data/src/cxx_supportlib/vendor-modified/boost/circular_buffer/details.hpp +21 -33
  87. data/src/cxx_supportlib/vendor-modified/boost/circular_buffer/space_optimized.hpp +5 -5
  88. data/src/cxx_supportlib/vendor-modified/boost/concept/assert.hpp +1 -1
  89. data/src/cxx_supportlib/vendor-modified/boost/concept/detail/general.hpp +3 -3
  90. data/src/cxx_supportlib/vendor-modified/boost/concept/detail/has_constraints.hpp +3 -3
  91. data/src/cxx_supportlib/vendor-modified/boost/concept/usage.hpp +1 -1
  92. data/src/cxx_supportlib/vendor-modified/boost/concept_check.hpp +19 -19
  93. data/src/cxx_supportlib/vendor-modified/boost/config/auto_link.hpp +8 -0
  94. data/src/cxx_supportlib/vendor-modified/boost/config/compiler/borland.hpp +5 -2
  95. data/src/cxx_supportlib/vendor-modified/boost/config/compiler/clang.hpp +5 -1
  96. data/src/cxx_supportlib/vendor-modified/boost/config/compiler/codegear.hpp +6 -2
  97. data/src/cxx_supportlib/vendor-modified/boost/config/compiler/comeau.hpp +1 -1
  98. data/src/cxx_supportlib/vendor-modified/boost/config/compiler/common_edg.hpp +4 -0
  99. data/src/cxx_supportlib/vendor-modified/boost/config/compiler/cray.hpp +368 -52
  100. data/src/cxx_supportlib/vendor-modified/boost/config/compiler/digitalmars.hpp +4 -1
  101. data/src/cxx_supportlib/vendor-modified/boost/config/compiler/gcc.hpp +6 -3
  102. data/src/cxx_supportlib/vendor-modified/boost/config/compiler/gcc_xml.hpp +3 -0
  103. data/src/cxx_supportlib/vendor-modified/boost/config/compiler/greenhills.hpp +1 -1
  104. data/src/cxx_supportlib/vendor-modified/boost/config/compiler/hp_acc.hpp +1 -1
  105. data/src/cxx_supportlib/vendor-modified/boost/config/compiler/intel.hpp +6 -1
  106. data/src/cxx_supportlib/vendor-modified/boost/config/compiler/kai.hpp +1 -1
  107. data/src/cxx_supportlib/vendor-modified/boost/config/compiler/metrowerks.hpp +4 -1
  108. data/src/cxx_supportlib/vendor-modified/boost/config/compiler/mpw.hpp +4 -1
  109. data/src/cxx_supportlib/vendor-modified/boost/config/compiler/nvcc.hpp +3 -3
  110. data/src/cxx_supportlib/vendor-modified/boost/config/compiler/pathscale.hpp +3 -0
  111. data/src/cxx_supportlib/vendor-modified/boost/config/compiler/sunpro_cc.hpp +3 -0
  112. data/src/cxx_supportlib/vendor-modified/boost/config/compiler/vacpp.hpp +4 -1
  113. data/src/cxx_supportlib/vendor-modified/boost/config/compiler/visualc.hpp +9 -4
  114. data/src/cxx_supportlib/vendor-modified/boost/config/compiler/xlcpp.hpp +4 -0
  115. data/src/cxx_supportlib/vendor-modified/boost/config/compiler/xlcpp_zos.hpp +1 -0
  116. data/src/cxx_supportlib/vendor-modified/boost/config/detail/select_compiler_config.hpp +1 -2
  117. data/src/cxx_supportlib/vendor-modified/boost/config/detail/suffix.hpp +13 -0
  118. data/src/cxx_supportlib/vendor-modified/boost/config/stdlib/dinkumware.hpp +2 -2
  119. data/src/cxx_supportlib/vendor-modified/boost/config/stdlib/libcpp.hpp +14 -4
  120. data/src/cxx_supportlib/vendor-modified/boost/config/stdlib/libstdcpp3.hpp +4 -4
  121. data/src/cxx_supportlib/vendor-modified/boost/container/adaptive_pool.hpp +262 -2
  122. data/src/cxx_supportlib/vendor-modified/boost/container/allocator.hpp +4 -3
  123. data/src/cxx_supportlib/vendor-modified/boost/container/allocator_traits.hpp +1 -1
  124. data/src/cxx_supportlib/vendor-modified/boost/container/deque.hpp +7 -0
  125. data/src/cxx_supportlib/vendor-modified/boost/container/detail/adaptive_node_pool.hpp +22 -19
  126. data/src/cxx_supportlib/vendor-modified/boost/container/detail/adaptive_node_pool_impl.hpp +833 -459
  127. data/src/cxx_supportlib/vendor-modified/boost/container/detail/advanced_insert_int.hpp +24 -6
  128. data/src/cxx_supportlib/vendor-modified/boost/container/detail/allocator_version_traits.hpp +2 -1
  129. data/src/cxx_supportlib/vendor-modified/boost/container/detail/compare_functors.hpp +61 -5
  130. data/src/cxx_supportlib/vendor-modified/boost/container/detail/copy_move_algo.hpp +33 -8
  131. data/src/cxx_supportlib/vendor-modified/boost/container/detail/flat_tree.hpp +132 -41
  132. data/src/cxx_supportlib/vendor-modified/boost/container/detail/iterator.hpp +16 -0
  133. data/src/cxx_supportlib/vendor-modified/boost/container/detail/math_functions.hpp +54 -0
  134. data/src/cxx_supportlib/vendor-modified/boost/container/detail/mpl.hpp +58 -0
  135. data/src/cxx_supportlib/vendor-modified/boost/container/detail/multiallocation_chain.hpp +28 -23
  136. data/src/cxx_supportlib/vendor-modified/boost/container/detail/node_alloc_holder.hpp +167 -115
  137. data/src/cxx_supportlib/vendor-modified/boost/container/detail/pair.hpp +55 -0
  138. data/src/cxx_supportlib/vendor-modified/boost/container/detail/std_fwd.hpp +3 -0
  139. data/src/cxx_supportlib/vendor-modified/boost/container/detail/thread_mutex.hpp +181 -0
  140. data/src/cxx_supportlib/vendor-modified/boost/container/detail/tree.hpp +167 -29
  141. data/src/cxx_supportlib/vendor-modified/boost/container/detail/type_traits.hpp +2 -0
  142. data/src/cxx_supportlib/vendor-modified/boost/container/detail/variadic_templates_tools.hpp +1 -1
  143. data/src/cxx_supportlib/vendor-modified/boost/container/detail/workaround.hpp +18 -0
  144. data/src/cxx_supportlib/vendor-modified/boost/container/flat_map.hpp +389 -3
  145. data/src/cxx_supportlib/vendor-modified/boost/container/flat_set.hpp +262 -0
  146. data/src/cxx_supportlib/vendor-modified/boost/container/list.hpp +52 -8
  147. data/src/cxx_supportlib/vendor-modified/boost/container/map.hpp +364 -0
  148. data/src/cxx_supportlib/vendor-modified/boost/container/pmr/monotonic_buffer_resource.hpp +4 -2
  149. data/src/cxx_supportlib/vendor-modified/boost/container/pmr/resource_adaptor.hpp +1 -1
  150. data/src/cxx_supportlib/vendor-modified/boost/container/pmr/synchronized_pool_resource.hpp +3 -2
  151. data/src/cxx_supportlib/vendor-modified/boost/container/set.hpp +286 -6
  152. data/src/cxx_supportlib/vendor-modified/boost/container/slist.hpp +56 -8
  153. data/src/cxx_supportlib/vendor-modified/boost/container/small_vector.hpp +43 -6
  154. data/src/cxx_supportlib/vendor-modified/boost/container/stable_vector.hpp +100 -31
  155. data/src/cxx_supportlib/vendor-modified/boost/container/static_vector.hpp +2 -1
  156. data/src/cxx_supportlib/vendor-modified/boost/container/string.hpp +126 -69
  157. data/src/cxx_supportlib/vendor-modified/boost/container/vector.hpp +75 -51
  158. data/src/cxx_supportlib/vendor-modified/boost/core/empty_value.hpp +136 -0
  159. data/src/cxx_supportlib/vendor-modified/boost/core/exchange.hpp +49 -0
  160. data/src/cxx_supportlib/vendor-modified/boost/core/explicit_operator_bool.hpp +9 -0
  161. data/src/cxx_supportlib/vendor-modified/boost/core/lightweight_test.hpp +101 -130
  162. data/src/cxx_supportlib/vendor-modified/boost/core/lightweight_test_trait.hpp +2 -2
  163. data/src/cxx_supportlib/vendor-modified/boost/core/noncopyable.hpp +16 -1
  164. data/src/cxx_supportlib/vendor-modified/boost/core/quick_exit.hpp +59 -0
  165. data/src/cxx_supportlib/vendor-modified/boost/core/ref.hpp +2 -1
  166. data/src/cxx_supportlib/vendor-modified/boost/core/swap.hpp +9 -2
  167. data/src/cxx_supportlib/vendor-modified/boost/core/typeinfo.hpp +26 -10
  168. data/src/cxx_supportlib/vendor-modified/boost/date_time/compiler_config.hpp +5 -0
  169. data/src/cxx_supportlib/vendor-modified/boost/date_time/posix_time/posix_time_duration.hpp +3 -3
  170. data/src/cxx_supportlib/vendor-modified/boost/date_time/time_duration.hpp +1 -1
  171. data/src/cxx_supportlib/vendor-modified/boost/detail/basic_pointerbuf.hpp +1 -1
  172. data/src/cxx_supportlib/vendor-modified/boost/detail/indirect_traits.hpp +38 -47
  173. data/src/cxx_supportlib/vendor-modified/boost/detail/lcast_precision.hpp +5 -5
  174. data/src/cxx_supportlib/vendor-modified/boost/detail/reference_content.hpp +7 -7
  175. data/src/cxx_supportlib/vendor-modified/boost/exception/exception.hpp +62 -58
  176. data/src/cxx_supportlib/vendor-modified/boost/function.hpp +1 -1
  177. data/src/cxx_supportlib/vendor-modified/boost/function/function_base.hpp +29 -29
  178. data/src/cxx_supportlib/vendor-modified/boost/function/function_template.hpp +38 -40
  179. data/src/cxx_supportlib/vendor-modified/boost/integer/common_factor_rt.hpp +4 -4
  180. data/src/cxx_supportlib/vendor-modified/boost/intrusive/avltree_algorithms.hpp +44 -44
  181. data/src/cxx_supportlib/vendor-modified/boost/intrusive/bstree_algorithms.hpp +39 -39
  182. data/src/cxx_supportlib/vendor-modified/boost/intrusive/circular_list_algorithms.hpp +15 -15
  183. data/src/cxx_supportlib/vendor-modified/boost/intrusive/circular_slist_algorithms.hpp +7 -7
  184. data/src/cxx_supportlib/vendor-modified/boost/intrusive/derivation_value_traits.hpp +1 -1
  185. data/src/cxx_supportlib/vendor-modified/boost/intrusive/detail/any_node_and_algorithms.hpp +14 -14
  186. data/src/cxx_supportlib/vendor-modified/boost/intrusive/detail/avltree_node.hpp +9 -9
  187. data/src/cxx_supportlib/vendor-modified/boost/intrusive/detail/common_slist_algorithms.hpp +7 -7
  188. data/src/cxx_supportlib/vendor-modified/boost/intrusive/detail/list_iterator.hpp +1 -1
  189. data/src/cxx_supportlib/vendor-modified/boost/intrusive/detail/list_node.hpp +2 -2
  190. data/src/cxx_supportlib/vendor-modified/boost/intrusive/detail/node_cloner_disposer.hpp +2 -2
  191. data/src/cxx_supportlib/vendor-modified/boost/intrusive/detail/rbtree_node.hpp +6 -6
  192. data/src/cxx_supportlib/vendor-modified/boost/intrusive/detail/simple_disposers.hpp +1 -1
  193. data/src/cxx_supportlib/vendor-modified/boost/intrusive/detail/slist_iterator.hpp +1 -1
  194. data/src/cxx_supportlib/vendor-modified/boost/intrusive/detail/slist_node.hpp +1 -1
  195. data/src/cxx_supportlib/vendor-modified/boost/intrusive/detail/tree_iterator.hpp +1 -1
  196. data/src/cxx_supportlib/vendor-modified/boost/intrusive/detail/tree_node.hpp +3 -3
  197. data/src/cxx_supportlib/vendor-modified/boost/intrusive/detail/tree_value_compare.hpp +33 -14
  198. data/src/cxx_supportlib/vendor-modified/boost/intrusive/hashtable.hpp +12 -12
  199. data/src/cxx_supportlib/vendor-modified/boost/intrusive/linear_slist_algorithms.hpp +4 -4
  200. data/src/cxx_supportlib/vendor-modified/boost/intrusive/pointer_plus_bits.hpp +3 -0
  201. data/src/cxx_supportlib/vendor-modified/boost/intrusive/rbtree_algorithms.hpp +39 -39
  202. data/src/cxx_supportlib/vendor-modified/boost/intrusive/sgtree_algorithms.hpp +61 -61
  203. data/src/cxx_supportlib/vendor-modified/boost/intrusive/slist.hpp +4 -4
  204. data/src/cxx_supportlib/vendor-modified/boost/intrusive/splaytree_algorithms.hpp +66 -66
  205. data/src/cxx_supportlib/vendor-modified/boost/intrusive/treap_algorithms.hpp +54 -54
  206. data/src/cxx_supportlib/vendor-modified/boost/intrusive/unordered_set.hpp +6 -2
  207. data/src/cxx_supportlib/vendor-modified/boost/intrusive/unordered_set_hook.hpp +3 -3
  208. data/src/cxx_supportlib/vendor-modified/boost/iterator/advance.hpp +1 -1
  209. data/src/cxx_supportlib/vendor-modified/boost/iterator/distance.hpp +65 -0
  210. data/src/cxx_supportlib/vendor-modified/boost/lexical_cast.hpp +1 -1
  211. data/src/cxx_supportlib/vendor-modified/boost/lexical_cast/bad_lexical_cast.hpp +1 -1
  212. data/src/cxx_supportlib/vendor-modified/boost/lexical_cast/detail/converter_lexical.hpp +23 -23
  213. data/src/cxx_supportlib/vendor-modified/boost/lexical_cast/detail/converter_lexical_streams.hpp +4 -4
  214. data/src/cxx_supportlib/vendor-modified/boost/lexical_cast/detail/converter_numeric.hpp +13 -13
  215. data/src/cxx_supportlib/vendor-modified/boost/lexical_cast/detail/inf_nan.hpp +1 -1
  216. data/src/cxx_supportlib/vendor-modified/boost/lexical_cast/detail/is_character.hpp +5 -4
  217. data/src/cxx_supportlib/vendor-modified/boost/lexical_cast/detail/lcast_char_constants.hpp +1 -1
  218. data/src/cxx_supportlib/vendor-modified/boost/lexical_cast/detail/lcast_unsigned_converters.hpp +5 -5
  219. data/src/cxx_supportlib/vendor-modified/boost/lexical_cast/detail/widest_char.hpp +5 -2
  220. data/src/cxx_supportlib/vendor-modified/boost/lexical_cast/try_lexical_convert.hpp +18 -13
  221. data/src/cxx_supportlib/vendor-modified/boost/libs/regex/src/cregex.cpp +4 -4
  222. data/src/cxx_supportlib/vendor-modified/boost/libs/system/src/error_code.cpp +16 -5
  223. data/src/cxx_supportlib/vendor-modified/boost/libs/thread/src/future.cpp +1 -1
  224. data/src/cxx_supportlib/vendor-modified/boost/libs/thread/src/pthread/thread.cpp +14 -8
  225. data/src/cxx_supportlib/vendor-modified/boost/libs/thread/src/tss_null.cpp +2 -2
  226. data/src/cxx_supportlib/vendor-modified/boost/math/special_functions/detail/fp_traits.hpp +13 -13
  227. data/src/cxx_supportlib/vendor-modified/boost/math/special_functions/math_fwd.hpp +27 -0
  228. data/src/cxx_supportlib/vendor-modified/boost/math/tools/config.hpp +1 -1
  229. data/src/cxx_supportlib/vendor-modified/boost/move/algo/adaptive_merge.hpp +29 -6
  230. data/src/cxx_supportlib/vendor-modified/boost/move/algo/adaptive_sort.hpp +12 -3
  231. data/src/cxx_supportlib/vendor-modified/boost/move/algo/detail/adaptive_sort_merge.hpp +1 -1
  232. data/src/cxx_supportlib/vendor-modified/boost/move/algo/move.hpp +1 -1
  233. data/src/cxx_supportlib/vendor-modified/boost/move/algorithm.hpp +1 -1
  234. data/src/cxx_supportlib/vendor-modified/boost/move/core.hpp +8 -8
  235. data/src/cxx_supportlib/vendor-modified/boost/move/detail/meta_utils.hpp +2 -0
  236. data/src/cxx_supportlib/vendor-modified/boost/move/detail/type_traits.hpp +3 -3
  237. data/src/cxx_supportlib/vendor-modified/boost/mpl/assert.hpp +23 -3
  238. data/src/cxx_supportlib/vendor-modified/boost/optional/detail/experimental_traits.hpp +9 -3
  239. data/src/cxx_supportlib/vendor-modified/boost/optional/detail/old_optional_implementation.hpp +10 -11
  240. data/src/cxx_supportlib/vendor-modified/boost/optional/detail/optional_reference_spec.hpp +20 -1
  241. data/src/cxx_supportlib/vendor-modified/boost/optional/detail/optional_trivially_copyable_base.hpp +3 -3
  242. data/src/cxx_supportlib/vendor-modified/boost/optional/optional.hpp +211 -101
  243. data/src/cxx_supportlib/vendor-modified/boost/parameter/python.hpp +5 -6
  244. data/src/cxx_supportlib/vendor-modified/boost/pool/detail/mutex.hpp +119 -25
  245. data/src/cxx_supportlib/vendor-modified/boost/predef/architecture.h +1 -0
  246. data/src/cxx_supportlib/vendor-modified/boost/predef/architecture/arm.h +5 -0
  247. data/src/cxx_supportlib/vendor-modified/boost/predef/architecture/ptx.h +44 -0
  248. data/src/cxx_supportlib/vendor-modified/boost/predef/compiler.h +1 -0
  249. data/src/cxx_supportlib/vendor-modified/boost/predef/compiler/compaq.h +1 -1
  250. data/src/cxx_supportlib/vendor-modified/boost/predef/compiler/nvcc.h +73 -0
  251. data/src/cxx_supportlib/vendor-modified/boost/predef/detail/endian_compat.h +3 -1
  252. data/src/cxx_supportlib/vendor-modified/boost/predef/language.h +1 -0
  253. data/src/cxx_supportlib/vendor-modified/boost/predef/language/cuda.h +52 -0
  254. data/src/cxx_supportlib/vendor-modified/boost/predef/make.h +4 -0
  255. data/src/cxx_supportlib/vendor-modified/boost/predef/os/cygwin.h +6 -1
  256. data/src/cxx_supportlib/vendor-modified/boost/predef/other/endian.h +1 -2
  257. data/src/cxx_supportlib/vendor-modified/boost/predef/version.h +1 -1
  258. data/src/cxx_supportlib/vendor-modified/boost/preprocessor/config/config.hpp +17 -8
  259. data/src/cxx_supportlib/vendor-modified/boost/preprocessor/stringize.hpp +4 -0
  260. data/src/cxx_supportlib/vendor-modified/boost/preprocessor/wstringize.hpp +4 -0
  261. data/src/cxx_supportlib/vendor-modified/boost/random/detail/gray_coded_qrng.hpp +166 -0
  262. data/src/cxx_supportlib/vendor-modified/boost/random/detail/niederreiter_base2_table.hpp +513 -0
  263. data/src/cxx_supportlib/vendor-modified/boost/random/detail/qrng_base.hpp +291 -0
  264. data/src/cxx_supportlib/vendor-modified/boost/random/detail/sobol_table.hpp +4106 -0
  265. data/src/cxx_supportlib/vendor-modified/boost/random/faure.hpp +367 -0
  266. data/src/cxx_supportlib/vendor-modified/boost/random/niederreiter_base2.hpp +360 -0
  267. data/src/cxx_supportlib/vendor-modified/boost/random/sobol.hpp +237 -0
  268. data/src/cxx_supportlib/vendor-modified/boost/range/as_literal.hpp +43 -0
  269. data/src/cxx_supportlib/vendor-modified/boost/range/begin.hpp +13 -5
  270. data/src/cxx_supportlib/vendor-modified/boost/range/concepts.hpp +1 -1
  271. data/src/cxx_supportlib/vendor-modified/boost/range/detail/common.hpp +1 -3
  272. data/src/cxx_supportlib/vendor-modified/boost/range/detail/implementation_help.hpp +2 -2
  273. data/src/cxx_supportlib/vendor-modified/boost/range/distance.hpp +11 -5
  274. data/src/cxx_supportlib/vendor-modified/boost/range/end.hpp +14 -6
  275. data/src/cxx_supportlib/vendor-modified/boost/range/has_range_iterator.hpp +3 -3
  276. data/src/cxx_supportlib/vendor-modified/boost/ratio/config.hpp +6 -2
  277. data/src/cxx_supportlib/vendor-modified/boost/rational.hpp +55 -37
  278. data/src/cxx_supportlib/vendor-modified/boost/regex/concepts.hpp +3 -2
  279. data/src/cxx_supportlib/vendor-modified/boost/regex/config.hpp +11 -1
  280. data/src/cxx_supportlib/vendor-modified/boost/regex/v4/basic_regex.hpp +7 -1
  281. data/src/cxx_supportlib/vendor-modified/boost/regex/v4/basic_regex_creator.hpp +3 -1
  282. data/src/cxx_supportlib/vendor-modified/boost/regex/v4/basic_regex_parser.hpp +5 -2
  283. data/src/cxx_supportlib/vendor-modified/boost/regex/v4/fileiter.hpp +0 -3
  284. data/src/cxx_supportlib/vendor-modified/boost/regex/v4/instances.hpp +15 -4
  285. data/src/cxx_supportlib/vendor-modified/boost/regex/v4/match_flags.hpp +1 -2
  286. data/src/cxx_supportlib/vendor-modified/boost/regex/v4/match_results.hpp +12 -3
  287. data/src/cxx_supportlib/vendor-modified/boost/regex/v4/perl_matcher.hpp +7 -2
  288. data/src/cxx_supportlib/vendor-modified/boost/regex/v4/perl_matcher_common.hpp +7 -3
  289. data/src/cxx_supportlib/vendor-modified/boost/regex/v4/perl_matcher_non_recursive.hpp +6 -2
  290. data/src/cxx_supportlib/vendor-modified/boost/regex/v4/regex_format.hpp +0 -5
  291. data/src/cxx_supportlib/vendor-modified/boost/regex/v4/regex_iterator.hpp +0 -8
  292. data/src/cxx_supportlib/vendor-modified/boost/regex/v4/regex_raw_buffer.hpp +3 -3
  293. data/src/cxx_supportlib/vendor-modified/boost/regex/v4/regex_split.hpp +3 -1
  294. data/src/cxx_supportlib/vendor-modified/boost/regex/v4/regex_token_iterator.hpp +0 -8
  295. data/src/cxx_supportlib/vendor-modified/boost/regex/v4/regex_traits_defaults.hpp +12 -11
  296. data/src/cxx_supportlib/vendor-modified/boost/regex/v4/regex_workaround.hpp +7 -4
  297. data/src/cxx_supportlib/vendor-modified/boost/regex/v4/u32regex_iterator.hpp +1 -9
  298. data/src/cxx_supportlib/vendor-modified/boost/regex/v4/u32regex_token_iterator.hpp +2 -10
  299. data/src/cxx_supportlib/vendor-modified/boost/regex/v4/w32_regex_traits.hpp +2 -0
  300. data/src/cxx_supportlib/vendor-modified/boost/smart_ptr/allocate_shared_array.hpp +60 -115
  301. data/src/cxx_supportlib/vendor-modified/boost/smart_ptr/detail/local_counted_base.hpp +3 -3
  302. data/src/cxx_supportlib/vendor-modified/boost/smart_ptr/detail/sp_counted_base_acc_ia64.hpp +2 -1
  303. data/src/cxx_supportlib/vendor-modified/boost/smart_ptr/detail/sp_counted_base_aix.hpp +2 -1
  304. data/src/cxx_supportlib/vendor-modified/boost/smart_ptr/detail/sp_counted_base_clang.hpp +2 -1
  305. data/src/cxx_supportlib/vendor-modified/boost/smart_ptr/detail/sp_counted_base_cw_ppc.hpp +2 -1
  306. data/src/cxx_supportlib/vendor-modified/boost/smart_ptr/detail/sp_counted_base_cw_x86.hpp +2 -1
  307. data/src/cxx_supportlib/vendor-modified/boost/smart_ptr/detail/sp_counted_base_gcc_ia64.hpp +2 -1
  308. data/src/cxx_supportlib/vendor-modified/boost/smart_ptr/detail/sp_counted_base_gcc_mips.hpp +2 -1
  309. data/src/cxx_supportlib/vendor-modified/boost/smart_ptr/detail/sp_counted_base_gcc_ppc.hpp +2 -1
  310. data/src/cxx_supportlib/vendor-modified/boost/smart_ptr/detail/sp_counted_base_gcc_sparc.hpp +2 -1
  311. data/src/cxx_supportlib/vendor-modified/boost/smart_ptr/detail/sp_counted_base_gcc_x86.hpp +2 -1
  312. data/src/cxx_supportlib/vendor-modified/boost/smart_ptr/detail/sp_counted_base_nt.hpp +2 -1
  313. data/src/cxx_supportlib/vendor-modified/boost/smart_ptr/detail/sp_counted_base_pt.hpp +2 -1
  314. data/src/cxx_supportlib/vendor-modified/boost/smart_ptr/detail/sp_counted_base_snc_ps3.hpp +2 -1
  315. data/src/cxx_supportlib/vendor-modified/boost/smart_ptr/detail/sp_counted_base_solaris.hpp +2 -1
  316. data/src/cxx_supportlib/vendor-modified/boost/smart_ptr/detail/sp_counted_base_spin.hpp +2 -1
  317. data/src/cxx_supportlib/vendor-modified/boost/smart_ptr/detail/sp_counted_base_std_atomic.hpp +2 -1
  318. data/src/cxx_supportlib/vendor-modified/boost/smart_ptr/detail/sp_counted_base_sync.hpp +2 -1
  319. data/src/cxx_supportlib/vendor-modified/boost/smart_ptr/detail/sp_counted_base_vacpp_ppc.hpp +2 -1
  320. data/src/cxx_supportlib/vendor-modified/boost/smart_ptr/detail/sp_counted_impl.hpp +3 -3
  321. data/src/cxx_supportlib/vendor-modified/boost/smart_ptr/detail/yield_k.hpp +14 -8
  322. data/src/cxx_supportlib/vendor-modified/boost/system/config.hpp +4 -24
  323. data/src/cxx_supportlib/vendor-modified/boost/system/detail/config.hpp +57 -0
  324. data/src/cxx_supportlib/vendor-modified/boost/system/detail/generic_category.hpp +101 -0
  325. data/src/cxx_supportlib/vendor-modified/boost/system/detail/std_interoperability.hpp +141 -0
  326. data/src/cxx_supportlib/vendor-modified/boost/system/detail/system_category_posix.hpp +132 -0
  327. data/src/cxx_supportlib/vendor-modified/boost/system/error_code.hpp +775 -588
  328. data/src/cxx_supportlib/vendor-modified/boost/system/system_error.hpp +4 -4
  329. data/src/cxx_supportlib/vendor-modified/boost/thread/detail/config.hpp +6 -0
  330. data/src/cxx_supportlib/vendor-modified/boost/thread/detail/move.hpp +13 -6
  331. data/src/cxx_supportlib/vendor-modified/boost/thread/detail/nullary_function.hpp +8 -3
  332. data/src/cxx_supportlib/vendor-modified/boost/thread/detail/thread.hpp +3 -1
  333. data/src/cxx_supportlib/vendor-modified/boost/thread/detail/thread_safety.hpp +160 -0
  334. data/src/cxx_supportlib/vendor-modified/boost/thread/detail/tss_hooks.hpp +2 -2
  335. data/src/cxx_supportlib/vendor-modified/boost/thread/exceptions.hpp +3 -3
  336. data/src/cxx_supportlib/vendor-modified/boost/thread/executors/basic_thread_pool.hpp +24 -1
  337. data/src/cxx_supportlib/vendor-modified/boost/thread/future.hpp +10 -1
  338. data/src/cxx_supportlib/vendor-modified/boost/thread/lock_guard.hpp +4 -4
  339. data/src/cxx_supportlib/vendor-modified/boost/thread/lockable_traits.hpp +31 -0
  340. data/src/cxx_supportlib/vendor-modified/boost/thread/pthread/condition_variable.hpp +2 -2
  341. data/src/cxx_supportlib/vendor-modified/boost/thread/pthread/condition_variable_fwd.hpp +2 -2
  342. data/src/cxx_supportlib/vendor-modified/boost/thread/pthread/mutex.hpp +8 -53
  343. data/src/cxx_supportlib/vendor-modified/boost/thread/pthread/pthread_mutex_scoped_lock.hpp +73 -4
  344. data/src/cxx_supportlib/vendor-modified/boost/thread/pthread/recursive_mutex.hpp +6 -6
  345. data/src/cxx_supportlib/vendor-modified/boost/thread/pthread/thread_data.hpp +14 -9
  346. data/src/cxx_supportlib/vendor-modified/boost/thread/xtime.hpp +6 -6
  347. data/src/cxx_supportlib/vendor-modified/boost/throw_exception.hpp +9 -8
  348. data/src/cxx_supportlib/vendor-modified/boost/token_functions.hpp +1 -0
  349. data/src/cxx_supportlib/vendor-modified/boost/type_index/stl_type_index.hpp +21 -19
  350. data/src/cxx_supportlib/vendor-modified/boost/type_traits/detail/common_arithmetic_type.hpp +3 -1
  351. data/src/cxx_supportlib/vendor-modified/boost/type_traits/detail/config.hpp +9 -0
  352. data/src/cxx_supportlib/vendor-modified/boost/type_traits/detail/detector.hpp +1 -1
  353. data/src/cxx_supportlib/vendor-modified/boost/type_traits/detail/has_postfix_operator.hpp +55 -0
  354. data/src/cxx_supportlib/vendor-modified/boost/type_traits/detail/has_prefix_operator.hpp +72 -0
  355. data/src/cxx_supportlib/vendor-modified/boost/type_traits/detail/is_function_cxx_03.hpp +108 -0
  356. data/src/cxx_supportlib/vendor-modified/boost/type_traits/detail/is_function_cxx_11.hpp +501 -0
  357. data/src/cxx_supportlib/vendor-modified/boost/type_traits/detail/is_function_msvc10_fix.hpp +30 -0
  358. data/src/cxx_supportlib/vendor-modified/boost/type_traits/detail/is_likely_lambda.hpp +2 -2
  359. data/src/cxx_supportlib/vendor-modified/boost/type_traits/detail/is_member_function_pointer_cxx_03.hpp +117 -0
  360. data/src/cxx_supportlib/vendor-modified/boost/type_traits/detail/is_member_function_pointer_cxx_11.hpp +557 -0
  361. data/src/cxx_supportlib/vendor-modified/boost/type_traits/detail/is_rvalue_reference_msvc10_fix.hpp +43 -0
  362. data/src/cxx_supportlib/vendor-modified/boost/type_traits/detected.hpp +1 -1
  363. data/src/cxx_supportlib/vendor-modified/boost/type_traits/detected_or.hpp +1 -1
  364. data/src/cxx_supportlib/vendor-modified/boost/type_traits/enable_if.hpp +37 -0
  365. data/src/cxx_supportlib/vendor-modified/boost/type_traits/has_dereference.hpp +344 -0
  366. data/src/cxx_supportlib/vendor-modified/boost/type_traits/has_minus.hpp +5 -0
  367. data/src/cxx_supportlib/vendor-modified/boost/type_traits/has_minus_assign.hpp +5 -0
  368. data/src/cxx_supportlib/vendor-modified/boost/type_traits/has_plus_assign.hpp +5 -0
  369. data/src/cxx_supportlib/vendor-modified/boost/type_traits/has_post_decrement.hpp +21 -0
  370. data/src/cxx_supportlib/vendor-modified/boost/type_traits/has_post_increment.hpp +21 -0
  371. data/src/cxx_supportlib/vendor-modified/boost/type_traits/has_pre_decrement.hpp +21 -0
  372. data/src/cxx_supportlib/vendor-modified/boost/type_traits/has_pre_increment.hpp +22 -0
  373. data/src/cxx_supportlib/vendor-modified/boost/type_traits/has_trivial_move_assign.hpp +1 -1
  374. data/src/cxx_supportlib/vendor-modified/boost/type_traits/has_trivial_move_constructor.hpp +2 -1
  375. data/src/cxx_supportlib/vendor-modified/boost/type_traits/integral_constant.hpp +5 -15
  376. data/src/cxx_supportlib/vendor-modified/boost/type_traits/intrinsics.hpp +16 -6
  377. data/src/cxx_supportlib/vendor-modified/boost/type_traits/is_complete.hpp +3 -1
  378. data/src/cxx_supportlib/vendor-modified/boost/type_traits/is_copy_assignable.hpp +3 -4
  379. data/src/cxx_supportlib/vendor-modified/boost/type_traits/is_copy_constructible.hpp +4 -6
  380. data/src/cxx_supportlib/vendor-modified/boost/type_traits/is_detected.hpp +1 -1
  381. data/src/cxx_supportlib/vendor-modified/boost/type_traits/is_detected_convertible.hpp +1 -1
  382. data/src/cxx_supportlib/vendor-modified/boost/type_traits/is_detected_exact.hpp +1 -1
  383. data/src/cxx_supportlib/vendor-modified/boost/type_traits/is_final.hpp +1 -1
  384. data/src/cxx_supportlib/vendor-modified/boost/type_traits/is_function.hpp +4 -79
  385. data/src/cxx_supportlib/vendor-modified/boost/type_traits/is_member_function_pointer.hpp +3 -97
  386. data/src/cxx_supportlib/vendor-modified/boost/type_traits/is_noncopyable.hpp +39 -0
  387. data/src/cxx_supportlib/vendor-modified/boost/type_traits/is_nothrow_move_assignable.hpp +2 -2
  388. data/src/cxx_supportlib/vendor-modified/boost/type_traits/is_nothrow_move_constructible.hpp +2 -2
  389. data/src/cxx_supportlib/vendor-modified/boost/type_traits/is_rvalue_reference.hpp +4 -0
  390. data/src/cxx_supportlib/vendor-modified/boost/type_traits/is_virtual_base_of.hpp +104 -63
  391. data/src/cxx_supportlib/vendor-modified/boost/type_traits/make_void.hpp +1 -1
  392. data/src/cxx_supportlib/vendor-modified/boost/type_traits/nonesuch.hpp +1 -1
  393. data/src/cxx_supportlib/vendor-modified/boost/typeof/constant.hpp +26 -0
  394. data/src/cxx_supportlib/vendor-modified/boost/typeof/dmc/typeof_impl.hpp +4 -4
  395. data/src/cxx_supportlib/vendor-modified/boost/typeof/encode_decode.hpp +0 -3
  396. data/src/cxx_supportlib/vendor-modified/boost/typeof/encode_decode_params.hpp +1 -1
  397. data/src/cxx_supportlib/vendor-modified/boost/typeof/int_encoding.hpp +4 -5
  398. data/src/cxx_supportlib/vendor-modified/boost/typeof/modifiers.hpp +5 -5
  399. data/src/cxx_supportlib/vendor-modified/boost/typeof/msvc/typeof_impl.hpp +9 -9
  400. data/src/cxx_supportlib/vendor-modified/boost/typeof/native.hpp +3 -3
  401. data/src/cxx_supportlib/vendor-modified/boost/typeof/pointers_data_members.hpp +2 -2
  402. data/src/cxx_supportlib/vendor-modified/boost/typeof/register_functions_iterate.hpp +6 -6
  403. data/src/cxx_supportlib/vendor-modified/boost/typeof/register_mem_functions.hpp +1 -1
  404. data/src/cxx_supportlib/vendor-modified/boost/typeof/template_encoding.hpp +4 -4
  405. data/src/cxx_supportlib/vendor-modified/boost/typeof/template_template_param.hpp +2 -2
  406. data/src/cxx_supportlib/vendor-modified/boost/typeof/type_encoding.hpp +2 -2
  407. data/src/cxx_supportlib/vendor-modified/boost/typeof/typeof_impl.hpp +16 -16
  408. data/src/cxx_supportlib/vendor-modified/boost/typeof/vector.hpp +5 -5
  409. data/src/cxx_supportlib/vendor-modified/boost/typeof/vector100.hpp +201 -201
  410. data/src/cxx_supportlib/vendor-modified/boost/typeof/vector150.hpp +301 -301
  411. data/src/cxx_supportlib/vendor-modified/boost/typeof/vector200.hpp +401 -401
  412. data/src/cxx_supportlib/vendor-modified/boost/typeof/vector50.hpp +101 -101
  413. data/src/cxx_supportlib/vendor-modified/boost/utility/detail/minstd_rand.hpp +3 -0
  414. data/src/cxx_supportlib/vendor-modified/boost/utility/string_ref.hpp +2 -0
  415. data/src/cxx_supportlib/vendor-modified/boost/utility/string_view.hpp +26 -6
  416. data/src/cxx_supportlib/vendor-modified/boost/version.hpp +2 -2
  417. data/src/helper-scripts/prespawn +1 -0
  418. data/src/nginx_module/ConfigGeneral/AutoGeneratedDefinitions.c +40 -0
  419. data/src/nginx_module/ConfigGeneral/AutoGeneratedManifestDefaultsInitialization.c +26 -0
  420. data/src/nginx_module/ConfigGeneral/AutoGeneratedSetterFuncs.c +48 -0
  421. data/src/nginx_module/Configuration.c +6 -2
  422. data/src/nginx_module/ContentHandler.c +5 -1
  423. data/src/nginx_module/LocationConfig/AutoGeneratedCreateFunction.c +15 -0
  424. data/src/nginx_module/LocationConfig/AutoGeneratedHeaderSerialization.c +15 -0
  425. data/src/nginx_module/LocationConfig/AutoGeneratedManifestGeneration.c +28 -0
  426. data/src/nginx_module/LocationConfig/AutoGeneratedMergeFunction.c +6 -0
  427. data/src/nginx_module/LocationConfig/AutoGeneratedStruct.h +11 -0
  428. data/src/nginx_module/MainConfig/AutoGeneratedCreateFunction.c +11 -0
  429. data/src/nginx_module/MainConfig/AutoGeneratedManifestGeneration.c +23 -0
  430. data/src/nginx_module/MainConfig/AutoGeneratedStruct.h +8 -0
  431. data/src/nginx_module/ngx_http_passenger_module.c +2 -0
  432. data/src/nodejs_supportlib/vendor-copy/winston/lib/winston/logger.js +0 -0
  433. data/src/ruby_native_extension/extconf.rb +7 -0
  434. data/src/ruby_supportlib/phusion_passenger.rb +7 -7
  435. data/src/ruby_supportlib/phusion_passenger/admin_tools/instance_registry.rb +8 -0
  436. data/src/ruby_supportlib/phusion_passenger/apache2/config_options.rb +23 -0
  437. data/src/ruby_supportlib/phusion_passenger/constants.rb +1 -0
  438. data/src/ruby_supportlib/phusion_passenger/loader_shared_helpers.rb +1 -3
  439. data/src/ruby_supportlib/phusion_passenger/nginx/config_options.rb +37 -0
  440. data/src/ruby_supportlib/phusion_passenger/platform_info/compiler.rb +1 -1
  441. data/src/ruby_supportlib/phusion_passenger/rack/thread_handler_extension.rb +10 -0
  442. data/src/ruby_supportlib/phusion_passenger/request_handler.rb +2 -2
  443. data/src/ruby_supportlib/phusion_passenger/request_handler/thread_handler.rb +5 -0
  444. data/src/ruby_supportlib/phusion_passenger/standalone/config_options_list.rb +11 -0
  445. data/src/ruby_supportlib/phusion_passenger/standalone/start_command/builtin_engine.rb +3 -0
  446. data/src/ruby_supportlib/phusion_passenger/standalone/start_command/nginx_engine.rb +1 -1
  447. data/src/ruby_supportlib/phusion_passenger/utils/tee_input.rb +6 -0
  448. data/src/ruby_supportlib/phusion_passenger/utils/unseekable_socket.rb +15 -11
  449. metadata +42 -8
  450. data/src/cxx_supportlib/vendor-modified/boost/call_traits.hpp +0 -20
  451. data/src/cxx_supportlib/vendor-modified/boost/detail/call_traits.hpp +0 -172
  452. data/src/cxx_supportlib/vendor-modified/boost/detail/no_exceptions_support.hpp +0 -17
  453. data/src/cxx_supportlib/vendor-modified/boost/system/detail/error_code.ipp +0 -496
@@ -132,15 +132,15 @@ shouldSimulateFailure() {
132
132
  _my_errno = errno; \
133
133
  } while ((error_expression) \
134
134
  && _my_errno == EINTR \
135
- && (!this_thread::syscalls_interruptable() \
136
- || !(_intr_requested = this_thread::interruption_requested())) \
135
+ && (!boost::this_thread::syscalls_interruptable() \
136
+ || !(_intr_requested = boost::this_thread::interruption_requested())) \
137
137
  ); \
138
138
  if (OXT_LIKELY(ctx != NULL)) { \
139
139
  ctx->syscall_interruption_lock.lock(); \
140
140
  } \
141
141
  if ((error_expression) \
142
142
  && _my_errno == EINTR \
143
- && this_thread::syscalls_interruptable() \
143
+ && boost::this_thread::syscalls_interruptable() \
144
144
  && _intr_requested) { \
145
145
  throw thread_interrupted(); \
146
146
  } \
@@ -284,8 +284,8 @@ syscalls::close(int fd) {
284
284
  }
285
285
  if (ret == -1
286
286
  && errno == EINTR
287
- && this_thread::syscalls_interruptable()
288
- && this_thread::interruption_requested()) {
287
+ && boost::this_thread::syscalls_interruptable()
288
+ && boost::this_thread::interruption_requested()) {
289
289
  throw thread_interrupted();
290
290
  } else {
291
291
  return ret;
@@ -662,8 +662,8 @@ syscalls::nanosleep(const struct timespec *req, struct timespec *rem) {
662
662
  }
663
663
  } while (ret == -1
664
664
  && e == EINTR
665
- && (!this_thread::syscalls_interruptable()
666
- || !(intr_requested = this_thread::interruption_requested()))
665
+ && (!boost::this_thread::syscalls_interruptable()
666
+ || !(intr_requested = boost::this_thread::interruption_requested()))
667
667
  );
668
668
 
669
669
  if (OXT_UNLIKELY(ctx != NULL)) {
@@ -672,7 +672,7 @@ syscalls::nanosleep(const struct timespec *req, struct timespec *rem) {
672
672
 
673
673
  if (ret == -1
674
674
  && e == EINTR
675
- && this_thread::syscalls_interruptable()
675
+ && boost::this_thread::syscalls_interruptable()
676
676
  && intr_requested) {
677
677
  throw thread_interrupted();
678
678
  }
@@ -748,14 +748,14 @@ syscalls::waitpid(pid_t pid, int *status, int options) {
748
748
  * http://stackoverflow.com/questions/20410943/segmentation-fault-when-accessing-statically-initialized-thread-variable?noredirect=1#comment30483943_20410943
749
749
  * https://bugzilla.redhat.com/show_bug.cgi?id=731228
750
750
  */
751
- __thread int this_thread::_syscalls_interruptable = 1;
751
+ __thread int boost::this_thread::_syscalls_interruptable = 1;
752
752
 
753
753
  bool
754
754
  boost::this_thread::syscalls_interruptable() {
755
755
  return _syscalls_interruptable;
756
756
  }
757
757
  #else
758
- boost::thread_specific_ptr<bool> this_thread::_syscalls_interruptable;
758
+ boost::thread_specific_ptr<bool> boost::this_thread::_syscalls_interruptable;
759
759
 
760
760
  bool
761
761
  boost::this_thread::syscalls_interruptable() {
@@ -43,7 +43,6 @@ namespace boost {
43
43
  The result is given as an \c iterator_range delimiting the match.
44
44
 
45
45
  \param Search A substring to be searched for.
46
- \param Comp An element comparison predicate
47
46
  \return An instance of the \c first_finder object
48
47
  */
49
48
  template<typename RangeT>
@@ -84,7 +83,6 @@ namespace boost {
84
83
  The result is given as an \c iterator_range delimiting the match.
85
84
 
86
85
  \param Search A substring to be searched for.
87
- \param Comp An element comparison predicate
88
86
  \return An instance of the \c last_finder object
89
87
  */
90
88
  template<typename RangeT>
@@ -124,7 +122,6 @@ namespace boost {
124
122
 
125
123
  \param Search A substring to be searched for.
126
124
  \param Nth An index of the match to be find
127
- \param Comp An element comparison predicate
128
125
  \return An instance of the \c nth_finder object
129
126
  */
130
127
  template<typename RangeT>
@@ -230,7 +227,6 @@ namespace boost {
230
227
 
231
228
  \param Begin Beginning of the range
232
229
  \param End End of the range
233
- \param Range The range.
234
230
  \return An instance of the \c range_finger object
235
231
  */
236
232
  template< typename ForwardIteratorT >
@@ -23,7 +23,6 @@
23
23
  #include <string>
24
24
  #include <vector>
25
25
  #include <boost/asio/detail/array_fwd.hpp>
26
- #include <boost/asio/detail/is_buffer_sequence.hpp>
27
26
  #include <boost/asio/detail/string_view.hpp>
28
27
  #include <boost/asio/detail/throw_exception.hpp>
29
28
  #include <boost/asio/detail/type_traits.hpp>
@@ -347,41 +346,6 @@ public:
347
346
 
348
347
  #endif // !defined(BOOST_ASIO_NO_DEPRECATED)
349
348
 
350
- /// Trait to determine whether a type satisfies the MutableBufferSequence
351
- /// requirements.
352
- template <typename T>
353
- struct is_mutable_buffer_sequence
354
- #if defined(GENERATING_DOCUMENTATION)
355
- : integral_constant<bool, automatically_determined>
356
- #else // defined(GENERATING_DOCUMENTATION)
357
- : boost::asio::detail::is_buffer_sequence<T, mutable_buffer>
358
- #endif // defined(GENERATING_DOCUMENTATION)
359
- {
360
- };
361
-
362
- /// Trait to determine whether a type satisfies the ConstBufferSequence
363
- /// requirements.
364
- template <typename T>
365
- struct is_const_buffer_sequence
366
- #if defined(GENERATING_DOCUMENTATION)
367
- : integral_constant<bool, automatically_determined>
368
- #else // defined(GENERATING_DOCUMENTATION)
369
- : boost::asio::detail::is_buffer_sequence<T, const_buffer>
370
- #endif // defined(GENERATING_DOCUMENTATION)
371
- {
372
- };
373
-
374
- /// Trait to determine whether a type satisfies the DynamicBuffer requirements.
375
- template <typename T>
376
- struct is_dynamic_buffer
377
- #if defined(GENERATING_DOCUMENTATION)
378
- : integral_constant<bool, automatically_determined>
379
- #else // defined(GENERATING_DOCUMENTATION)
380
- : boost::asio::detail::is_dynamic_buffer<T>
381
- #endif // defined(GENERATING_DOCUMENTATION)
382
- {
383
- };
384
-
385
349
  /// (Deprecated: Use the socket/descriptor wait() and async_wait() member
386
350
  /// functions.) An implementation of both the ConstBufferSequence and
387
351
  /// MutableBufferSequence concepts to represent a null buffer sequence.
@@ -1404,7 +1368,7 @@ inline BOOST_ASIO_MUTABLE_BUFFER buffer(
1404
1368
  );
1405
1369
  }
1406
1370
 
1407
- /// Create a new non-modifiable buffer that represents the given string.
1371
+ /// Create a new modifiable buffer that represents the given string.
1408
1372
  /**
1409
1373
  * @returns A mutable_buffer value equivalent to:
1410
1374
  * @code mutable_buffer(
@@ -2159,6 +2123,51 @@ inline std::size_t buffer_copy(const MutableBufferSequence& target,
2159
2123
  } // namespace asio
2160
2124
  } // namespace boost
2161
2125
 
2126
+ #include <boost/asio/detail/pop_options.hpp>
2127
+ #include <boost/asio/detail/is_buffer_sequence.hpp>
2128
+ #include <boost/asio/detail/push_options.hpp>
2129
+
2130
+ namespace boost {
2131
+ namespace asio {
2132
+
2133
+ /// Trait to determine whether a type satisfies the MutableBufferSequence
2134
+ /// requirements.
2135
+ template <typename T>
2136
+ struct is_mutable_buffer_sequence
2137
+ #if defined(GENERATING_DOCUMENTATION)
2138
+ : integral_constant<bool, automatically_determined>
2139
+ #else // defined(GENERATING_DOCUMENTATION)
2140
+ : boost::asio::detail::is_buffer_sequence<T, mutable_buffer>
2141
+ #endif // defined(GENERATING_DOCUMENTATION)
2142
+ {
2143
+ };
2144
+
2145
+ /// Trait to determine whether a type satisfies the ConstBufferSequence
2146
+ /// requirements.
2147
+ template <typename T>
2148
+ struct is_const_buffer_sequence
2149
+ #if defined(GENERATING_DOCUMENTATION)
2150
+ : integral_constant<bool, automatically_determined>
2151
+ #else // defined(GENERATING_DOCUMENTATION)
2152
+ : boost::asio::detail::is_buffer_sequence<T, const_buffer>
2153
+ #endif // defined(GENERATING_DOCUMENTATION)
2154
+ {
2155
+ };
2156
+
2157
+ /// Trait to determine whether a type satisfies the DynamicBuffer requirements.
2158
+ template <typename T>
2159
+ struct is_dynamic_buffer
2160
+ #if defined(GENERATING_DOCUMENTATION)
2161
+ : integral_constant<bool, automatically_determined>
2162
+ #else // defined(GENERATING_DOCUMENTATION)
2163
+ : boost::asio::detail::is_dynamic_buffer<T>
2164
+ #endif // defined(GENERATING_DOCUMENTATION)
2165
+ {
2166
+ };
2167
+
2168
+ } // namespace asio
2169
+ } // namespace boost
2170
+
2162
2171
  #include <boost/asio/detail/pop_options.hpp>
2163
2172
 
2164
2173
  #endif // BOOST_ASIO_BUFFER_HPP
@@ -59,7 +59,8 @@ struct is_endpoint_sequence
59
59
  /**
60
60
  * @defgroup connect boost::asio::connect
61
61
  *
62
- * @brief Establishes a socket connection by trying each endpoint in a sequence.
62
+ * @brief The @c connect function is a composed operation that establishes a
63
+ * socket connection by trying each endpoint in a sequence.
63
64
  */
64
65
  /*@{*/
65
66
 
@@ -132,8 +133,8 @@ typename Protocol::endpoint connect(
132
133
  EndpointSequence>::value>::type* = 0);
133
134
 
134
135
  #if !defined(BOOST_ASIO_NO_DEPRECATED)
135
- /// (Deprecated.) Establishes a socket connection by trying each endpoint in a
136
- /// sequence.
136
+ /// (Deprecated: Use range overload.) Establishes a socket connection by trying
137
+ /// each endpoint in a sequence.
137
138
  /**
138
139
  * This function attempts to connect a socket to one of a sequence of
139
140
  * endpoints. It does this by repeated calls to the socket's @c connect member
@@ -160,8 +161,8 @@ template
160
161
  Iterator connect(basic_socket<Protocol BOOST_ASIO_SVC_TARG>& s, Iterator begin,
161
162
  typename enable_if<!is_endpoint_sequence<Iterator>::value>::type* = 0);
162
163
 
163
- /// (Deprecated.) Establishes a socket connection by trying each endpoint in a
164
- /// sequence.
164
+ /// (Deprecated: Use range overload.) Establishes a socket connection by trying
165
+ /// each endpoint in a sequence.
165
166
  /**
166
167
  * This function attempts to connect a socket to one of a sequence of
167
168
  * endpoints. It does this by repeated calls to the socket's @c connect member
@@ -387,8 +388,8 @@ typename Protocol::endpoint connect(
387
388
  EndpointSequence>::value>::type* = 0);
388
389
 
389
390
  #if !defined(BOOST_ASIO_NO_DEPRECATED)
390
- /// (Deprecated.) Establishes a socket connection by trying each endpoint in a
391
- /// sequence.
391
+ /// (Deprecated: Use range overload.) Establishes a socket connection by trying
392
+ /// each endpoint in a sequence.
392
393
  /**
393
394
  * This function attempts to connect a socket to one of a sequence of
394
395
  * endpoints. It does this by repeated calls to the socket's @c connect member
@@ -428,8 +429,8 @@ Iterator connect(basic_socket& s,
428
429
  Iterator begin, ConnectCondition connect_condition,
429
430
  typename enable_if<!is_endpoint_sequence<Iterator>::value>::type* = 0);
430
431
 
431
- /// (Deprecated.) Establishes a socket connection by trying each endpoint in a
432
- /// sequence.
432
+ /// (Deprecated: Use range overload.) Establishes a socket connection by trying
433
+ /// each endpoint in a sequence.
433
434
  /**
434
435
  * This function attempts to connect a socket to one of a sequence of
435
436
  * endpoints. It does this by repeated calls to the socket's @c connect member
@@ -603,8 +604,8 @@ Iterator connect(basic_socket& s,
603
604
  /**
604
605
  * @defgroup async_connect boost::asio::async_connect
605
606
  *
606
- * @brief Asynchronously establishes a socket connection by trying each
607
- * endpoint in a sequence.
607
+ * @brief The @c async_connect function is a composed asynchronous operation
608
+ * that establishes a socket connection by trying each endpoint in a sequence.
608
609
  */
609
610
  /*@{*/
610
611
 
@@ -680,8 +681,8 @@ async_connect(basic_socket& s,
680
681
  EndpointSequence>::value>::type* = 0);
681
682
 
682
683
  #if !defined(BOOST_ASIO_NO_DEPRECATED)
683
- /// (Deprecated.) Asynchronously establishes a socket connection by trying each
684
- /// endpoint in a sequence.
684
+ /// (Deprecated: Use range overload.) Asynchronously establishes a socket
685
+ /// connection by trying each endpoint in a sequence.
685
686
  /**
686
687
  * This function attempts to connect a socket to one of a sequence of
687
688
  * endpoints. It does this by repeated calls to the socket's @c async_connect
@@ -887,8 +888,8 @@ async_connect(basic_socket& s,
887
888
  EndpointSequence>::value>::type* = 0);
888
889
 
889
890
  #if !defined(BOOST_ASIO_NO_DEPRECATED)
890
- /// (Deprecated.) Asynchronously establishes a socket connection by trying each
891
- /// endpoint in a sequence.
891
+ /// (Deprecated: Use range overload.) Asynchronously establishes a socket
892
+ /// connection by trying each endpoint in a sequence.
892
893
  /**
893
894
  * This function attempts to connect a socket to one of a sequence of
894
895
  * endpoints. It does this by repeated calls to the socket's @c async_connect
@@ -70,9 +70,6 @@
70
70
  # define BOOST_ASIO_MSVC _MSC_VER
71
71
  # endif // defined(BOOST_ASIO_HAS_BOOST_CONFIG) && defined(BOOST_MSVC)
72
72
  #endif // !defined(BOOST_ASIO_MSVC)
73
- #if defined(BOOST_ASIO_MSVC)
74
- # include <ciso646> // Needed for _HAS_CXX17.
75
- #endif // defined(BOOST_ASIO_MSVC)
76
73
 
77
74
  // Clang / libc++ detection.
78
75
  #if defined(__clang__)
@@ -111,6 +108,14 @@
111
108
  # define BOOST_ASIO_HAS_MOVE 1
112
109
  # endif // (_MSC_VER >= 1700)
113
110
  # endif // defined(BOOST_ASIO_MSVC)
111
+ # if defined(__INTEL_CXX11_MODE__)
112
+ # if defined(__INTEL_COMPILER) && (__INTEL_COMPILER >= 1500)
113
+ # define BOOST_ASIO_HAS_MOVE 1
114
+ # endif // defined(__INTEL_COMPILER) && (__INTEL_COMPILER >= 1500)
115
+ # if defined(__ICL) && (__ICL >= 1500)
116
+ # define BOOST_ASIO_HAS_MOVE 1
117
+ # endif // defined(__ICL) && (__ICL >= 1500)
118
+ # endif // defined(__INTEL_CXX11_MODE__)
114
119
  # endif // !defined(BOOST_ASIO_DISABLE_MOVE)
115
120
  #endif // !defined(BOOST_ASIO_HAS_MOVE)
116
121
 
@@ -229,7 +234,7 @@
229
234
  // Support noexcept on compilers known to allow it.
230
235
  #if !defined(BOOST_ASIO_NOEXCEPT)
231
236
  # if !defined(BOOST_ASIO_DISABLE_NOEXCEPT)
232
- # if (BOOST_VERSION >= 105300)
237
+ # if defined(BOOST_ASIO_HAS_BOOST_CONFIG) && (BOOST_VERSION >= 105300)
233
238
  # define BOOST_ASIO_NOEXCEPT BOOST_NOEXCEPT
234
239
  # define BOOST_ASIO_NOEXCEPT_OR_NOTHROW BOOST_NOEXCEPT_OR_NOTHROW
235
240
  # elif defined(__clang__)
@@ -759,9 +764,7 @@
759
764
  # if defined(__GNUC__)
760
765
  # if ((__GNUC__ == 4) && (__GNUC_MINOR__ >= 7)) || (__GNUC__ > 4)
761
766
  # if defined(__GXX_EXPERIMENTAL_CXX0X__)
762
- # if defined(_GLIBCXX_HAS_GTHREADS)
763
- # define BOOST_ASIO_HAS_STD_FUTURE 1
764
- # endif // defined(_GLIBCXX_HAS_GTHREADS)
767
+ # define BOOST_ASIO_HAS_STD_FUTURE 1
765
768
  # endif // defined(__GXX_EXPERIMENTAL_CXX0X__)
766
769
  # endif // ((__GNUC__ == 4) && (__GNUC_MINOR__ >= 7)) || (__GNUC__ > 4)
767
770
  # endif // defined(__GNUC__)
@@ -777,23 +780,29 @@
777
780
  #if !defined(BOOST_ASIO_HAS_STD_STRING_VIEW)
778
781
  # if !defined(BOOST_ASIO_DISABLE_STD_STRING_VIEW)
779
782
  # if defined(__clang__)
780
- # if (__cplusplus >= 201703)
781
- # if __has_include(<string_view>)
782
- # define BOOST_ASIO_HAS_STD_STRING_VIEW 1
783
- # endif // __has_include(<string_view>)
784
- # endif // (__cplusplus >= 201703)
785
- # endif // defined(__clang__)
786
- # if defined(__GNUC__)
783
+ # if defined(BOOST_ASIO_HAS_CLANG_LIBCXX)
784
+ # if (__cplusplus >= 201402)
785
+ # if __has_include(<string_view>)
786
+ # define BOOST_ASIO_HAS_STD_STRING_VIEW 1
787
+ # endif // __has_include(<string_view>)
788
+ # endif // (__cplusplus >= 201402)
789
+ # else // defined(BOOST_ASIO_HAS_CLANG_LIBCXX)
790
+ # if (__cplusplus >= 201703)
791
+ # if __has_include(<string_view>)
792
+ # define BOOST_ASIO_HAS_STD_STRING_VIEW 1
793
+ # endif // __has_include(<string_view>)
794
+ # endif // (__cplusplus >= 201703)
795
+ # endif // defined(BOOST_ASIO_HAS_CLANG_LIBCXX)
796
+ # elif defined(__GNUC__)
787
797
  # if (__GNUC__ >= 7)
788
798
  # if (__cplusplus >= 201703)
789
799
  # define BOOST_ASIO_HAS_STD_STRING_VIEW 1
790
800
  # endif // (__cplusplus >= 201703)
791
801
  # endif // (__GNUC__ >= 7)
792
- # endif // defined(__GNUC__)
793
- # if defined(BOOST_ASIO_MSVC)
794
- # if (_MSC_VER >= 1910 && _HAS_CXX17)
795
- # define BOOST_ASIO_HAS_STD_STRING_VIEW
796
- # endif // (_MSC_VER >= 1910 && _HAS_CXX17)
802
+ # elif defined(BOOST_ASIO_MSVC)
803
+ # if (_MSC_VER >= 1910 && _MSVC_LANG >= 201703)
804
+ # define BOOST_ASIO_HAS_STD_STRING_VIEW 1
805
+ # endif // (_MSC_VER >= 1910 && _MSVC_LANG >= 201703)
797
806
  # endif // defined(BOOST_ASIO_MSVC)
798
807
  # endif // !defined(BOOST_ASIO_DISABLE_STD_STRING_VIEW)
799
808
  #endif // !defined(BOOST_ASIO_HAS_STD_STRING_VIEW)
@@ -802,11 +811,21 @@
802
811
  #if !defined(BOOST_ASIO_HAS_STD_EXPERIMENTAL_STRING_VIEW)
803
812
  # if !defined(BOOST_ASIO_DISABLE_STD_EXPERIMENTAL_STRING_VIEW)
804
813
  # if defined(__clang__)
805
- # if (__cplusplus >= 201402)
806
- # if __has_include(<experimental/string_view>)
807
- # define BOOST_ASIO_HAS_STD_EXPERIMENTAL_STRING_VIEW 1
808
- # endif // __has_include(<experimental/string_view>)
809
- # endif // (__cplusplus >= 201402)
814
+ # if defined(BOOST_ASIO_HAS_CLANG_LIBCXX)
815
+ # if (_LIBCPP_VERSION < 7000)
816
+ # if (__cplusplus >= 201402)
817
+ # if __has_include(<experimental/string_view>)
818
+ # define BOOST_ASIO_HAS_STD_EXPERIMENTAL_STRING_VIEW 1
819
+ # endif // __has_include(<experimental/string_view>)
820
+ # endif // (__cplusplus >= 201402)
821
+ # endif // (_LIBCPP_VERSION < 7000)
822
+ # else // defined(BOOST_ASIO_HAS_CLANG_LIBCXX)
823
+ # if (__cplusplus >= 201402)
824
+ # if __has_include(<experimental/string_view>)
825
+ # define BOOST_ASIO_HAS_STD_EXPERIMENTAL_STRING_VIEW 1
826
+ # endif // __has_include(<experimental/string_view>)
827
+ # endif // (__cplusplus >= 201402)
828
+ # endif // // defined(BOOST_ASIO_HAS_CLANG_LIBCXX)
810
829
  # endif // defined(__clang__)
811
830
  # if defined(__GNUC__)
812
831
  # if ((__GNUC__ == 4) && (__GNUC_MINOR__ >= 9)) || (__GNUC__ > 4)
@@ -851,9 +870,9 @@
851
870
  #if !defined(BOOST_ASIO_HAS_STD_INVOKE_RESULT)
852
871
  # if !defined(BOOST_ASIO_DISABLE_STD_INVOKE_RESULT)
853
872
  # if defined(BOOST_ASIO_MSVC)
854
- # if (_MSC_VER >= 1910 && _HAS_CXX17)
873
+ # if (_MSC_VER >= 1911 && _MSVC_LANG >= 201703)
855
874
  # define BOOST_ASIO_HAS_STD_INVOKE_RESULT 1
856
- # endif // (_MSC_VER >= 1910 && _HAS_CXX17)
875
+ # endif // (_MSC_VER >= 1911 && _MSVC_LANG >= 201703)
857
876
  # endif // defined(BOOST_ASIO_MSVC)
858
877
  # endif // !defined(BOOST_ASIO_DISABLE_STD_INVOKE_RESULT)
859
878
  #endif // !defined(BOOST_ASIO_HAS_STD_INVOKE_RESULT)
@@ -0,0 +1,33 @@
1
+ //
2
+ // detail/future.hpp
3
+ // ~~~~~~~~~~~~~~~~~
4
+ //
5
+ // Copyright (c) 2003-2018 Christopher M. Kohlhoff (chris at kohlhoff dot com)
6
+ //
7
+ // Distributed under the Boost Software License, Version 1.0. (See accompanying
8
+ // file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
9
+ //
10
+
11
+ #ifndef BOOST_ASIO_DETAIL_FUTURE_HPP
12
+ #define BOOST_ASIO_DETAIL_FUTURE_HPP
13
+
14
+ #if defined(_MSC_VER) && (_MSC_VER >= 1200)
15
+ # pragma once
16
+ #endif // defined(_MSC_VER) && (_MSC_VER >= 1200)
17
+
18
+ #include <boost/asio/detail/config.hpp>
19
+ #if defined(BOOST_ASIO_HAS_STD_FUTURE)
20
+ # include <future>
21
+ // Even though the future header is available, libstdc++ may not implement the
22
+ // std::future class itself. However, we need to have already included the
23
+ // future header to reliably test for _GLIBCXX_HAS_GTHREADS.
24
+ # if defined(__GNUC__) && !defined(BOOST_ASIO_HAS_CLANG_LIBCXX)
25
+ # if defined(_GLIBCXX_HAS_GTHREADS)
26
+ # define BOOST_ASIO_HAS_STD_FUTURE_CLASS 1
27
+ # endif // defined(_GLIBCXX_HAS_GTHREADS)
28
+ # else // defined(__GNUC__) && !defined(BOOST_ASIO_HAS_CLANG_LIBCXX)
29
+ # define BOOST_ASIO_HAS_STD_FUTURE_CLASS 1
30
+ # endif // defined(__GNUC__) && !defined(BOOST_ASIO_HAS_CLANG_LIBCXX)
31
+ #endif // defined(BOOST_ASIO_HAS_STD_FUTURE)
32
+
33
+ #endif // BOOST_ASIO_DETAIL_FUTURE_HPP
@@ -2115,7 +2115,7 @@ const char* inet_ntop(int af, const void* src, char* dest, size_t length,
2115
2115
  if (result != 0 && af == BOOST_ASIO_OS_DEF(AF_INET6) && scope_id != 0)
2116
2116
  {
2117
2117
  using namespace std; // For strcat and sprintf.
2118
- char if_name[IF_NAMESIZE + 1] = "%";
2118
+ char if_name[(IF_NAMESIZE > 21 ? IF_NAMESIZE : 21) + 1] = "%";
2119
2119
  const in6_addr_type* ipv6_address = static_cast<const in6_addr_type*>(src);
2120
2120
  bool is_link_local = ((ipv6_address->s6_addr[0] == 0xfe)
2121
2121
  && ((ipv6_address->s6_addr[1] & 0xc0) == 0x80));