passenger 6.0.2 → 6.0.7

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 (468) hide show
  1. checksums.yaml +4 -4
  2. data/CHANGELOG +152 -19
  3. data/CONTRIBUTING.md +1 -1
  4. data/CONTRIBUTORS +5 -0
  5. data/bin/passenger-install-nginx-module +1 -1
  6. data/bin/passenger-memory-stats +65 -12
  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/dist/bundle.js +1 -1
  12. data/resources/templates/error_renderer/with_details/src/GetHelpView.jsx +1 -1
  13. data/resources/templates/error_renderer/with_details/src/bootstrap/bootstrap.css +0 -0
  14. data/resources/templates/error_renderer/with_details/src/bootstrap/bootstrap.js +0 -0
  15. data/resources/templates/error_renderer/with_details/src/bootstrap/config.json +0 -0
  16. data/resources/templates/standalone/http.erb +1 -0
  17. data/resources/templates/standalone/rails_asset_pipeline.erb +1 -1
  18. data/resources/templates/standalone/server.erb +1 -0
  19. data/src/agent/Core/ApplicationPool/Group/ProcessListManagement.cpp +1 -1
  20. data/src/agent/Core/ApplicationPool/Group/StateInspection.cpp +2 -0
  21. data/src/agent/Core/ApplicationPool/Implementation.cpp +0 -1
  22. data/src/agent/Core/ApplicationPool/Options.h +19 -0
  23. data/src/agent/Core/ApplicationPool/Pool/GarbageCollection.cpp +1 -1
  24. data/src/agent/Core/ApplicationPool/Pool/StateInspection.cpp +1 -1
  25. data/src/agent/Core/Config.h +15 -1
  26. data/src/agent/Core/Controller.h +1 -0
  27. data/src/agent/Core/Controller/Config.h +9 -1
  28. data/src/agent/Core/Controller/ForwardResponse.cpp +13 -0
  29. data/src/agent/Core/Controller/InitRequest.cpp +5 -0
  30. data/src/agent/Core/Controller/InitializationAndShutdown.cpp +1 -0
  31. data/src/agent/Core/CoreMain.cpp +1 -0
  32. data/src/agent/Core/OptionParser.h +3 -0
  33. data/src/agent/Core/SpawningKit/Config.h +11 -0
  34. data/src/agent/Core/SpawningKit/Config/AutoGeneratedCode.h +13 -0
  35. data/src/agent/Core/SpawningKit/Context.h +1 -0
  36. data/src/agent/Core/SpawningKit/Handshake/Prepare.h +1 -1
  37. data/src/agent/Core/SpawningKit/Handshake/WorkDir.h +5 -2
  38. data/src/agent/Core/SpawningKit/Spawner.h +1 -0
  39. data/src/agent/TempDirToucher/TempDirToucherMain.cpp +2 -0
  40. data/src/agent/Watchdog/Config.h +16 -1
  41. data/src/agent/Watchdog/WatchdogMain.cpp +7 -0
  42. data/src/apache2_module/Config.cpp +1 -1
  43. data/src/apache2_module/ConfigGeneral/AutoGeneratedDefinitions.cpp +15 -0
  44. data/src/apache2_module/ConfigGeneral/AutoGeneratedManifestDefaultsInitialization.cpp +15 -0
  45. data/src/apache2_module/ConfigGeneral/AutoGeneratedSetterFuncs.cpp +40 -0
  46. data/src/apache2_module/DirConfig/AutoGeneratedCreateFunction.cpp +10 -0
  47. data/src/apache2_module/DirConfig/AutoGeneratedHeaderSerialization.cpp +6 -0
  48. data/src/apache2_module/DirConfig/AutoGeneratedManifestGeneration.cpp +26 -0
  49. data/src/apache2_module/DirConfig/AutoGeneratedMergeFunction.cpp +14 -0
  50. data/src/apache2_module/DirConfig/AutoGeneratedStruct.h +34 -0
  51. data/src/apache2_module/Hooks.cpp +5 -0
  52. data/src/apache2_module/ServerConfig/AutoGeneratedManifestGeneration.cpp +11 -0
  53. data/src/apache2_module/ServerConfig/AutoGeneratedStruct.h +13 -0
  54. data/src/cxx_supportlib/Constants.h +4 -2
  55. data/src/cxx_supportlib/Hooks.h +1 -0
  56. data/src/cxx_supportlib/LoggingKit/Config.h +1 -0
  57. data/src/cxx_supportlib/ServerKit/HttpChunkedBodyParser.h +1 -1
  58. data/src/cxx_supportlib/SystemTools/ContainerHelpers.h +2 -2
  59. data/src/cxx_supportlib/WebSocketCommandReverseServer.h +11 -7
  60. data/src/cxx_supportlib/oxt/system_calls.cpp +10 -10
  61. data/src/cxx_supportlib/vendor-modified/boost/algorithm/string/finder.hpp +0 -4
  62. data/src/cxx_supportlib/vendor-modified/boost/asio/buffer.hpp +46 -37
  63. data/src/cxx_supportlib/vendor-modified/boost/asio/connect.hpp +16 -15
  64. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/config.hpp +45 -26
  65. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/future.hpp +33 -0
  66. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/impl/socket_ops.ipp +1 -1
  67. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/is_buffer_sequence.hpp +38 -14
  68. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/timer_queue.hpp +2 -0
  69. data/src/cxx_supportlib/vendor-modified/boost/asio/impl/io_context.hpp +1 -1
  70. data/src/cxx_supportlib/vendor-modified/boost/asio/impl/read_until.hpp +3 -1
  71. data/src/cxx_supportlib/vendor-modified/boost/asio/impl/use_future.hpp +0 -1
  72. data/src/cxx_supportlib/vendor-modified/boost/asio/ip/bad_address_cast.hpp +6 -1
  73. data/src/cxx_supportlib/vendor-modified/boost/asio/ip/basic_resolver.hpp +6 -4
  74. data/src/cxx_supportlib/vendor-modified/boost/asio/ip/basic_resolver_results.hpp +4 -4
  75. data/src/cxx_supportlib/vendor-modified/boost/asio/packaged_task.hpp +3 -3
  76. data/src/cxx_supportlib/vendor-modified/boost/asio/read.hpp +4 -4
  77. data/src/cxx_supportlib/vendor-modified/boost/asio/read_at.hpp +4 -4
  78. data/src/cxx_supportlib/vendor-modified/boost/asio/read_until.hpp +8 -6
  79. data/src/cxx_supportlib/vendor-modified/boost/asio/ssl/context_base.hpp +17 -0
  80. data/src/cxx_supportlib/vendor-modified/boost/asio/ssl/impl/context.ipp +50 -5
  81. data/src/cxx_supportlib/vendor-modified/boost/asio/ssl/stream.hpp +2 -1
  82. data/src/cxx_supportlib/vendor-modified/boost/asio/thread_pool.hpp +1 -1
  83. data/src/cxx_supportlib/vendor-modified/boost/asio/use_future.hpp +3 -2
  84. data/src/cxx_supportlib/vendor-modified/boost/asio/version.hpp +1 -1
  85. data/src/cxx_supportlib/vendor-modified/boost/asio/write.hpp +4 -3
  86. data/src/cxx_supportlib/vendor-modified/boost/asio/write_at.hpp +5 -3
  87. data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/ops_gcc_x86_dcas.hpp +13 -12
  88. data/src/cxx_supportlib/vendor-modified/boost/chrono/detail/inlined/mac/chrono.hpp +10 -10
  89. data/src/cxx_supportlib/vendor-modified/boost/chrono/detail/inlined/mac/process_cpu_clocks.hpp +34 -34
  90. data/src/cxx_supportlib/vendor-modified/boost/chrono/detail/inlined/mac/thread_clock.hpp +4 -4
  91. data/src/cxx_supportlib/vendor-modified/boost/chrono/detail/inlined/posix/chrono.hpp +8 -8
  92. data/src/cxx_supportlib/vendor-modified/boost/chrono/detail/inlined/posix/process_cpu_clocks.hpp +27 -27
  93. data/src/cxx_supportlib/vendor-modified/boost/chrono/detail/inlined/posix/thread_clock.hpp +4 -4
  94. data/src/cxx_supportlib/vendor-modified/boost/chrono/detail/system.hpp +5 -4
  95. data/src/cxx_supportlib/vendor-modified/boost/chrono/io/time_point_io.hpp +1 -1
  96. data/src/cxx_supportlib/vendor-modified/boost/circular_buffer.hpp +3 -3
  97. data/src/cxx_supportlib/vendor-modified/boost/circular_buffer/allocators.hpp +89 -0
  98. data/src/cxx_supportlib/vendor-modified/boost/circular_buffer/base.hpp +83 -74
  99. data/src/cxx_supportlib/vendor-modified/boost/circular_buffer/details.hpp +21 -33
  100. data/src/cxx_supportlib/vendor-modified/boost/circular_buffer/space_optimized.hpp +5 -5
  101. data/src/cxx_supportlib/vendor-modified/boost/concept/assert.hpp +1 -1
  102. data/src/cxx_supportlib/vendor-modified/boost/concept/detail/general.hpp +3 -3
  103. data/src/cxx_supportlib/vendor-modified/boost/concept/detail/has_constraints.hpp +3 -3
  104. data/src/cxx_supportlib/vendor-modified/boost/concept/usage.hpp +1 -1
  105. data/src/cxx_supportlib/vendor-modified/boost/concept_check.hpp +19 -19
  106. data/src/cxx_supportlib/vendor-modified/boost/config/auto_link.hpp +8 -0
  107. data/src/cxx_supportlib/vendor-modified/boost/config/compiler/borland.hpp +5 -2
  108. data/src/cxx_supportlib/vendor-modified/boost/config/compiler/clang.hpp +5 -1
  109. data/src/cxx_supportlib/vendor-modified/boost/config/compiler/codegear.hpp +6 -2
  110. data/src/cxx_supportlib/vendor-modified/boost/config/compiler/comeau.hpp +1 -1
  111. data/src/cxx_supportlib/vendor-modified/boost/config/compiler/common_edg.hpp +4 -0
  112. data/src/cxx_supportlib/vendor-modified/boost/config/compiler/cray.hpp +368 -52
  113. data/src/cxx_supportlib/vendor-modified/boost/config/compiler/digitalmars.hpp +4 -1
  114. data/src/cxx_supportlib/vendor-modified/boost/config/compiler/gcc.hpp +6 -3
  115. data/src/cxx_supportlib/vendor-modified/boost/config/compiler/gcc_xml.hpp +3 -0
  116. data/src/cxx_supportlib/vendor-modified/boost/config/compiler/greenhills.hpp +1 -1
  117. data/src/cxx_supportlib/vendor-modified/boost/config/compiler/hp_acc.hpp +1 -1
  118. data/src/cxx_supportlib/vendor-modified/boost/config/compiler/intel.hpp +6 -1
  119. data/src/cxx_supportlib/vendor-modified/boost/config/compiler/kai.hpp +1 -1
  120. data/src/cxx_supportlib/vendor-modified/boost/config/compiler/metrowerks.hpp +4 -1
  121. data/src/cxx_supportlib/vendor-modified/boost/config/compiler/mpw.hpp +4 -1
  122. data/src/cxx_supportlib/vendor-modified/boost/config/compiler/nvcc.hpp +3 -3
  123. data/src/cxx_supportlib/vendor-modified/boost/config/compiler/pathscale.hpp +3 -0
  124. data/src/cxx_supportlib/vendor-modified/boost/config/compiler/sunpro_cc.hpp +3 -0
  125. data/src/cxx_supportlib/vendor-modified/boost/config/compiler/vacpp.hpp +4 -1
  126. data/src/cxx_supportlib/vendor-modified/boost/config/compiler/visualc.hpp +9 -4
  127. data/src/cxx_supportlib/vendor-modified/boost/config/compiler/xlcpp.hpp +4 -0
  128. data/src/cxx_supportlib/vendor-modified/boost/config/compiler/xlcpp_zos.hpp +1 -0
  129. data/src/cxx_supportlib/vendor-modified/boost/config/detail/select_compiler_config.hpp +1 -2
  130. data/src/cxx_supportlib/vendor-modified/boost/config/detail/suffix.hpp +13 -0
  131. data/src/cxx_supportlib/vendor-modified/boost/config/stdlib/dinkumware.hpp +2 -2
  132. data/src/cxx_supportlib/vendor-modified/boost/config/stdlib/libcpp.hpp +14 -4
  133. data/src/cxx_supportlib/vendor-modified/boost/config/stdlib/libstdcpp3.hpp +4 -4
  134. data/src/cxx_supportlib/vendor-modified/boost/container/adaptive_pool.hpp +262 -2
  135. data/src/cxx_supportlib/vendor-modified/boost/container/allocator.hpp +4 -3
  136. data/src/cxx_supportlib/vendor-modified/boost/container/allocator_traits.hpp +1 -1
  137. data/src/cxx_supportlib/vendor-modified/boost/container/deque.hpp +7 -0
  138. data/src/cxx_supportlib/vendor-modified/boost/container/detail/adaptive_node_pool.hpp +22 -19
  139. data/src/cxx_supportlib/vendor-modified/boost/container/detail/adaptive_node_pool_impl.hpp +833 -459
  140. data/src/cxx_supportlib/vendor-modified/boost/container/detail/advanced_insert_int.hpp +24 -6
  141. data/src/cxx_supportlib/vendor-modified/boost/container/detail/allocator_version_traits.hpp +2 -1
  142. data/src/cxx_supportlib/vendor-modified/boost/container/detail/compare_functors.hpp +61 -5
  143. data/src/cxx_supportlib/vendor-modified/boost/container/detail/copy_move_algo.hpp +33 -8
  144. data/src/cxx_supportlib/vendor-modified/boost/container/detail/flat_tree.hpp +132 -41
  145. data/src/cxx_supportlib/vendor-modified/boost/container/detail/iterator.hpp +16 -0
  146. data/src/cxx_supportlib/vendor-modified/boost/container/detail/math_functions.hpp +54 -0
  147. data/src/cxx_supportlib/vendor-modified/boost/container/detail/mpl.hpp +58 -0
  148. data/src/cxx_supportlib/vendor-modified/boost/container/detail/multiallocation_chain.hpp +28 -23
  149. data/src/cxx_supportlib/vendor-modified/boost/container/detail/node_alloc_holder.hpp +167 -115
  150. data/src/cxx_supportlib/vendor-modified/boost/container/detail/pair.hpp +55 -0
  151. data/src/cxx_supportlib/vendor-modified/boost/container/detail/std_fwd.hpp +3 -0
  152. data/src/cxx_supportlib/vendor-modified/boost/container/detail/thread_mutex.hpp +181 -0
  153. data/src/cxx_supportlib/vendor-modified/boost/container/detail/tree.hpp +167 -29
  154. data/src/cxx_supportlib/vendor-modified/boost/container/detail/type_traits.hpp +2 -0
  155. data/src/cxx_supportlib/vendor-modified/boost/container/detail/variadic_templates_tools.hpp +1 -1
  156. data/src/cxx_supportlib/vendor-modified/boost/container/detail/workaround.hpp +18 -0
  157. data/src/cxx_supportlib/vendor-modified/boost/container/flat_map.hpp +389 -3
  158. data/src/cxx_supportlib/vendor-modified/boost/container/flat_set.hpp +262 -0
  159. data/src/cxx_supportlib/vendor-modified/boost/container/list.hpp +52 -8
  160. data/src/cxx_supportlib/vendor-modified/boost/container/map.hpp +364 -0
  161. data/src/cxx_supportlib/vendor-modified/boost/container/pmr/monotonic_buffer_resource.hpp +4 -2
  162. data/src/cxx_supportlib/vendor-modified/boost/container/pmr/resource_adaptor.hpp +1 -1
  163. data/src/cxx_supportlib/vendor-modified/boost/container/pmr/synchronized_pool_resource.hpp +3 -2
  164. data/src/cxx_supportlib/vendor-modified/boost/container/set.hpp +286 -6
  165. data/src/cxx_supportlib/vendor-modified/boost/container/slist.hpp +56 -8
  166. data/src/cxx_supportlib/vendor-modified/boost/container/small_vector.hpp +43 -6
  167. data/src/cxx_supportlib/vendor-modified/boost/container/stable_vector.hpp +100 -31
  168. data/src/cxx_supportlib/vendor-modified/boost/container/static_vector.hpp +2 -1
  169. data/src/cxx_supportlib/vendor-modified/boost/container/string.hpp +126 -69
  170. data/src/cxx_supportlib/vendor-modified/boost/container/vector.hpp +75 -51
  171. data/src/cxx_supportlib/vendor-modified/boost/core/empty_value.hpp +136 -0
  172. data/src/cxx_supportlib/vendor-modified/boost/core/exchange.hpp +49 -0
  173. data/src/cxx_supportlib/vendor-modified/boost/core/explicit_operator_bool.hpp +9 -0
  174. data/src/cxx_supportlib/vendor-modified/boost/core/lightweight_test.hpp +101 -130
  175. data/src/cxx_supportlib/vendor-modified/boost/core/lightweight_test_trait.hpp +2 -2
  176. data/src/cxx_supportlib/vendor-modified/boost/core/noncopyable.hpp +16 -1
  177. data/src/cxx_supportlib/vendor-modified/boost/core/quick_exit.hpp +59 -0
  178. data/src/cxx_supportlib/vendor-modified/boost/core/ref.hpp +2 -1
  179. data/src/cxx_supportlib/vendor-modified/boost/core/swap.hpp +9 -2
  180. data/src/cxx_supportlib/vendor-modified/boost/core/typeinfo.hpp +26 -10
  181. data/src/cxx_supportlib/vendor-modified/boost/date_time/compiler_config.hpp +5 -0
  182. data/src/cxx_supportlib/vendor-modified/boost/date_time/posix_time/posix_time_duration.hpp +3 -3
  183. data/src/cxx_supportlib/vendor-modified/boost/date_time/time_duration.hpp +1 -1
  184. data/src/cxx_supportlib/vendor-modified/boost/detail/basic_pointerbuf.hpp +1 -1
  185. data/src/cxx_supportlib/vendor-modified/boost/detail/indirect_traits.hpp +38 -47
  186. data/src/cxx_supportlib/vendor-modified/boost/detail/lcast_precision.hpp +5 -5
  187. data/src/cxx_supportlib/vendor-modified/boost/detail/reference_content.hpp +7 -7
  188. data/src/cxx_supportlib/vendor-modified/boost/exception/exception.hpp +62 -58
  189. data/src/cxx_supportlib/vendor-modified/boost/function.hpp +1 -1
  190. data/src/cxx_supportlib/vendor-modified/boost/function/function_base.hpp +29 -29
  191. data/src/cxx_supportlib/vendor-modified/boost/function/function_template.hpp +38 -40
  192. data/src/cxx_supportlib/vendor-modified/boost/integer/common_factor_rt.hpp +4 -4
  193. data/src/cxx_supportlib/vendor-modified/boost/intrusive/avltree_algorithms.hpp +44 -44
  194. data/src/cxx_supportlib/vendor-modified/boost/intrusive/bstree_algorithms.hpp +39 -39
  195. data/src/cxx_supportlib/vendor-modified/boost/intrusive/circular_list_algorithms.hpp +15 -15
  196. data/src/cxx_supportlib/vendor-modified/boost/intrusive/circular_slist_algorithms.hpp +7 -7
  197. data/src/cxx_supportlib/vendor-modified/boost/intrusive/derivation_value_traits.hpp +1 -1
  198. data/src/cxx_supportlib/vendor-modified/boost/intrusive/detail/any_node_and_algorithms.hpp +14 -14
  199. data/src/cxx_supportlib/vendor-modified/boost/intrusive/detail/avltree_node.hpp +9 -9
  200. data/src/cxx_supportlib/vendor-modified/boost/intrusive/detail/common_slist_algorithms.hpp +7 -7
  201. data/src/cxx_supportlib/vendor-modified/boost/intrusive/detail/list_iterator.hpp +1 -1
  202. data/src/cxx_supportlib/vendor-modified/boost/intrusive/detail/list_node.hpp +2 -2
  203. data/src/cxx_supportlib/vendor-modified/boost/intrusive/detail/node_cloner_disposer.hpp +2 -2
  204. data/src/cxx_supportlib/vendor-modified/boost/intrusive/detail/rbtree_node.hpp +6 -6
  205. data/src/cxx_supportlib/vendor-modified/boost/intrusive/detail/simple_disposers.hpp +1 -1
  206. data/src/cxx_supportlib/vendor-modified/boost/intrusive/detail/slist_iterator.hpp +1 -1
  207. data/src/cxx_supportlib/vendor-modified/boost/intrusive/detail/slist_node.hpp +1 -1
  208. data/src/cxx_supportlib/vendor-modified/boost/intrusive/detail/tree_iterator.hpp +1 -1
  209. data/src/cxx_supportlib/vendor-modified/boost/intrusive/detail/tree_node.hpp +3 -3
  210. data/src/cxx_supportlib/vendor-modified/boost/intrusive/detail/tree_value_compare.hpp +33 -14
  211. data/src/cxx_supportlib/vendor-modified/boost/intrusive/hashtable.hpp +12 -12
  212. data/src/cxx_supportlib/vendor-modified/boost/intrusive/linear_slist_algorithms.hpp +4 -4
  213. data/src/cxx_supportlib/vendor-modified/boost/intrusive/pointer_plus_bits.hpp +3 -0
  214. data/src/cxx_supportlib/vendor-modified/boost/intrusive/rbtree_algorithms.hpp +39 -39
  215. data/src/cxx_supportlib/vendor-modified/boost/intrusive/sgtree_algorithms.hpp +61 -61
  216. data/src/cxx_supportlib/vendor-modified/boost/intrusive/slist.hpp +4 -4
  217. data/src/cxx_supportlib/vendor-modified/boost/intrusive/splaytree_algorithms.hpp +66 -66
  218. data/src/cxx_supportlib/vendor-modified/boost/intrusive/treap_algorithms.hpp +54 -54
  219. data/src/cxx_supportlib/vendor-modified/boost/intrusive/unordered_set.hpp +6 -2
  220. data/src/cxx_supportlib/vendor-modified/boost/intrusive/unordered_set_hook.hpp +3 -3
  221. data/src/cxx_supportlib/vendor-modified/boost/iterator/advance.hpp +1 -1
  222. data/src/cxx_supportlib/vendor-modified/boost/iterator/distance.hpp +65 -0
  223. data/src/cxx_supportlib/vendor-modified/boost/lexical_cast.hpp +1 -1
  224. data/src/cxx_supportlib/vendor-modified/boost/lexical_cast/bad_lexical_cast.hpp +1 -1
  225. data/src/cxx_supportlib/vendor-modified/boost/lexical_cast/detail/converter_lexical.hpp +23 -23
  226. data/src/cxx_supportlib/vendor-modified/boost/lexical_cast/detail/converter_lexical_streams.hpp +4 -4
  227. data/src/cxx_supportlib/vendor-modified/boost/lexical_cast/detail/converter_numeric.hpp +13 -13
  228. data/src/cxx_supportlib/vendor-modified/boost/lexical_cast/detail/inf_nan.hpp +1 -1
  229. data/src/cxx_supportlib/vendor-modified/boost/lexical_cast/detail/is_character.hpp +5 -4
  230. data/src/cxx_supportlib/vendor-modified/boost/lexical_cast/detail/lcast_char_constants.hpp +1 -1
  231. data/src/cxx_supportlib/vendor-modified/boost/lexical_cast/detail/lcast_unsigned_converters.hpp +5 -5
  232. data/src/cxx_supportlib/vendor-modified/boost/lexical_cast/detail/widest_char.hpp +5 -2
  233. data/src/cxx_supportlib/vendor-modified/boost/lexical_cast/try_lexical_convert.hpp +18 -13
  234. data/src/cxx_supportlib/vendor-modified/boost/libs/regex/src/cregex.cpp +4 -4
  235. data/src/cxx_supportlib/vendor-modified/boost/libs/system/src/error_code.cpp +16 -5
  236. data/src/cxx_supportlib/vendor-modified/boost/libs/thread/src/future.cpp +1 -1
  237. data/src/cxx_supportlib/vendor-modified/boost/libs/thread/src/pthread/thread.cpp +14 -8
  238. data/src/cxx_supportlib/vendor-modified/boost/libs/thread/src/tss_null.cpp +2 -2
  239. data/src/cxx_supportlib/vendor-modified/boost/math/special_functions/detail/fp_traits.hpp +13 -13
  240. data/src/cxx_supportlib/vendor-modified/boost/math/special_functions/math_fwd.hpp +27 -0
  241. data/src/cxx_supportlib/vendor-modified/boost/math/tools/config.hpp +1 -1
  242. data/src/cxx_supportlib/vendor-modified/boost/move/algo/adaptive_merge.hpp +29 -6
  243. data/src/cxx_supportlib/vendor-modified/boost/move/algo/adaptive_sort.hpp +12 -3
  244. data/src/cxx_supportlib/vendor-modified/boost/move/algo/detail/adaptive_sort_merge.hpp +1 -1
  245. data/src/cxx_supportlib/vendor-modified/boost/move/algo/move.hpp +1 -1
  246. data/src/cxx_supportlib/vendor-modified/boost/move/algorithm.hpp +1 -1
  247. data/src/cxx_supportlib/vendor-modified/boost/move/core.hpp +8 -8
  248. data/src/cxx_supportlib/vendor-modified/boost/move/detail/meta_utils.hpp +2 -0
  249. data/src/cxx_supportlib/vendor-modified/boost/move/detail/type_traits.hpp +3 -3
  250. data/src/cxx_supportlib/vendor-modified/boost/mpl/assert.hpp +23 -3
  251. data/src/cxx_supportlib/vendor-modified/boost/optional/detail/experimental_traits.hpp +9 -3
  252. data/src/cxx_supportlib/vendor-modified/boost/optional/detail/old_optional_implementation.hpp +10 -11
  253. data/src/cxx_supportlib/vendor-modified/boost/optional/detail/optional_reference_spec.hpp +20 -1
  254. data/src/cxx_supportlib/vendor-modified/boost/optional/detail/optional_trivially_copyable_base.hpp +3 -3
  255. data/src/cxx_supportlib/vendor-modified/boost/optional/optional.hpp +211 -101
  256. data/src/cxx_supportlib/vendor-modified/boost/parameter/python.hpp +5 -6
  257. data/src/cxx_supportlib/vendor-modified/boost/pool/detail/mutex.hpp +119 -25
  258. data/src/cxx_supportlib/vendor-modified/boost/predef/architecture.h +1 -0
  259. data/src/cxx_supportlib/vendor-modified/boost/predef/architecture/arm.h +5 -0
  260. data/src/cxx_supportlib/vendor-modified/boost/predef/architecture/ptx.h +44 -0
  261. data/src/cxx_supportlib/vendor-modified/boost/predef/compiler.h +1 -0
  262. data/src/cxx_supportlib/vendor-modified/boost/predef/compiler/compaq.h +1 -1
  263. data/src/cxx_supportlib/vendor-modified/boost/predef/compiler/nvcc.h +73 -0
  264. data/src/cxx_supportlib/vendor-modified/boost/predef/detail/endian_compat.h +3 -1
  265. data/src/cxx_supportlib/vendor-modified/boost/predef/language.h +1 -0
  266. data/src/cxx_supportlib/vendor-modified/boost/predef/language/cuda.h +52 -0
  267. data/src/cxx_supportlib/vendor-modified/boost/predef/make.h +4 -0
  268. data/src/cxx_supportlib/vendor-modified/boost/predef/os/cygwin.h +6 -1
  269. data/src/cxx_supportlib/vendor-modified/boost/predef/other/endian.h +1 -2
  270. data/src/cxx_supportlib/vendor-modified/boost/predef/version.h +1 -1
  271. data/src/cxx_supportlib/vendor-modified/boost/preprocessor/config/config.hpp +17 -8
  272. data/src/cxx_supportlib/vendor-modified/boost/preprocessor/stringize.hpp +4 -0
  273. data/src/cxx_supportlib/vendor-modified/boost/preprocessor/wstringize.hpp +4 -0
  274. data/src/cxx_supportlib/vendor-modified/boost/random/detail/gray_coded_qrng.hpp +166 -0
  275. data/src/cxx_supportlib/vendor-modified/boost/random/detail/niederreiter_base2_table.hpp +513 -0
  276. data/src/cxx_supportlib/vendor-modified/boost/random/detail/qrng_base.hpp +291 -0
  277. data/src/cxx_supportlib/vendor-modified/boost/random/detail/sobol_table.hpp +4106 -0
  278. data/src/cxx_supportlib/vendor-modified/boost/random/faure.hpp +367 -0
  279. data/src/cxx_supportlib/vendor-modified/boost/random/niederreiter_base2.hpp +360 -0
  280. data/src/cxx_supportlib/vendor-modified/boost/random/sobol.hpp +237 -0
  281. data/src/cxx_supportlib/vendor-modified/boost/range/as_literal.hpp +43 -0
  282. data/src/cxx_supportlib/vendor-modified/boost/range/begin.hpp +13 -5
  283. data/src/cxx_supportlib/vendor-modified/boost/range/concepts.hpp +1 -1
  284. data/src/cxx_supportlib/vendor-modified/boost/range/detail/common.hpp +1 -3
  285. data/src/cxx_supportlib/vendor-modified/boost/range/detail/implementation_help.hpp +2 -2
  286. data/src/cxx_supportlib/vendor-modified/boost/range/distance.hpp +11 -5
  287. data/src/cxx_supportlib/vendor-modified/boost/range/end.hpp +14 -6
  288. data/src/cxx_supportlib/vendor-modified/boost/range/has_range_iterator.hpp +3 -3
  289. data/src/cxx_supportlib/vendor-modified/boost/ratio/config.hpp +6 -2
  290. data/src/cxx_supportlib/vendor-modified/boost/rational.hpp +55 -37
  291. data/src/cxx_supportlib/vendor-modified/boost/regex/concepts.hpp +3 -2
  292. data/src/cxx_supportlib/vendor-modified/boost/regex/config.hpp +11 -1
  293. data/src/cxx_supportlib/vendor-modified/boost/regex/v4/basic_regex.hpp +7 -1
  294. data/src/cxx_supportlib/vendor-modified/boost/regex/v4/basic_regex_creator.hpp +3 -1
  295. data/src/cxx_supportlib/vendor-modified/boost/regex/v4/basic_regex_parser.hpp +5 -2
  296. data/src/cxx_supportlib/vendor-modified/boost/regex/v4/fileiter.hpp +0 -3
  297. data/src/cxx_supportlib/vendor-modified/boost/regex/v4/instances.hpp +15 -4
  298. data/src/cxx_supportlib/vendor-modified/boost/regex/v4/match_flags.hpp +1 -2
  299. data/src/cxx_supportlib/vendor-modified/boost/regex/v4/match_results.hpp +12 -3
  300. data/src/cxx_supportlib/vendor-modified/boost/regex/v4/perl_matcher.hpp +7 -2
  301. data/src/cxx_supportlib/vendor-modified/boost/regex/v4/perl_matcher_common.hpp +7 -3
  302. data/src/cxx_supportlib/vendor-modified/boost/regex/v4/perl_matcher_non_recursive.hpp +6 -2
  303. data/src/cxx_supportlib/vendor-modified/boost/regex/v4/regex_format.hpp +0 -5
  304. data/src/cxx_supportlib/vendor-modified/boost/regex/v4/regex_iterator.hpp +0 -8
  305. data/src/cxx_supportlib/vendor-modified/boost/regex/v4/regex_raw_buffer.hpp +3 -3
  306. data/src/cxx_supportlib/vendor-modified/boost/regex/v4/regex_split.hpp +3 -1
  307. data/src/cxx_supportlib/vendor-modified/boost/regex/v4/regex_token_iterator.hpp +0 -8
  308. data/src/cxx_supportlib/vendor-modified/boost/regex/v4/regex_traits_defaults.hpp +12 -11
  309. data/src/cxx_supportlib/vendor-modified/boost/regex/v4/regex_workaround.hpp +7 -4
  310. data/src/cxx_supportlib/vendor-modified/boost/regex/v4/u32regex_iterator.hpp +1 -9
  311. data/src/cxx_supportlib/vendor-modified/boost/regex/v4/u32regex_token_iterator.hpp +2 -10
  312. data/src/cxx_supportlib/vendor-modified/boost/regex/v4/w32_regex_traits.hpp +2 -0
  313. data/src/cxx_supportlib/vendor-modified/boost/smart_ptr/allocate_shared_array.hpp +60 -115
  314. data/src/cxx_supportlib/vendor-modified/boost/smart_ptr/detail/local_counted_base.hpp +3 -3
  315. data/src/cxx_supportlib/vendor-modified/boost/smart_ptr/detail/sp_counted_base_acc_ia64.hpp +2 -1
  316. data/src/cxx_supportlib/vendor-modified/boost/smart_ptr/detail/sp_counted_base_aix.hpp +2 -1
  317. data/src/cxx_supportlib/vendor-modified/boost/smart_ptr/detail/sp_counted_base_clang.hpp +2 -1
  318. data/src/cxx_supportlib/vendor-modified/boost/smart_ptr/detail/sp_counted_base_cw_ppc.hpp +2 -1
  319. data/src/cxx_supportlib/vendor-modified/boost/smart_ptr/detail/sp_counted_base_cw_x86.hpp +2 -1
  320. data/src/cxx_supportlib/vendor-modified/boost/smart_ptr/detail/sp_counted_base_gcc_ia64.hpp +2 -1
  321. data/src/cxx_supportlib/vendor-modified/boost/smart_ptr/detail/sp_counted_base_gcc_mips.hpp +2 -1
  322. data/src/cxx_supportlib/vendor-modified/boost/smart_ptr/detail/sp_counted_base_gcc_ppc.hpp +2 -1
  323. data/src/cxx_supportlib/vendor-modified/boost/smart_ptr/detail/sp_counted_base_gcc_sparc.hpp +2 -1
  324. data/src/cxx_supportlib/vendor-modified/boost/smart_ptr/detail/sp_counted_base_gcc_x86.hpp +2 -1
  325. data/src/cxx_supportlib/vendor-modified/boost/smart_ptr/detail/sp_counted_base_nt.hpp +2 -1
  326. data/src/cxx_supportlib/vendor-modified/boost/smart_ptr/detail/sp_counted_base_pt.hpp +2 -1
  327. data/src/cxx_supportlib/vendor-modified/boost/smart_ptr/detail/sp_counted_base_snc_ps3.hpp +2 -1
  328. data/src/cxx_supportlib/vendor-modified/boost/smart_ptr/detail/sp_counted_base_solaris.hpp +2 -1
  329. data/src/cxx_supportlib/vendor-modified/boost/smart_ptr/detail/sp_counted_base_spin.hpp +2 -1
  330. data/src/cxx_supportlib/vendor-modified/boost/smart_ptr/detail/sp_counted_base_std_atomic.hpp +2 -1
  331. data/src/cxx_supportlib/vendor-modified/boost/smart_ptr/detail/sp_counted_base_sync.hpp +2 -1
  332. data/src/cxx_supportlib/vendor-modified/boost/smart_ptr/detail/sp_counted_base_vacpp_ppc.hpp +2 -1
  333. data/src/cxx_supportlib/vendor-modified/boost/smart_ptr/detail/sp_counted_impl.hpp +3 -3
  334. data/src/cxx_supportlib/vendor-modified/boost/smart_ptr/detail/yield_k.hpp +14 -8
  335. data/src/cxx_supportlib/vendor-modified/boost/system/config.hpp +4 -24
  336. data/src/cxx_supportlib/vendor-modified/boost/system/detail/config.hpp +57 -0
  337. data/src/cxx_supportlib/vendor-modified/boost/system/detail/generic_category.hpp +101 -0
  338. data/src/cxx_supportlib/vendor-modified/boost/system/detail/std_interoperability.hpp +141 -0
  339. data/src/cxx_supportlib/vendor-modified/boost/system/detail/system_category_posix.hpp +132 -0
  340. data/src/cxx_supportlib/vendor-modified/boost/system/error_code.hpp +775 -588
  341. data/src/cxx_supportlib/vendor-modified/boost/system/system_error.hpp +4 -4
  342. data/src/cxx_supportlib/vendor-modified/boost/thread/detail/config.hpp +6 -0
  343. data/src/cxx_supportlib/vendor-modified/boost/thread/detail/move.hpp +13 -6
  344. data/src/cxx_supportlib/vendor-modified/boost/thread/detail/nullary_function.hpp +8 -3
  345. data/src/cxx_supportlib/vendor-modified/boost/thread/detail/thread.hpp +3 -1
  346. data/src/cxx_supportlib/vendor-modified/boost/thread/detail/thread_safety.hpp +160 -0
  347. data/src/cxx_supportlib/vendor-modified/boost/thread/detail/tss_hooks.hpp +2 -2
  348. data/src/cxx_supportlib/vendor-modified/boost/thread/exceptions.hpp +3 -3
  349. data/src/cxx_supportlib/vendor-modified/boost/thread/executors/basic_thread_pool.hpp +24 -1
  350. data/src/cxx_supportlib/vendor-modified/boost/thread/future.hpp +10 -1
  351. data/src/cxx_supportlib/vendor-modified/boost/thread/lock_guard.hpp +4 -4
  352. data/src/cxx_supportlib/vendor-modified/boost/thread/lockable_traits.hpp +31 -0
  353. data/src/cxx_supportlib/vendor-modified/boost/thread/pthread/condition_variable.hpp +2 -2
  354. data/src/cxx_supportlib/vendor-modified/boost/thread/pthread/condition_variable_fwd.hpp +2 -2
  355. data/src/cxx_supportlib/vendor-modified/boost/thread/pthread/mutex.hpp +8 -53
  356. data/src/cxx_supportlib/vendor-modified/boost/thread/pthread/pthread_mutex_scoped_lock.hpp +73 -4
  357. data/src/cxx_supportlib/vendor-modified/boost/thread/pthread/recursive_mutex.hpp +6 -6
  358. data/src/cxx_supportlib/vendor-modified/boost/thread/pthread/thread_data.hpp +14 -9
  359. data/src/cxx_supportlib/vendor-modified/boost/thread/xtime.hpp +6 -6
  360. data/src/cxx_supportlib/vendor-modified/boost/throw_exception.hpp +9 -8
  361. data/src/cxx_supportlib/vendor-modified/boost/token_functions.hpp +1 -0
  362. data/src/cxx_supportlib/vendor-modified/boost/type_index/stl_type_index.hpp +21 -19
  363. data/src/cxx_supportlib/vendor-modified/boost/type_traits/detail/common_arithmetic_type.hpp +3 -1
  364. data/src/cxx_supportlib/vendor-modified/boost/type_traits/detail/config.hpp +9 -0
  365. data/src/cxx_supportlib/vendor-modified/boost/type_traits/detail/detector.hpp +1 -1
  366. data/src/cxx_supportlib/vendor-modified/boost/type_traits/detail/has_postfix_operator.hpp +55 -0
  367. data/src/cxx_supportlib/vendor-modified/boost/type_traits/detail/has_prefix_operator.hpp +72 -0
  368. data/src/cxx_supportlib/vendor-modified/boost/type_traits/detail/is_function_cxx_03.hpp +108 -0
  369. data/src/cxx_supportlib/vendor-modified/boost/type_traits/detail/is_function_cxx_11.hpp +501 -0
  370. data/src/cxx_supportlib/vendor-modified/boost/type_traits/detail/is_function_msvc10_fix.hpp +30 -0
  371. data/src/cxx_supportlib/vendor-modified/boost/type_traits/detail/is_likely_lambda.hpp +2 -2
  372. data/src/cxx_supportlib/vendor-modified/boost/type_traits/detail/is_member_function_pointer_cxx_03.hpp +117 -0
  373. data/src/cxx_supportlib/vendor-modified/boost/type_traits/detail/is_member_function_pointer_cxx_11.hpp +557 -0
  374. data/src/cxx_supportlib/vendor-modified/boost/type_traits/detail/is_rvalue_reference_msvc10_fix.hpp +43 -0
  375. data/src/cxx_supportlib/vendor-modified/boost/type_traits/detected.hpp +1 -1
  376. data/src/cxx_supportlib/vendor-modified/boost/type_traits/detected_or.hpp +1 -1
  377. data/src/cxx_supportlib/vendor-modified/boost/type_traits/enable_if.hpp +37 -0
  378. data/src/cxx_supportlib/vendor-modified/boost/type_traits/has_dereference.hpp +344 -0
  379. data/src/cxx_supportlib/vendor-modified/boost/type_traits/has_minus.hpp +5 -0
  380. data/src/cxx_supportlib/vendor-modified/boost/type_traits/has_minus_assign.hpp +5 -0
  381. data/src/cxx_supportlib/vendor-modified/boost/type_traits/has_plus_assign.hpp +5 -0
  382. data/src/cxx_supportlib/vendor-modified/boost/type_traits/has_post_decrement.hpp +21 -0
  383. data/src/cxx_supportlib/vendor-modified/boost/type_traits/has_post_increment.hpp +21 -0
  384. data/src/cxx_supportlib/vendor-modified/boost/type_traits/has_pre_decrement.hpp +21 -0
  385. data/src/cxx_supportlib/vendor-modified/boost/type_traits/has_pre_increment.hpp +22 -0
  386. data/src/cxx_supportlib/vendor-modified/boost/type_traits/has_trivial_move_assign.hpp +1 -1
  387. data/src/cxx_supportlib/vendor-modified/boost/type_traits/has_trivial_move_constructor.hpp +2 -1
  388. data/src/cxx_supportlib/vendor-modified/boost/type_traits/integral_constant.hpp +5 -15
  389. data/src/cxx_supportlib/vendor-modified/boost/type_traits/intrinsics.hpp +16 -6
  390. data/src/cxx_supportlib/vendor-modified/boost/type_traits/is_complete.hpp +3 -1
  391. data/src/cxx_supportlib/vendor-modified/boost/type_traits/is_copy_assignable.hpp +3 -4
  392. data/src/cxx_supportlib/vendor-modified/boost/type_traits/is_copy_constructible.hpp +4 -6
  393. data/src/cxx_supportlib/vendor-modified/boost/type_traits/is_detected.hpp +1 -1
  394. data/src/cxx_supportlib/vendor-modified/boost/type_traits/is_detected_convertible.hpp +1 -1
  395. data/src/cxx_supportlib/vendor-modified/boost/type_traits/is_detected_exact.hpp +1 -1
  396. data/src/cxx_supportlib/vendor-modified/boost/type_traits/is_final.hpp +1 -1
  397. data/src/cxx_supportlib/vendor-modified/boost/type_traits/is_function.hpp +4 -79
  398. data/src/cxx_supportlib/vendor-modified/boost/type_traits/is_member_function_pointer.hpp +3 -97
  399. data/src/cxx_supportlib/vendor-modified/boost/type_traits/is_noncopyable.hpp +39 -0
  400. data/src/cxx_supportlib/vendor-modified/boost/type_traits/is_nothrow_move_assignable.hpp +2 -2
  401. data/src/cxx_supportlib/vendor-modified/boost/type_traits/is_nothrow_move_constructible.hpp +2 -2
  402. data/src/cxx_supportlib/vendor-modified/boost/type_traits/is_rvalue_reference.hpp +4 -0
  403. data/src/cxx_supportlib/vendor-modified/boost/type_traits/is_virtual_base_of.hpp +104 -63
  404. data/src/cxx_supportlib/vendor-modified/boost/type_traits/make_void.hpp +1 -1
  405. data/src/cxx_supportlib/vendor-modified/boost/type_traits/nonesuch.hpp +1 -1
  406. data/src/cxx_supportlib/vendor-modified/boost/typeof/constant.hpp +26 -0
  407. data/src/cxx_supportlib/vendor-modified/boost/typeof/dmc/typeof_impl.hpp +4 -4
  408. data/src/cxx_supportlib/vendor-modified/boost/typeof/encode_decode.hpp +0 -3
  409. data/src/cxx_supportlib/vendor-modified/boost/typeof/encode_decode_params.hpp +1 -1
  410. data/src/cxx_supportlib/vendor-modified/boost/typeof/int_encoding.hpp +4 -5
  411. data/src/cxx_supportlib/vendor-modified/boost/typeof/modifiers.hpp +5 -5
  412. data/src/cxx_supportlib/vendor-modified/boost/typeof/msvc/typeof_impl.hpp +9 -9
  413. data/src/cxx_supportlib/vendor-modified/boost/typeof/native.hpp +3 -3
  414. data/src/cxx_supportlib/vendor-modified/boost/typeof/pointers_data_members.hpp +2 -2
  415. data/src/cxx_supportlib/vendor-modified/boost/typeof/register_functions_iterate.hpp +6 -6
  416. data/src/cxx_supportlib/vendor-modified/boost/typeof/register_mem_functions.hpp +1 -1
  417. data/src/cxx_supportlib/vendor-modified/boost/typeof/template_encoding.hpp +4 -4
  418. data/src/cxx_supportlib/vendor-modified/boost/typeof/template_template_param.hpp +2 -2
  419. data/src/cxx_supportlib/vendor-modified/boost/typeof/type_encoding.hpp +2 -2
  420. data/src/cxx_supportlib/vendor-modified/boost/typeof/typeof_impl.hpp +16 -16
  421. data/src/cxx_supportlib/vendor-modified/boost/typeof/vector.hpp +5 -5
  422. data/src/cxx_supportlib/vendor-modified/boost/typeof/vector100.hpp +201 -201
  423. data/src/cxx_supportlib/vendor-modified/boost/typeof/vector150.hpp +301 -301
  424. data/src/cxx_supportlib/vendor-modified/boost/typeof/vector200.hpp +401 -401
  425. data/src/cxx_supportlib/vendor-modified/boost/typeof/vector50.hpp +101 -101
  426. data/src/cxx_supportlib/vendor-modified/boost/utility/detail/minstd_rand.hpp +3 -0
  427. data/src/cxx_supportlib/vendor-modified/boost/utility/string_ref.hpp +2 -0
  428. data/src/cxx_supportlib/vendor-modified/boost/utility/string_view.hpp +26 -6
  429. data/src/cxx_supportlib/vendor-modified/boost/version.hpp +2 -2
  430. data/src/cxx_supportlib/vendor-modified/modp_b64_data.h +0 -4
  431. data/src/cxx_supportlib/vendor-modified/modp_b64_strict_aliasing.cpp +5 -1
  432. data/src/helper-scripts/node-loader.js +1 -1
  433. data/src/helper-scripts/prespawn +1 -0
  434. data/src/nginx_module/ConfigGeneral/AutoGeneratedDefinitions.c +40 -0
  435. data/src/nginx_module/ConfigGeneral/AutoGeneratedManifestDefaultsInitialization.c +27 -0
  436. data/src/nginx_module/ConfigGeneral/AutoGeneratedSetterFuncs.c +48 -0
  437. data/src/nginx_module/Configuration.c +14 -1
  438. data/src/nginx_module/ContentHandler.c +5 -1
  439. data/src/nginx_module/LocationConfig/AutoGeneratedCreateFunction.c +21 -0
  440. data/src/nginx_module/LocationConfig/AutoGeneratedHeaderSerialization.c +30 -0
  441. data/src/nginx_module/LocationConfig/AutoGeneratedManifestGeneration.c +42 -0
  442. data/src/nginx_module/LocationConfig/AutoGeneratedMergeFunction.c +9 -0
  443. data/src/nginx_module/LocationConfig/AutoGeneratedStruct.h +15 -0
  444. data/src/nginx_module/MainConfig/AutoGeneratedCreateFunction.c +6 -0
  445. data/src/nginx_module/MainConfig/AutoGeneratedManifestGeneration.c +12 -0
  446. data/src/nginx_module/MainConfig/AutoGeneratedStruct.h +4 -0
  447. data/src/nginx_module/ngx_http_passenger_module.c +3 -2
  448. data/src/nodejs_supportlib/vendor-copy/winston/lib/winston/logger.js +0 -0
  449. data/src/ruby_supportlib/phusion_passenger.rb +8 -8
  450. data/src/ruby_supportlib/phusion_passenger/admin_tools/memory_stats.rb +1 -1
  451. data/src/ruby_supportlib/phusion_passenger/apache2/config_options.rb +22 -0
  452. data/src/ruby_supportlib/phusion_passenger/constants.rb +3 -1
  453. data/src/ruby_supportlib/phusion_passenger/loader_shared_helpers.rb +4 -2
  454. data/src/ruby_supportlib/phusion_passenger/nginx/config_options.rb +35 -0
  455. data/src/ruby_supportlib/phusion_passenger/platform_info/apache.rb +1 -1
  456. data/src/ruby_supportlib/phusion_passenger/platform_info/compiler.rb +1 -1
  457. data/src/ruby_supportlib/phusion_passenger/rack/thread_handler_extension.rb +10 -0
  458. data/src/ruby_supportlib/phusion_passenger/request_handler.rb +7 -6
  459. data/src/ruby_supportlib/phusion_passenger/request_handler/thread_handler.rb +5 -0
  460. data/src/ruby_supportlib/phusion_passenger/standalone/config_options_list.rb +13 -0
  461. data/src/ruby_supportlib/phusion_passenger/standalone/start_command/builtin_engine.rb +4 -2
  462. data/src/ruby_supportlib/phusion_passenger/standalone/start_command/nginx_engine.rb +1 -1
  463. data/src/ruby_supportlib/phusion_passenger/utils/unseekable_socket.rb +15 -11
  464. metadata +42 -8
  465. data/src/cxx_supportlib/vendor-modified/boost/call_traits.hpp +0 -20
  466. data/src/cxx_supportlib/vendor-modified/boost/detail/call_traits.hpp +0 -172
  467. data/src/cxx_supportlib/vendor-modified/boost/detail/no_exceptions_support.hpp +0 -17
  468. data/src/cxx_supportlib/vendor-modified/boost/system/detail/error_code.ipp +0 -496
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: passenger
3
3
  version: !ruby/object:Gem::Version
4
- version: 6.0.2
4
+ version: 6.0.7
5
5
  platform: ruby
6
6
  authors:
7
7
  - Phusion - http://www.phusion.nl/
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2019-02-23 00:00:00.000000000 Z
11
+ date: 2020-11-12 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: rake
@@ -832,6 +832,7 @@ files:
832
832
  - src/cxx_supportlib/vendor-modified/boost/asio/detail/fd_set_adapter.hpp
833
833
  - src/cxx_supportlib/vendor-modified/boost/asio/detail/fenced_block.hpp
834
834
  - src/cxx_supportlib/vendor-modified/boost/asio/detail/functional.hpp
835
+ - src/cxx_supportlib/vendor-modified/boost/asio/detail/future.hpp
835
836
  - src/cxx_supportlib/vendor-modified/boost/asio/detail/gcc_arm_fenced_block.hpp
836
837
  - src/cxx_supportlib/vendor-modified/boost/asio/detail/gcc_hppa_fenced_block.hpp
837
838
  - src/cxx_supportlib/vendor-modified/boost/asio/detail/gcc_sync_fenced_block.hpp
@@ -1282,7 +1283,6 @@ files:
1282
1283
  - src/cxx_supportlib/vendor-modified/boost/bind/placeholders.hpp
1283
1284
  - src/cxx_supportlib/vendor-modified/boost/bind/protect.hpp
1284
1285
  - src/cxx_supportlib/vendor-modified/boost/bind/storage.hpp
1285
- - src/cxx_supportlib/vendor-modified/boost/call_traits.hpp
1286
1286
  - src/cxx_supportlib/vendor-modified/boost/cerrno.hpp
1287
1287
  - src/cxx_supportlib/vendor-modified/boost/checked_delete.hpp
1288
1288
  - src/cxx_supportlib/vendor-modified/boost/chrono.hpp
@@ -1331,6 +1331,7 @@ files:
1331
1331
  - src/cxx_supportlib/vendor-modified/boost/chrono/typeof/boost/chrono/chrono.hpp
1332
1332
  - src/cxx_supportlib/vendor-modified/boost/chrono/typeof/boost/ratio.hpp
1333
1333
  - src/cxx_supportlib/vendor-modified/boost/circular_buffer.hpp
1334
+ - src/cxx_supportlib/vendor-modified/boost/circular_buffer/allocators.hpp
1334
1335
  - src/cxx_supportlib/vendor-modified/boost/circular_buffer/base.hpp
1335
1336
  - src/cxx_supportlib/vendor-modified/boost/circular_buffer/debug.hpp
1336
1337
  - src/cxx_supportlib/vendor-modified/boost/circular_buffer/details.hpp
@@ -1477,6 +1478,7 @@ files:
1477
1478
  - src/cxx_supportlib/vendor-modified/boost/container/detail/pool_resource.hpp
1478
1479
  - src/cxx_supportlib/vendor-modified/boost/container/detail/singleton.hpp
1479
1480
  - src/cxx_supportlib/vendor-modified/boost/container/detail/std_fwd.hpp
1481
+ - src/cxx_supportlib/vendor-modified/boost/container/detail/thread_mutex.hpp
1480
1482
  - src/cxx_supportlib/vendor-modified/boost/container/detail/transform_iterator.hpp
1481
1483
  - src/cxx_supportlib/vendor-modified/boost/container/detail/tree.hpp
1482
1484
  - src/cxx_supportlib/vendor-modified/boost/container/detail/type_traits.hpp
@@ -1533,7 +1535,9 @@ files:
1533
1535
  - src/cxx_supportlib/vendor-modified/boost/core/addressof.hpp
1534
1536
  - src/cxx_supportlib/vendor-modified/boost/core/checked_delete.hpp
1535
1537
  - src/cxx_supportlib/vendor-modified/boost/core/demangle.hpp
1538
+ - src/cxx_supportlib/vendor-modified/boost/core/empty_value.hpp
1536
1539
  - src/cxx_supportlib/vendor-modified/boost/core/enable_if.hpp
1540
+ - src/cxx_supportlib/vendor-modified/boost/core/exchange.hpp
1537
1541
  - src/cxx_supportlib/vendor-modified/boost/core/explicit_operator_bool.hpp
1538
1542
  - src/cxx_supportlib/vendor-modified/boost/core/ignore_unused.hpp
1539
1543
  - src/cxx_supportlib/vendor-modified/boost/core/is_same.hpp
@@ -1543,6 +1547,7 @@ files:
1543
1547
  - src/cxx_supportlib/vendor-modified/boost/core/noncopyable.hpp
1544
1548
  - src/cxx_supportlib/vendor-modified/boost/core/null_deleter.hpp
1545
1549
  - src/cxx_supportlib/vendor-modified/boost/core/pointer_traits.hpp
1550
+ - src/cxx_supportlib/vendor-modified/boost/core/quick_exit.hpp
1546
1551
  - src/cxx_supportlib/vendor-modified/boost/core/ref.hpp
1547
1552
  - src/cxx_supportlib/vendor-modified/boost/core/scoped_enum.hpp
1548
1553
  - src/cxx_supportlib/vendor-modified/boost/core/swap.hpp
@@ -1656,14 +1661,12 @@ files:
1656
1661
  - src/cxx_supportlib/vendor-modified/boost/date_time/year_month_day.hpp
1657
1662
  - src/cxx_supportlib/vendor-modified/boost/detail/atomic_count.hpp
1658
1663
  - src/cxx_supportlib/vendor-modified/boost/detail/basic_pointerbuf.hpp
1659
- - src/cxx_supportlib/vendor-modified/boost/detail/call_traits.hpp
1660
1664
  - src/cxx_supportlib/vendor-modified/boost/detail/container_fwd.hpp
1661
1665
  - src/cxx_supportlib/vendor-modified/boost/detail/endian.hpp
1662
1666
  - src/cxx_supportlib/vendor-modified/boost/detail/fenv.hpp
1663
1667
  - src/cxx_supportlib/vendor-modified/boost/detail/indirect_traits.hpp
1664
1668
  - src/cxx_supportlib/vendor-modified/boost/detail/iterator.hpp
1665
1669
  - src/cxx_supportlib/vendor-modified/boost/detail/lcast_precision.hpp
1666
- - src/cxx_supportlib/vendor-modified/boost/detail/no_exceptions_support.hpp
1667
1670
  - src/cxx_supportlib/vendor-modified/boost/detail/reference_content.hpp
1668
1671
  - src/cxx_supportlib/vendor-modified/boost/detail/select_type.hpp
1669
1672
  - src/cxx_supportlib/vendor-modified/boost/detail/sp_typeinfo.hpp
@@ -1822,6 +1825,7 @@ files:
1822
1825
  - src/cxx_supportlib/vendor-modified/boost/iterator/detail/config_undef.hpp
1823
1826
  - src/cxx_supportlib/vendor-modified/boost/iterator/detail/enable_if.hpp
1824
1827
  - src/cxx_supportlib/vendor-modified/boost/iterator/detail/facade_iterator_category.hpp
1828
+ - src/cxx_supportlib/vendor-modified/boost/iterator/distance.hpp
1825
1829
  - src/cxx_supportlib/vendor-modified/boost/iterator/interoperable.hpp
1826
1830
  - src/cxx_supportlib/vendor-modified/boost/iterator/iterator_adaptor.hpp
1827
1831
  - src/cxx_supportlib/vendor-modified/boost/iterator/iterator_categories.hpp
@@ -3068,6 +3072,7 @@ files:
3068
3072
  - src/cxx_supportlib/vendor-modified/boost/predef/architecture/mips.h
3069
3073
  - src/cxx_supportlib/vendor-modified/boost/predef/architecture/parisc.h
3070
3074
  - src/cxx_supportlib/vendor-modified/boost/predef/architecture/ppc.h
3075
+ - src/cxx_supportlib/vendor-modified/boost/predef/architecture/ptx.h
3071
3076
  - src/cxx_supportlib/vendor-modified/boost/predef/architecture/pyramid.h
3072
3077
  - src/cxx_supportlib/vendor-modified/boost/predef/architecture/rs6k.h
3073
3078
  - src/cxx_supportlib/vendor-modified/boost/predef/architecture/sparc.h
@@ -3101,6 +3106,7 @@ files:
3101
3106
  - src/cxx_supportlib/vendor-modified/boost/predef/compiler/metrowerks.h
3102
3107
  - src/cxx_supportlib/vendor-modified/boost/predef/compiler/microtec.h
3103
3108
  - src/cxx_supportlib/vendor-modified/boost/predef/compiler/mpw.h
3109
+ - src/cxx_supportlib/vendor-modified/boost/predef/compiler/nvcc.h
3104
3110
  - src/cxx_supportlib/vendor-modified/boost/predef/compiler/palm.h
3105
3111
  - src/cxx_supportlib/vendor-modified/boost/predef/compiler/pgi.h
3106
3112
  - src/cxx_supportlib/vendor-modified/boost/predef/compiler/sgi_mipspro.h
@@ -3127,6 +3133,7 @@ files:
3127
3133
  - src/cxx_supportlib/vendor-modified/boost/predef/hardware/simd/x86_amd.h
3128
3134
  - src/cxx_supportlib/vendor-modified/boost/predef/hardware/simd/x86_amd/versions.h
3129
3135
  - src/cxx_supportlib/vendor-modified/boost/predef/language.h
3136
+ - src/cxx_supportlib/vendor-modified/boost/predef/language/cuda.h
3130
3137
  - src/cxx_supportlib/vendor-modified/boost/predef/language/objc.h
3131
3138
  - src/cxx_supportlib/vendor-modified/boost/predef/language/stdc.h
3132
3139
  - src/cxx_supportlib/vendor-modified/boost/predef/language/stdcpp.h
@@ -3476,22 +3483,27 @@ files:
3476
3483
  - src/cxx_supportlib/vendor-modified/boost/random/detail/enable_warnings.hpp
3477
3484
  - src/cxx_supportlib/vendor-modified/boost/random/detail/generator_bits.hpp
3478
3485
  - src/cxx_supportlib/vendor-modified/boost/random/detail/generator_seed_seq.hpp
3486
+ - src/cxx_supportlib/vendor-modified/boost/random/detail/gray_coded_qrng.hpp
3479
3487
  - src/cxx_supportlib/vendor-modified/boost/random/detail/int_float_pair.hpp
3480
3488
  - src/cxx_supportlib/vendor-modified/boost/random/detail/integer_log2.hpp
3481
3489
  - src/cxx_supportlib/vendor-modified/boost/random/detail/iterator_mixin.hpp
3482
3490
  - src/cxx_supportlib/vendor-modified/boost/random/detail/large_arithmetic.hpp
3491
+ - src/cxx_supportlib/vendor-modified/boost/random/detail/niederreiter_base2_table.hpp
3483
3492
  - src/cxx_supportlib/vendor-modified/boost/random/detail/operators.hpp
3484
3493
  - src/cxx_supportlib/vendor-modified/boost/random/detail/polynomial.hpp
3485
3494
  - src/cxx_supportlib/vendor-modified/boost/random/detail/ptr_helper.hpp
3495
+ - src/cxx_supportlib/vendor-modified/boost/random/detail/qrng_base.hpp
3486
3496
  - src/cxx_supportlib/vendor-modified/boost/random/detail/seed.hpp
3487
3497
  - src/cxx_supportlib/vendor-modified/boost/random/detail/seed_impl.hpp
3488
3498
  - src/cxx_supportlib/vendor-modified/boost/random/detail/signed_unsigned_tools.hpp
3499
+ - src/cxx_supportlib/vendor-modified/boost/random/detail/sobol_table.hpp
3489
3500
  - src/cxx_supportlib/vendor-modified/boost/random/detail/uniform_int_float.hpp
3490
3501
  - src/cxx_supportlib/vendor-modified/boost/random/detail/vector_io.hpp
3491
3502
  - src/cxx_supportlib/vendor-modified/boost/random/discard_block.hpp
3492
3503
  - src/cxx_supportlib/vendor-modified/boost/random/discrete_distribution.hpp
3493
3504
  - src/cxx_supportlib/vendor-modified/boost/random/exponential_distribution.hpp
3494
3505
  - src/cxx_supportlib/vendor-modified/boost/random/extreme_value_distribution.hpp
3506
+ - src/cxx_supportlib/vendor-modified/boost/random/faure.hpp
3495
3507
  - src/cxx_supportlib/vendor-modified/boost/random/fisher_f_distribution.hpp
3496
3508
  - src/cxx_supportlib/vendor-modified/boost/random/gamma_distribution.hpp
3497
3509
  - src/cxx_supportlib/vendor-modified/boost/random/generate_canonical.hpp
@@ -3506,6 +3518,7 @@ files:
3506
3518
  - src/cxx_supportlib/vendor-modified/boost/random/lognormal_distribution.hpp
3507
3519
  - src/cxx_supportlib/vendor-modified/boost/random/mersenne_twister.hpp
3508
3520
  - src/cxx_supportlib/vendor-modified/boost/random/negative_binomial_distribution.hpp
3521
+ - src/cxx_supportlib/vendor-modified/boost/random/niederreiter_base2.hpp
3509
3522
  - src/cxx_supportlib/vendor-modified/boost/random/non_central_chi_squared_distribution.hpp
3510
3523
  - src/cxx_supportlib/vendor-modified/boost/random/normal_distribution.hpp
3511
3524
  - src/cxx_supportlib/vendor-modified/boost/random/piecewise_constant_distribution.hpp
@@ -3517,6 +3530,7 @@ files:
3517
3530
  - src/cxx_supportlib/vendor-modified/boost/random/seed_seq.hpp
3518
3531
  - src/cxx_supportlib/vendor-modified/boost/random/shuffle_order.hpp
3519
3532
  - src/cxx_supportlib/vendor-modified/boost/random/shuffle_output.hpp
3533
+ - src/cxx_supportlib/vendor-modified/boost/random/sobol.hpp
3520
3534
  - src/cxx_supportlib/vendor-modified/boost/random/student_t_distribution.hpp
3521
3535
  - src/cxx_supportlib/vendor-modified/boost/random/subtract_with_carry.hpp
3522
3536
  - src/cxx_supportlib/vendor-modified/boost/random/taus88.hpp
@@ -3724,7 +3738,10 @@ files:
3724
3738
  - src/cxx_supportlib/vendor-modified/boost/swap.hpp
3725
3739
  - src/cxx_supportlib/vendor-modified/boost/system/api_config.hpp
3726
3740
  - src/cxx_supportlib/vendor-modified/boost/system/config.hpp
3727
- - src/cxx_supportlib/vendor-modified/boost/system/detail/error_code.ipp
3741
+ - src/cxx_supportlib/vendor-modified/boost/system/detail/config.hpp
3742
+ - src/cxx_supportlib/vendor-modified/boost/system/detail/generic_category.hpp
3743
+ - src/cxx_supportlib/vendor-modified/boost/system/detail/std_interoperability.hpp
3744
+ - src/cxx_supportlib/vendor-modified/boost/system/detail/system_category_posix.hpp
3728
3745
  - src/cxx_supportlib/vendor-modified/boost/system/error_code.hpp
3729
3746
  - src/cxx_supportlib/vendor-modified/boost/system/system_error.hpp
3730
3747
  - src/cxx_supportlib/vendor-modified/boost/thread.hpp
@@ -3787,6 +3804,7 @@ files:
3787
3804
  - src/cxx_supportlib/vendor-modified/boost/thread/detail/thread_group.hpp
3788
3805
  - src/cxx_supportlib/vendor-modified/boost/thread/detail/thread_heap_alloc.hpp
3789
3806
  - src/cxx_supportlib/vendor-modified/boost/thread/detail/thread_interruption.hpp
3807
+ - src/cxx_supportlib/vendor-modified/boost/thread/detail/thread_safety.hpp
3790
3808
  - src/cxx_supportlib/vendor-modified/boost/thread/detail/tss_hooks.hpp
3791
3809
  - src/cxx_supportlib/vendor-modified/boost/thread/detail/variadic_footer.hpp
3792
3810
  - src/cxx_supportlib/vendor-modified/boost/thread/detail/variadic_header.hpp
@@ -3925,16 +3943,23 @@ files:
3925
3943
  - src/cxx_supportlib/vendor-modified/boost/type_traits/detail/ice_eq.hpp
3926
3944
  - src/cxx_supportlib/vendor-modified/boost/type_traits/detail/ice_not.hpp
3927
3945
  - src/cxx_supportlib/vendor-modified/boost/type_traits/detail/ice_or.hpp
3946
+ - src/cxx_supportlib/vendor-modified/boost/type_traits/detail/is_function_cxx_03.hpp
3947
+ - src/cxx_supportlib/vendor-modified/boost/type_traits/detail/is_function_cxx_11.hpp
3948
+ - src/cxx_supportlib/vendor-modified/boost/type_traits/detail/is_function_msvc10_fix.hpp
3928
3949
  - src/cxx_supportlib/vendor-modified/boost/type_traits/detail/is_function_ptr_helper.hpp
3929
3950
  - src/cxx_supportlib/vendor-modified/boost/type_traits/detail/is_function_ptr_tester.hpp
3930
3951
  - src/cxx_supportlib/vendor-modified/boost/type_traits/detail/is_likely_lambda.hpp
3931
3952
  - src/cxx_supportlib/vendor-modified/boost/type_traits/detail/is_mem_fun_pointer_impl.hpp
3932
3953
  - src/cxx_supportlib/vendor-modified/boost/type_traits/detail/is_mem_fun_pointer_tester.hpp
3954
+ - src/cxx_supportlib/vendor-modified/boost/type_traits/detail/is_member_function_pointer_cxx_03.hpp
3955
+ - src/cxx_supportlib/vendor-modified/boost/type_traits/detail/is_member_function_pointer_cxx_11.hpp
3956
+ - src/cxx_supportlib/vendor-modified/boost/type_traits/detail/is_rvalue_reference_msvc10_fix.hpp
3933
3957
  - src/cxx_supportlib/vendor-modified/boost/type_traits/detail/mp_defer.hpp
3934
3958
  - src/cxx_supportlib/vendor-modified/boost/type_traits/detail/template_arity_spec.hpp
3935
3959
  - src/cxx_supportlib/vendor-modified/boost/type_traits/detail/yes_no_type.hpp
3936
3960
  - src/cxx_supportlib/vendor-modified/boost/type_traits/detected.hpp
3937
3961
  - src/cxx_supportlib/vendor-modified/boost/type_traits/detected_or.hpp
3962
+ - src/cxx_supportlib/vendor-modified/boost/type_traits/enable_if.hpp
3938
3963
  - src/cxx_supportlib/vendor-modified/boost/type_traits/extent.hpp
3939
3964
  - src/cxx_supportlib/vendor-modified/boost/type_traits/floating_point_promotion.hpp
3940
3965
  - src/cxx_supportlib/vendor-modified/boost/type_traits/function_traits.hpp
@@ -4027,6 +4052,7 @@ files:
4027
4052
  - src/cxx_supportlib/vendor-modified/boost/type_traits/is_member_function_pointer.hpp
4028
4053
  - src/cxx_supportlib/vendor-modified/boost/type_traits/is_member_object_pointer.hpp
4029
4054
  - src/cxx_supportlib/vendor-modified/boost/type_traits/is_member_pointer.hpp
4055
+ - src/cxx_supportlib/vendor-modified/boost/type_traits/is_noncopyable.hpp
4030
4056
  - src/cxx_supportlib/vendor-modified/boost/type_traits/is_nothrow_move_assignable.hpp
4031
4057
  - src/cxx_supportlib/vendor-modified/boost/type_traits/is_nothrow_move_constructible.hpp
4032
4058
  - src/cxx_supportlib/vendor-modified/boost/type_traits/is_nothrow_swappable.hpp
@@ -4066,6 +4092,7 @@ files:
4066
4092
  - src/cxx_supportlib/vendor-modified/boost/type_traits/transform_traits.hpp
4067
4093
  - src/cxx_supportlib/vendor-modified/boost/type_traits/type_identity.hpp
4068
4094
  - src/cxx_supportlib/vendor-modified/boost/type_traits/type_with_alignment.hpp
4095
+ - src/cxx_supportlib/vendor-modified/boost/typeof/constant.hpp
4069
4096
  - src/cxx_supportlib/vendor-modified/boost/typeof/decltype.hpp
4070
4097
  - src/cxx_supportlib/vendor-modified/boost/typeof/dmc/typeof_impl.hpp
4071
4098
  - src/cxx_supportlib/vendor-modified/boost/typeof/encode_decode.hpp
@@ -4416,7 +4443,14 @@ files:
4416
4443
  - src/schema_printer/SchemaPrinterMain.cpp.cxxcodebuilder
4417
4444
  homepage: https://www.phusionpassenger.com/
4418
4445
  licenses: []
4419
- metadata: {}
4446
+ metadata:
4447
+ bug_tracker_uri: https://github.com/phusion/passenger/issues
4448
+ changelog_uri: https://github.com/phusion/passenger/blob/stable-6.0/CHANGELOG
4449
+ documentation_uri: https://www.phusionpassenger.com/docs/
4450
+ homepage_uri: https://www.phusionpassenger.com/
4451
+ source_code_uri: https://github.com/phusion/passenger
4452
+ mailing_list_uri: https://www.phusionpassenger.com/contact
4453
+ wiki_uri: https://github.com/phusion/passenger/wiki
4420
4454
  post_install_message:
4421
4455
  rdoc_options: []
4422
4456
  require_paths:
@@ -4432,7 +4466,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
4432
4466
  - !ruby/object:Gem::Version
4433
4467
  version: '0'
4434
4468
  requirements: []
4435
- rubyforge_project: passenger
4469
+ rubyforge_project:
4436
4470
  rubygems_version: 2.6.11
4437
4471
  signing_key:
4438
4472
  specification_version: 4
@@ -1,20 +0,0 @@
1
- // (C) Copyright Steve Cleary, Beman Dawes, Howard Hinnant & John Maddock 2000.
2
- // Use, modification and distribution are subject to the Boost Software License,
3
- // Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at
4
- // http://www.boost.org/LICENSE_1_0.txt).
5
- //
6
- // See http://www.boost.org/libs/utility for most recent version including documentation.
7
-
8
- // See boost/detail/call_traits.hpp
9
- // for full copyright notices.
10
-
11
- #ifndef BOOST_CALL_TRAITS_HPP
12
- #define BOOST_CALL_TRAITS_HPP
13
-
14
- #ifndef BOOST_CONFIG_HPP
15
- #include <boost/config.hpp>
16
- #endif
17
-
18
- #include <boost/detail/call_traits.hpp>
19
-
20
- #endif // BOOST_CALL_TRAITS_HPP
@@ -1,172 +0,0 @@
1
- // (C) Copyright Steve Cleary, Beman Dawes, Howard Hinnant & John Maddock 2000.
2
- // Use, modification and distribution are subject to the Boost Software License,
3
- // Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at
4
- // http://www.boost.org/LICENSE_1_0.txt).
5
- //
6
- // See http://www.boost.org/libs/utility for most recent version including documentation.
7
-
8
- // call_traits: defines typedefs for function usage
9
- // (see libs/utility/call_traits.htm)
10
-
11
- /* Release notes:
12
- 23rd July 2000:
13
- Fixed array specialization. (JM)
14
- Added Borland specific fixes for reference types
15
- (issue raised by Steve Cleary).
16
- */
17
-
18
- #ifndef BOOST_DETAIL_CALL_TRAITS_HPP
19
- #define BOOST_DETAIL_CALL_TRAITS_HPP
20
-
21
- #ifndef BOOST_CONFIG_HPP
22
- #include <boost/config.hpp>
23
- #endif
24
- #include <cstddef>
25
-
26
- #include <boost/type_traits/is_arithmetic.hpp>
27
- #include <boost/type_traits/is_enum.hpp>
28
- #include <boost/type_traits/is_pointer.hpp>
29
- #include <boost/detail/workaround.hpp>
30
-
31
- namespace boost{
32
-
33
- namespace detail{
34
-
35
- template <typename T, bool small_>
36
- struct ct_imp2
37
- {
38
- typedef const T& param_type;
39
- };
40
-
41
- template <typename T>
42
- struct ct_imp2<T, true>
43
- {
44
- typedef const T param_type;
45
- };
46
-
47
- template <typename T, bool isp, bool b1, bool b2>
48
- struct ct_imp
49
- {
50
- typedef const T& param_type;
51
- };
52
-
53
- template <typename T, bool isp, bool b2>
54
- struct ct_imp<T, isp, true, b2>
55
- {
56
- typedef typename ct_imp2<T, sizeof(T) <= sizeof(void*)>::param_type param_type;
57
- };
58
-
59
- template <typename T, bool isp, bool b1>
60
- struct ct_imp<T, isp, b1, true>
61
- {
62
- typedef typename ct_imp2<T, sizeof(T) <= sizeof(void*)>::param_type param_type;
63
- };
64
-
65
- template <typename T, bool b1, bool b2>
66
- struct ct_imp<T, true, b1, b2>
67
- {
68
- typedef const T param_type;
69
- };
70
-
71
- }
72
-
73
- template <typename T>
74
- struct call_traits
75
- {
76
- public:
77
- typedef T value_type;
78
- typedef T& reference;
79
- typedef const T& const_reference;
80
- //
81
- // C++ Builder workaround: we should be able to define a compile time
82
- // constant and pass that as a single template parameter to ct_imp<T,bool>,
83
- // however compiler bugs prevent this - instead pass three bool's to
84
- // ct_imp<T,bool,bool,bool> and add an extra partial specialisation
85
- // of ct_imp to handle the logic. (JM)
86
- typedef typename boost::detail::ct_imp<
87
- T,
88
- ::boost::is_pointer<T>::value,
89
- ::boost::is_arithmetic<T>::value,
90
- ::boost::is_enum<T>::value
91
- >::param_type param_type;
92
- };
93
-
94
- template <typename T>
95
- struct call_traits<T&>
96
- {
97
- typedef T& value_type;
98
- typedef T& reference;
99
- typedef const T& const_reference;
100
- typedef T& param_type; // hh removed const
101
- };
102
-
103
- #if BOOST_WORKAROUND( __BORLANDC__, < 0x5A0 )
104
- // these are illegal specialisations; cv-qualifies applied to
105
- // references have no effect according to [8.3.2p1],
106
- // C++ Builder requires them though as it treats cv-qualified
107
- // references as distinct types...
108
- template <typename T>
109
- struct call_traits<T&const>
110
- {
111
- typedef T& value_type;
112
- typedef T& reference;
113
- typedef const T& const_reference;
114
- typedef T& param_type; // hh removed const
115
- };
116
- template <typename T>
117
- struct call_traits<T&volatile>
118
- {
119
- typedef T& value_type;
120
- typedef T& reference;
121
- typedef const T& const_reference;
122
- typedef T& param_type; // hh removed const
123
- };
124
- template <typename T>
125
- struct call_traits<T&const volatile>
126
- {
127
- typedef T& value_type;
128
- typedef T& reference;
129
- typedef const T& const_reference;
130
- typedef T& param_type; // hh removed const
131
- };
132
-
133
- template <typename T>
134
- struct call_traits< T * >
135
- {
136
- typedef T * value_type;
137
- typedef T * & reference;
138
- typedef T * const & const_reference;
139
- typedef T * const param_type; // hh removed const
140
- };
141
- #endif
142
- #if !defined(BOOST_NO_ARRAY_TYPE_SPECIALIZATIONS)
143
- template <typename T, std::size_t N>
144
- struct call_traits<T [N]>
145
- {
146
- private:
147
- typedef T array_type[N];
148
- public:
149
- // degrades array to pointer:
150
- typedef const T* value_type;
151
- typedef array_type& reference;
152
- typedef const array_type& const_reference;
153
- typedef const T* const param_type;
154
- };
155
-
156
- template <typename T, std::size_t N>
157
- struct call_traits<const T [N]>
158
- {
159
- private:
160
- typedef const T array_type[N];
161
- public:
162
- // degrades array to pointer:
163
- typedef const T* value_type;
164
- typedef array_type& reference;
165
- typedef const array_type& const_reference;
166
- typedef const T* const param_type;
167
- };
168
- #endif
169
-
170
- }
171
-
172
- #endif // BOOST_DETAIL_CALL_TRAITS_HPP
@@ -1,17 +0,0 @@
1
- /*
2
- * Copyright (c) 2014 Glen Fernandes
3
- *
4
- * Distributed under the Boost Software License, Version 1.0. (See
5
- * accompanying file LICENSE_1_0.txt or copy at
6
- * http://www.boost.org/LICENSE_1_0.txt)
7
- */
8
-
9
- #ifndef BOOST_DETAIL_NO_EXCEPTIONS_SUPPORT_HPP
10
- #define BOOST_DETAIL_NO_EXCEPTIONS_SUPPORT_HPP
11
-
12
- // The header file at this path is deprecated;
13
- // use boost/core/no_exceptions_support.hpp instead.
14
-
15
- #include <boost/core/no_exceptions_support.hpp>
16
-
17
- #endif
@@ -1,496 +0,0 @@
1
- // error_code support implementation file --------------------------------------------//
2
-
3
- // Copyright Beman Dawes 2002, 2006
4
- // Copyright (c) Microsoft Corporation 2014
5
- // Distributed under the Boost Software License, Version 1.0. (See accompanying
6
- // file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
7
-
8
- // See library home page at http://www.boost.org/libs/system
9
-
10
- //--------------------------------------------------------------------------------------//
11
-
12
- #include <boost/config/warning_disable.hpp>
13
-
14
- #include <boost/system/config.hpp>
15
- #include <boost/system/error_code.hpp>
16
- #include <boost/cerrno.hpp>
17
- #include <vector>
18
- #include <cstdlib>
19
- #include <cassert>
20
-
21
- #include <cstring> // for strerror/strerror_r
22
-
23
- # if defined( BOOST_WINDOWS_API )
24
- # include <boost/winapi/error_codes.hpp>
25
- # include <boost/winapi/error_handling.hpp>
26
- # include <boost/winapi/character_code_conversion.hpp>
27
- # if !BOOST_PLAT_WINDOWS_RUNTIME
28
- # include <boost/system/detail/local_free_on_destruction.hpp>
29
- # endif
30
- # ifndef ERROR_INCORRECT_SIZE
31
- # define ERROR_INCORRECT_SIZE ERROR_BAD_ARGUMENTS
32
- # endif
33
- # endif
34
-
35
- //--------------------------------------------------------------------------------------//
36
- namespace boost
37
- {
38
- namespace system
39
- {
40
-
41
- namespace detail
42
- {
43
-
44
- // standard error categories -------------------------------------------------------//
45
-
46
- class generic_error_category : public error_category
47
- {
48
- public:
49
- generic_error_category(){}
50
- const char * name() const BOOST_SYSTEM_NOEXCEPT;
51
- std::string message( int ev ) const;
52
- };
53
-
54
- class system_error_category : public error_category
55
- {
56
- public:
57
- system_error_category(){}
58
- const char * name() const BOOST_SYSTEM_NOEXCEPT;
59
- std::string message( int ev ) const;
60
- error_condition default_error_condition( int ev ) const BOOST_SYSTEM_NOEXCEPT;
61
- };
62
-
63
- #ifdef BOOST_ERROR_CODE_HEADER_ONLY
64
- # define BOOST_SYSTEM_INLINE inline
65
- #else
66
- # define BOOST_SYSTEM_INLINE
67
- #endif
68
-
69
- // generic_error_category implementation ---------------------------------//
70
-
71
- BOOST_SYSTEM_INLINE const char * generic_error_category::name() const BOOST_SYSTEM_NOEXCEPT
72
- {
73
- return "generic";
74
- }
75
-
76
- BOOST_SYSTEM_INLINE std::string generic_error_category::message( int ev ) const
77
- {
78
- using namespace boost::system::errc;
79
- #if defined(__PGI)
80
- using boost::system::errc::invalid_argument;
81
- #endif
82
-
83
- static std::string unknown_err( "Unknown error" );
84
- // strerror_r is preferred because it is always thread safe,
85
- // however, we fallback to strerror in certain cases because:
86
- // -- Windows doesn't provide strerror_r.
87
- // -- HP and Sun do provide strerror_r on newer systems, but there is
88
- // no way to tell if is available at runtime and in any case their
89
- // versions of strerror are thread safe anyhow.
90
- // -- Linux only sometimes provides strerror_r.
91
- // -- Tru64 provides strerror_r only when compiled -pthread.
92
- // -- VMS doesn't provide strerror_r, but on this platform, strerror is
93
- // thread safe.
94
- # if defined(BOOST_WINDOWS_API) || defined(__hpux) || defined(__sun)\
95
- || (defined(__linux) && (!defined(__USE_XOPEN2K)\
96
- || defined(BOOST_SYSTEM_USE_STRERROR)))\
97
- || (defined(__osf__) && !defined(_REENTRANT))\
98
- || (defined(__INTEGRITY))\
99
- || (defined(__vms))\
100
- || (defined(__QNXNTO__))
101
- const char * c_str = std::strerror( ev );
102
- return c_str
103
- ? std::string( c_str )
104
- : unknown_err;
105
- # else // use strerror_r
106
- char buf[64];
107
- char * bp = buf;
108
- std::size_t sz = sizeof(buf);
109
- # if defined(__CYGWIN__) || defined(__USE_GNU)
110
- // Oddball version of strerror_r
111
- const char * c_str = strerror_r( ev, bp, sz );
112
- return c_str
113
- ? std::string( c_str )
114
- : unknown_err;
115
- # else
116
- // POSIX version of strerror_r
117
- int result;
118
- for (;;)
119
- {
120
- // strerror_r returns 0 on success, otherwise ERANGE if buffer too small,
121
- // invalid_argument if ev not a valid error number
122
- # if defined (__sgi)
123
- const char * c_str = strerror( ev );
124
- result = 0;
125
- return c_str
126
- ? std::string( c_str )
127
- : unknown_err;
128
- # else
129
- result = strerror_r( ev, bp, sz );
130
- # endif
131
- if (result == 0 )
132
- break;
133
- else
134
- {
135
- # if defined(__linux)
136
- // Linux strerror_r returns -1 on error, with error number in errno
137
- result = errno;
138
- # endif
139
- if ( result != ERANGE ) break;
140
- if ( sz > sizeof(buf) ) std::free( bp );
141
- sz *= 2;
142
- if ( (bp = static_cast<char*>(std::malloc( sz ))) == 0 )
143
- return std::string( "ENOMEM" );
144
- }
145
- }
146
- std::string msg;
147
- # ifndef BOOST_NO_EXCEPTIONS
148
- try
149
- # endif
150
- {
151
- msg = ( ( result == invalid_argument ) ? "Unknown error" : bp );
152
- }
153
-
154
- # ifndef BOOST_NO_EXCEPTIONS
155
- // See ticket #2098
156
- catch(...)
157
- {
158
- // just eat the exception
159
- }
160
- # endif
161
-
162
- if ( sz > sizeof(buf) ) std::free( bp );
163
- return msg;
164
- # endif // else POSIX version of strerror_r
165
- # endif // else use strerror_r
166
- }
167
- // system_error_category implementation --------------------------------------------//
168
-
169
- BOOST_SYSTEM_INLINE const char * system_error_category::name() const BOOST_SYSTEM_NOEXCEPT
170
- {
171
- return "system";
172
- }
173
-
174
- BOOST_SYSTEM_INLINE error_condition system_error_category::default_error_condition( int ev ) const
175
- BOOST_SYSTEM_NOEXCEPT
176
- {
177
- using namespace boost::system::errc;
178
- #if defined(__PGI)
179
- using boost::system::errc::invalid_argument;
180
- #endif
181
-
182
- # if defined(BOOST_WINDOWS_API)
183
- # if defined(WINAPI_FAMILY) && ((WINAPI_FAMILY & WINAPI_PARTITION_APP) != 0)
184
- // When using the Windows Runtime, most system errors are reported as HRESULTs.
185
- // We want to map the common Win32 errors to their equivalent error condition,
186
- // whether or not they are reported via an HRESULT.
187
- if ( ev < 0 ) // Check for failed HRESULTs only.
188
- if ( HRESULT_FACILITY( ev ) == FACILITY_WIN32 )
189
- ev = HRESULT_CODE( ev );
190
- # endif
191
- # endif
192
-
193
- # if defined(BOOST_WINDOWS_API)
194
-
195
- using namespace boost::winapi; // for error codes
196
-
197
- # endif
198
-
199
- switch ( ev )
200
- {
201
- case 0: return make_error_condition( success );
202
- # if defined(BOOST_POSIX_API)
203
- // POSIX-like O/S -> posix_errno decode table -------------------------------------//
204
- case E2BIG: return make_error_condition( argument_list_too_long );
205
- case EACCES: return make_error_condition( permission_denied );
206
- case EADDRINUSE: return make_error_condition( address_in_use );
207
- case EADDRNOTAVAIL: return make_error_condition( address_not_available );
208
- case EAFNOSUPPORT: return make_error_condition( address_family_not_supported );
209
- case EAGAIN: return make_error_condition( resource_unavailable_try_again );
210
- # if EALREADY != EBUSY // EALREADY and EBUSY are the same on QNX Neutrino
211
- case EALREADY: return make_error_condition( connection_already_in_progress );
212
- # endif
213
- case EBADF: return make_error_condition( bad_file_descriptor );
214
- case EBADMSG: return make_error_condition( bad_message );
215
- case EBUSY: return make_error_condition( device_or_resource_busy );
216
- case ECANCELED: return make_error_condition( operation_canceled );
217
- case ECHILD: return make_error_condition( no_child_process );
218
- case ECONNABORTED: return make_error_condition( connection_aborted );
219
- case ECONNREFUSED: return make_error_condition( connection_refused );
220
- case ECONNRESET: return make_error_condition( connection_reset );
221
- case EDEADLK: return make_error_condition( resource_deadlock_would_occur );
222
- case EDESTADDRREQ: return make_error_condition( destination_address_required );
223
- case EDOM: return make_error_condition( argument_out_of_domain );
224
- case EEXIST: return make_error_condition( file_exists );
225
- case EFAULT: return make_error_condition( bad_address );
226
- case EFBIG: return make_error_condition( file_too_large );
227
- case EHOSTUNREACH: return make_error_condition( host_unreachable );
228
- case EIDRM: return make_error_condition( identifier_removed );
229
- case EILSEQ: return make_error_condition( illegal_byte_sequence );
230
- case EINPROGRESS: return make_error_condition( operation_in_progress );
231
- case EINTR: return make_error_condition( interrupted );
232
- case EINVAL: return make_error_condition( invalid_argument );
233
- case EIO: return make_error_condition( io_error );
234
- case EISCONN: return make_error_condition( already_connected );
235
- case EISDIR: return make_error_condition( is_a_directory );
236
- case ELOOP: return make_error_condition( too_many_symbolic_link_levels );
237
- case EMFILE: return make_error_condition( too_many_files_open );
238
- case EMLINK: return make_error_condition( too_many_links );
239
- case EMSGSIZE: return make_error_condition( message_size );
240
- case ENAMETOOLONG: return make_error_condition( filename_too_long );
241
- case ENETDOWN: return make_error_condition( network_down );
242
- case ENETRESET: return make_error_condition( network_reset );
243
- case ENETUNREACH: return make_error_condition( network_unreachable );
244
- case ENFILE: return make_error_condition( too_many_files_open_in_system );
245
- case ENOBUFS: return make_error_condition( no_buffer_space );
246
- case ENODATA: return make_error_condition( no_message_available );
247
- case ENODEV: return make_error_condition( no_such_device );
248
- case ENOENT: return make_error_condition( no_such_file_or_directory );
249
- case ENOEXEC: return make_error_condition( executable_format_error );
250
- case ENOLCK: return make_error_condition( no_lock_available );
251
- case ENOLINK: return make_error_condition( no_link );
252
- case ENOMEM: return make_error_condition( not_enough_memory );
253
- case ENOMSG: return make_error_condition( no_message );
254
- case ENOPROTOOPT: return make_error_condition( no_protocol_option );
255
- case ENOSPC: return make_error_condition( no_space_on_device );
256
- case ENOSR: return make_error_condition( no_stream_resources );
257
- case ENOSTR: return make_error_condition( not_a_stream );
258
- case ENOSYS: return make_error_condition( function_not_supported );
259
- case ENOTCONN: return make_error_condition( not_connected );
260
- case ENOTDIR: return make_error_condition( not_a_directory );
261
- # if ENOTEMPTY != EEXIST // AIX treats ENOTEMPTY and EEXIST as the same value
262
- case ENOTEMPTY: return make_error_condition( directory_not_empty );
263
- # endif // ENOTEMPTY != EEXIST
264
- # if ENOTRECOVERABLE != ECONNRESET // the same on some Broadcom chips
265
- case ENOTRECOVERABLE: return make_error_condition( state_not_recoverable );
266
- # endif // ENOTRECOVERABLE != ECONNRESET
267
- case ENOTSOCK: return make_error_condition( not_a_socket );
268
- case ENOTSUP: return make_error_condition( not_supported );
269
- case ENOTTY: return make_error_condition( inappropriate_io_control_operation );
270
- case ENXIO: return make_error_condition( no_such_device_or_address );
271
- # if EOPNOTSUPP != ENOTSUP
272
- case EOPNOTSUPP: return make_error_condition( operation_not_supported );
273
- # endif // EOPNOTSUPP != ENOTSUP
274
- case EOVERFLOW: return make_error_condition( value_too_large );
275
- # if EOWNERDEAD != ECONNABORTED // the same on some Broadcom chips
276
- case EOWNERDEAD: return make_error_condition( owner_dead );
277
- # endif // EOWNERDEAD != ECONNABORTED
278
- case EPERM: return make_error_condition( operation_not_permitted );
279
- case EPIPE: return make_error_condition( broken_pipe );
280
- case EPROTO: return make_error_condition( protocol_error );
281
- case EPROTONOSUPPORT: return make_error_condition( protocol_not_supported );
282
- case EPROTOTYPE: return make_error_condition( wrong_protocol_type );
283
- case ERANGE: return make_error_condition( result_out_of_range );
284
- case EROFS: return make_error_condition( read_only_file_system );
285
- case ESPIPE: return make_error_condition( invalid_seek );
286
- case ESRCH: return make_error_condition( no_such_process );
287
- case ETIME: return make_error_condition( stream_timeout );
288
- case ETIMEDOUT: return make_error_condition( timed_out );
289
- case ETXTBSY: return make_error_condition( text_file_busy );
290
- # if EAGAIN != EWOULDBLOCK
291
- case EWOULDBLOCK: return make_error_condition( operation_would_block );
292
- # endif // EAGAIN != EWOULDBLOCK
293
- case EXDEV: return make_error_condition( cross_device_link );
294
- #else
295
- // Windows system -> posix_errno decode table ---------------------------//
296
- // see WinError.h comments for descriptions of errors
297
- case ERROR_ACCESS_DENIED_: return make_error_condition( permission_denied );
298
- case ERROR_ALREADY_EXISTS_: return make_error_condition( file_exists );
299
- case ERROR_BAD_UNIT_: return make_error_condition( no_such_device );
300
- case ERROR_BUFFER_OVERFLOW_: return make_error_condition( filename_too_long );
301
- case ERROR_BUSY_: return make_error_condition( device_or_resource_busy );
302
- case ERROR_BUSY_DRIVE_: return make_error_condition( device_or_resource_busy );
303
- case ERROR_CANNOT_MAKE_: return make_error_condition( permission_denied );
304
- case ERROR_CANTOPEN_: return make_error_condition( io_error );
305
- case ERROR_CANTREAD_: return make_error_condition( io_error );
306
- case ERROR_CANTWRITE_: return make_error_condition( io_error );
307
- case ERROR_CURRENT_DIRECTORY_: return make_error_condition( permission_denied );
308
- case ERROR_DEV_NOT_EXIST_: return make_error_condition( no_such_device );
309
- case ERROR_DEVICE_IN_USE_: return make_error_condition( device_or_resource_busy );
310
- case ERROR_DIR_NOT_EMPTY_: return make_error_condition( directory_not_empty );
311
- case ERROR_DIRECTORY_: return make_error_condition( invalid_argument );\
312
- // WinError.h: "The directory name is invalid"
313
- case ERROR_DISK_FULL_: return make_error_condition( no_space_on_device );
314
- case ERROR_FILE_EXISTS_: return make_error_condition( file_exists );
315
- case ERROR_FILE_NOT_FOUND_: return make_error_condition( no_such_file_or_directory );
316
- case ERROR_HANDLE_DISK_FULL_: return make_error_condition( no_space_on_device );
317
- case ERROR_INVALID_ACCESS_: return make_error_condition( permission_denied );
318
- case ERROR_INVALID_DRIVE_: return make_error_condition( no_such_device );
319
- case ERROR_INVALID_FUNCTION_: return make_error_condition( function_not_supported );
320
- case ERROR_INVALID_HANDLE_: return make_error_condition( invalid_argument );
321
- case ERROR_INVALID_NAME_: return make_error_condition( invalid_argument );
322
- case ERROR_LOCK_VIOLATION_: return make_error_condition( no_lock_available );
323
- case ERROR_LOCKED_: return make_error_condition( no_lock_available );
324
- case ERROR_NEGATIVE_SEEK_: return make_error_condition( invalid_argument );
325
- case ERROR_NOACCESS_: return make_error_condition( permission_denied );
326
- case ERROR_NOT_ENOUGH_MEMORY_: return make_error_condition( not_enough_memory );
327
- case ERROR_NOT_READY_: return make_error_condition( resource_unavailable_try_again );
328
- case ERROR_NOT_SAME_DEVICE_: return make_error_condition( cross_device_link );
329
- case ERROR_OPEN_FAILED_: return make_error_condition( io_error );
330
- case ERROR_OPEN_FILES_: return make_error_condition( device_or_resource_busy );
331
- case ERROR_OPERATION_ABORTED_: return make_error_condition( operation_canceled );
332
- case ERROR_OUTOFMEMORY_: return make_error_condition( not_enough_memory );
333
- case ERROR_PATH_NOT_FOUND_: return make_error_condition( no_such_file_or_directory );
334
- case ERROR_READ_FAULT_: return make_error_condition( io_error );
335
- case ERROR_RETRY_: return make_error_condition( resource_unavailable_try_again );
336
- case ERROR_SEEK_: return make_error_condition( io_error );
337
- case ERROR_SHARING_VIOLATION_: return make_error_condition( permission_denied );
338
- case ERROR_TOO_MANY_OPEN_FILES_: return make_error_condition( too_many_files_open );
339
- case ERROR_WRITE_FAULT_: return make_error_condition( io_error );
340
- case ERROR_WRITE_PROTECT_: return make_error_condition( permission_denied );
341
- case WSAEACCES_: return make_error_condition( permission_denied );
342
- case WSAEADDRINUSE_: return make_error_condition( address_in_use );
343
- case WSAEADDRNOTAVAIL_: return make_error_condition( address_not_available );
344
- case WSAEAFNOSUPPORT_: return make_error_condition( address_family_not_supported );
345
- case WSAEALREADY_: return make_error_condition( connection_already_in_progress );
346
- case WSAEBADF_: return make_error_condition( bad_file_descriptor );
347
- case WSAECONNABORTED_: return make_error_condition( connection_aborted );
348
- case WSAECONNREFUSED_: return make_error_condition( connection_refused );
349
- case WSAECONNRESET_: return make_error_condition( connection_reset );
350
- case WSAEDESTADDRREQ_: return make_error_condition( destination_address_required );
351
- case WSAEFAULT_: return make_error_condition( bad_address );
352
- case WSAEHOSTUNREACH_: return make_error_condition( host_unreachable );
353
- case WSAEINPROGRESS_: return make_error_condition( operation_in_progress );
354
- case WSAEINTR_: return make_error_condition( interrupted );
355
- case WSAEINVAL_: return make_error_condition( invalid_argument );
356
- case WSAEISCONN_: return make_error_condition( already_connected );
357
- case WSAEMFILE_: return make_error_condition( too_many_files_open );
358
- case WSAEMSGSIZE_: return make_error_condition( message_size );
359
- case WSAENAMETOOLONG_: return make_error_condition( filename_too_long );
360
- case WSAENETDOWN_: return make_error_condition( network_down );
361
- case WSAENETRESET_: return make_error_condition( network_reset );
362
- case WSAENETUNREACH_: return make_error_condition( network_unreachable );
363
- case WSAENOBUFS_: return make_error_condition( no_buffer_space );
364
- case WSAENOPROTOOPT_: return make_error_condition( no_protocol_option );
365
- case WSAENOTCONN_: return make_error_condition( not_connected );
366
- case WSAENOTSOCK_: return make_error_condition( not_a_socket );
367
- case WSAEOPNOTSUPP_: return make_error_condition( operation_not_supported );
368
- case WSAEPROTONOSUPPORT_: return make_error_condition( protocol_not_supported );
369
- case WSAEPROTOTYPE_: return make_error_condition( wrong_protocol_type );
370
- case WSAETIMEDOUT_: return make_error_condition( timed_out );
371
- case WSAEWOULDBLOCK_: return make_error_condition( operation_would_block );
372
- #endif
373
- default: return error_condition( ev, system_category() );
374
- }
375
- }
376
-
377
- # if !defined( BOOST_WINDOWS_API )
378
-
379
- BOOST_SYSTEM_INLINE std::string system_error_category::message( int ev ) const
380
- {
381
- return generic_category().message( ev );
382
- }
383
- # else
384
-
385
- BOOST_SYSTEM_INLINE std::string system_error_category::message( int ev ) const
386
- {
387
- #if defined(UNDER_CE) || BOOST_PLAT_WINDOWS_RUNTIME || defined(BOOST_NO_ANSI_APIS)
388
- std::wstring buf(128, wchar_t());
389
- for (;;)
390
- {
391
- boost::winapi::DWORD_ retval = boost::winapi::FormatMessageW(
392
- boost::winapi::FORMAT_MESSAGE_FROM_SYSTEM_ |
393
- boost::winapi::FORMAT_MESSAGE_IGNORE_INSERTS_,
394
- NULL,
395
- ev,
396
- boost::winapi::MAKELANGID_(boost::winapi::LANG_NEUTRAL_,
397
- boost::winapi::SUBLANG_DEFAULT_), // Default language
398
- &buf[0],
399
- static_cast<boost::winapi::DWORD_>(buf.size()),
400
- NULL
401
- );
402
-
403
- if (retval > 0)
404
- {
405
- buf.resize(retval);
406
- break;
407
- }
408
- else if (boost::winapi::GetLastError() !=
409
- boost::winapi::ERROR_INSUFFICIENT_BUFFER_)
410
- {
411
- return std::string("Unknown error");
412
- }
413
- else
414
- {
415
- buf.resize(buf.size() + buf.size() / 2);
416
- }
417
- }
418
-
419
- int num_chars = static_cast<int>(buf.size() + 1) * 2;
420
-
421
- boost::winapi::LPSTR_ narrow_buffer =
422
- #if defined(__GNUC__)
423
- (boost::winapi::LPSTR_)__builtin_alloca(num_chars);
424
- #else
425
- (boost::winapi::LPSTR_)_alloca(num_chars);
426
- #endif
427
-
428
- if (boost::winapi::WideCharToMultiByte(boost::winapi::CP_ACP_, 0,
429
- buf.c_str(), -1, narrow_buffer, num_chars, NULL, NULL) == 0)
430
- {
431
- return std::string("Unknown error");
432
- }
433
-
434
- std::string str( narrow_buffer );
435
- #else
436
- boost::winapi::LPVOID_ lpMsgBuf = 0;
437
- boost::winapi::DWORD_ retval = boost::winapi::FormatMessageA(
438
- boost::winapi::FORMAT_MESSAGE_ALLOCATE_BUFFER_ |
439
- boost::winapi::FORMAT_MESSAGE_FROM_SYSTEM_ |
440
- boost::winapi::FORMAT_MESSAGE_IGNORE_INSERTS_,
441
- NULL,
442
- ev,
443
- boost::winapi::MAKELANGID_(boost::winapi::LANG_NEUTRAL_,
444
- boost::winapi::SUBLANG_DEFAULT_), // Default language
445
- (boost::winapi::LPSTR_) &lpMsgBuf,
446
- 0,
447
- NULL
448
- );
449
- detail::local_free_on_destruction lfod(lpMsgBuf);
450
- if (retval == 0)
451
- return std::string("Unknown error");
452
-
453
- std::string str(static_cast<boost::winapi::LPCSTR_>(lpMsgBuf));
454
- # endif
455
- while ( str.size()
456
- && (str[str.size()-1] == '\n' || str[str.size()-1] == '\r') )
457
- str.erase( str.size()-1 );
458
- if ( str.size() && str[str.size()-1] == '.' )
459
- { str.erase( str.size()-1 ); }
460
- return str;
461
- }
462
- # endif
463
-
464
- #undef BOOST_SYSTEM_INLINE
465
-
466
- } // namespace detail
467
-
468
-
469
- # ifdef BOOST_SYSTEM_ENABLE_DEPRECATED
470
- BOOST_SYSTEM_DECL error_code throws; // "throw on error" special error_code;
471
- // note that it doesn't matter if this
472
- // isn't initialized before use since
473
- // the only use is to take its
474
- // address for comparison purposes
475
- # endif
476
-
477
- # ifdef BOOST_ERROR_CODE_HEADER_ONLY
478
- # define BOOST_SYSTEM_LINKAGE inline
479
- # else
480
- # define BOOST_SYSTEM_LINKAGE BOOST_SYSTEM_DECL
481
- # endif
482
-
483
- BOOST_SYSTEM_LINKAGE const error_category & system_category() BOOST_SYSTEM_NOEXCEPT
484
- {
485
- static const detail::system_error_category system_category_const;
486
- return system_category_const;
487
- }
488
-
489
- BOOST_SYSTEM_LINKAGE const error_category & generic_category() BOOST_SYSTEM_NOEXCEPT
490
- {
491
- static const detail::generic_error_category generic_category_const;
492
- return generic_category_const;
493
- }
494
-
495
- } // namespace system
496
- } // namespace boost