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
@@ -239,6 +239,18 @@ generate_config_manifest_for_autogenerated_main_conf(manifest_gen_ctx_t *ctx, pa
239
239
  (const char *) conf->autogenerated.instance_registry_dir.data,
240
240
  conf->autogenerated.instance_registry_dir.len);
241
241
  }
242
+ if (conf->autogenerated.spawn_dir_explicitly_set) {
243
+ option_container = find_or_create_manifest_option_container(ctx,
244
+ ctx->global_config_container,
245
+ "passenger_spawn_dir",
246
+ sizeof("passenger_spawn_dir") - 1);
247
+ hierarchy_member = add_manifest_option_container_hierarchy_member(option_container,
248
+ &conf->autogenerated.spawn_dir_source_file,
249
+ conf->autogenerated.spawn_dir_source_line);
250
+ psg_json_value_set_str(hierarchy_member, "value",
251
+ (const char *) conf->autogenerated.spawn_dir.data,
252
+ conf->autogenerated.spawn_dir.len);
253
+ }
242
254
  if (conf->autogenerated.turbocaching_explicitly_set) {
243
255
  option_container = find_or_create_manifest_option_container(ctx,
244
256
  ctx->global_config_container,
@@ -71,6 +71,7 @@ typedef struct {
71
71
  ngx_str_t log_file;
72
72
  ngx_str_t root_dir;
73
73
  ngx_str_t security_update_check_proxy;
74
+ ngx_str_t spawn_dir;
74
75
 
75
76
  ngx_str_t abort_on_startup_error_source_file;
76
77
  ngx_str_t admin_panel_auth_type_source_file;
@@ -101,6 +102,7 @@ typedef struct {
101
102
  ngx_str_t security_update_check_proxy_source_file;
102
103
  ngx_str_t show_version_in_header_source_file;
103
104
  ngx_str_t socket_backlog_source_file;
105
+ ngx_str_t spawn_dir_source_file;
104
106
  ngx_str_t stat_throttle_rate_source_file;
105
107
  ngx_str_t turbocaching_source_file;
106
108
  ngx_str_t user_switching_source_file;
@@ -134,6 +136,7 @@ typedef struct {
134
136
  ngx_uint_t security_update_check_proxy_source_line;
135
137
  ngx_uint_t show_version_in_header_source_line;
136
138
  ngx_uint_t socket_backlog_source_line;
139
+ ngx_uint_t spawn_dir_source_line;
137
140
  ngx_uint_t stat_throttle_rate_source_line;
138
141
  ngx_uint_t turbocaching_source_line;
139
142
  ngx_uint_t user_switching_source_line;
@@ -167,6 +170,7 @@ typedef struct {
167
170
  ngx_int_t security_update_check_proxy_explicitly_set;
168
171
  ngx_int_t show_version_in_header_explicitly_set;
169
172
  ngx_int_t socket_backlog_explicitly_set;
173
+ ngx_int_t spawn_dir_explicitly_set;
170
174
  ngx_int_t stat_throttle_rate_explicitly_set;
171
175
  ngx_int_t turbocaching_explicitly_set;
172
176
  ngx_int_t user_switching_explicitly_set;
@@ -43,9 +43,9 @@
43
43
 
44
44
  #define MODP_B64_DONT_INCLUDE_BOOST_ENDIANNESS_HEADERS
45
45
  #if NGX_HAVE_LITTLE_ENDIAN
46
- #define BOOST_LITTLE_ENDIAN
46
+ #define BOOST_ENDIAN_LITTLE_BYTE
47
47
  #else
48
- #define BOOST_BIG_ENDIAN
48
+ #define BOOST_ENDIAN_BIG_BYTE
49
49
  #endif
50
50
 
51
51
  #include "ngx_http_passenger_module.h"
@@ -367,6 +367,7 @@ start_watchdog(ngx_cycle_t *cycle) {
367
367
  psg_json_value_set_ngx_uint (w_config, "controller_socket_backlog", autogenerated_main_conf->socket_backlog);
368
368
  psg_json_value_set_ngx_str_ne(w_config, "controller_file_buffered_channel_buffer_dir", &autogenerated_main_conf->data_buffer_dir);
369
369
  psg_json_value_set_ngx_str_ne(w_config, "instance_registry_dir", &autogenerated_main_conf->instance_registry_dir);
370
+ psg_json_value_set_ngx_str_ne(w_config, "spawn_dir", &autogenerated_main_conf->spawn_dir);
370
371
  psg_json_value_set_ngx_flag (w_config, "security_update_checker_disabled", autogenerated_main_conf->disable_security_update_check);
371
372
  psg_json_value_set_ngx_str_ne(w_config, "security_update_checker_proxy_url", &autogenerated_main_conf->security_update_check_proxy);
372
373
  psg_json_value_set_ngx_flag (w_config, "telemetry_collector_disabled", autogenerated_main_conf->disable_anonymous_telemetry);
@@ -31,20 +31,20 @@ module PhusionPassenger
31
31
 
32
32
  PACKAGE_NAME = 'passenger'
33
33
  # Run 'rake src/cxx_supportlib/Constants.h configkit_schemas_inline_comments' after changing this number.
34
- VERSION_STRING = '6.0.2'
34
+ VERSION_STRING = '6.0.7'
35
35
 
36
36
  # Tip: find the SHA-256 with ./dev/nginx_version_sha2 <VERSION>
37
- PREFERRED_NGINX_VERSION = '1.15.8'
38
- NGINX_SHA256_CHECKSUM = 'a8bdafbca87eb99813ae4fcac1ad0875bf725ce19eb265d28268c309b2b40787'
37
+ PREFERRED_NGINX_VERSION = '1.18.0'
38
+ NGINX_SHA256_CHECKSUM = '4c373e7ab5bf91d34a4f11a0c9496561061ba5eee6020db272a17a7228d35f99'
39
39
 
40
40
  # Packaging may be locked to an older version due to the specific module configuration being
41
41
  # incompatible with the version we prefer (latest stable).
42
- PACKAGING_PREFERRED_NGINX_VERSION = '1.15.8'
43
- PACKAGING_NGINX_SHA256_CHECKSUM = 'a8bdafbca87eb99813ae4fcac1ad0875bf725ce19eb265d28268c309b2b40787'
42
+ PACKAGING_PREFERRED_NGINX_VERSION = '1.18.0'
43
+ PACKAGING_NGINX_SHA256_CHECKSUM = '4c373e7ab5bf91d34a4f11a0c9496561061ba5eee6020db272a17a7228d35f99'
44
44
 
45
45
  # sha256sum of the .tar.gz
46
- PREFERRED_PCRE_VERSION = '8.42'
47
- PCRE_SHA256_CHECKSUM = '69acbc2fbdefb955d42a4c606dfde800c2885711d2979e356c0636efde9ec3b5'
46
+ PREFERRED_PCRE_VERSION = '8.44'
47
+ PCRE_SHA256_CHECKSUM = 'aecafd4af3bd0f3935721af77b889d9024b2e01d96b58471bd91a3063fb47728'
48
48
 
49
49
  STANDALONE_INTERFACE_VERSION = 1
50
50
 
@@ -258,7 +258,7 @@ module PhusionPassenger
258
258
  end
259
259
 
260
260
 
261
- private
261
+ private
262
262
  def self.infer_install_spec
263
263
  filename = ENV['PASSENGER_LOCATION_CONFIGURATION_FILE']
264
264
  return filename if filename && !filename.empty?
@@ -294,7 +294,7 @@ module PhusionPassenger
294
294
  else
295
295
  return total
296
296
  end
297
- rescue Errno::EACCES, Errno::ENOENT
297
+ rescue Errno::EACCES, Errno::ENOENT, Errno::ESRCH
298
298
  return nil
299
299
  end
300
300
 
@@ -222,6 +222,13 @@ APACHE2_CONFIGURATION_OPTIONS = [
222
222
  :dynamic_default => 'Either /var/run/passenger-instreg, $TMPDIR, or /tmp (see docs)',
223
223
  :desc => "The directory to register the #{PROGRAM_NAME} instance to."
224
224
  },
225
+ {
226
+ :name => 'PassengerSpawnDir',
227
+ :type => :string,
228
+ :context => :global,
229
+ :dynamic_default => 'Either $TMPDIR or /tmp',
230
+ :desc => "The directory for #{PROGRAM_NAME} used during child spawning."
231
+ },
225
232
  {
226
233
  :name => 'PassengerDisableSecurityUpdateCheck',
227
234
  :type => :flag,
@@ -437,6 +444,12 @@ APACHE2_CONFIGURATION_OPTIONS = [
437
444
  :desc => 'The spawn method to use.',
438
445
  :function => 'cmd_passenger_spawn_method'
439
446
  },
447
+ {
448
+ :name => 'PassengerDirectInstanceRequestAddress',
449
+ :type => :string,
450
+ :default => DEFAULT_BIND_ADDRESS,
451
+ :desc => 'The address that Passenger binds to in order to allow sending HTTP requests to individual application processes.'
452
+ },
440
453
  {
441
454
  :name => 'PassengerFriendlyErrorPages',
442
455
  :type => :flag,
@@ -540,6 +553,15 @@ APACHE2_CONFIGURATION_OPTIONS = [
540
553
  :default_expr => 'DEFAULT_STICKY_SESSIONS_COOKIE_NAME',
541
554
  :desc => 'The cookie name to use for sticky sessions.'
542
555
  },
556
+ {
557
+ :name => 'PassengerStickySessionsCookieAttributes',
558
+ :type => :string,
559
+ :context => :location,
560
+ :htaccess_context => ['OR_ALL'],
561
+ :default => DEFAULT_STICKY_SESSIONS_COOKIE_ATTRIBUTES,
562
+ :default_expr => 'DEFAULT_STICKY_SESSIONS_COOKIE_ATTRIBUTES',
563
+ :desc => 'The attributes to use for the sticky session cookie.'
564
+ },
543
565
  {
544
566
  :name => 'PassengerBufferResponse',
545
567
  :type => :flag,
@@ -58,10 +58,12 @@ module PhusionPassenger
58
58
  DEFAULT_WEB_APP_USER = "nobody"
59
59
  DEFAULT_APP_ENV = "production"
60
60
  DEFAULT_SPAWN_METHOD = "smart"
61
+ DEFAULT_BIND_ADDRESS = "127.0.0.1"
61
62
  # Apache's unixd.h also defines DEFAULT_USER, so we avoid naming clash here.
62
63
  PASSENGER_DEFAULT_USER = "nobody"
63
64
  DEFAULT_CONCURRENCY_MODEL = "process"
64
65
  DEFAULT_STICKY_SESSIONS_COOKIE_NAME = "_passenger_route"
66
+ DEFAULT_STICKY_SESSIONS_COOKIE_ATTRIBUTES = "SameSite=Lax; Secure;"
65
67
  DEFAULT_APP_THREAD_COUNT = 1
66
68
  DEFAULT_RESPONSE_BUFFER_HIGH_WATERMARK = 1024 * 1024 * 128
67
69
  DEFAULT_MAX_REQUEST_QUEUE_SIZE = 100
@@ -115,7 +117,7 @@ module PhusionPassenger
115
117
  PROGRAM_WEBSITE = "https://www.phusionpassenger.com"
116
118
  PROGRAM_AUTHOR = "Phusion"
117
119
  SUPPORT_URL = "https://www.phusionpassenger.com/support"
118
- ENTERPRISE_URL = "https://www.phusionpassenger.com/enterprise"
120
+ ENTERPRISE_URL = "https://www.phusionpassenger.com/features#premium-features"
119
121
  GLOBAL_NAMESPACE_DIRNAME = PhusionPassenger::GLOBAL_NAMESPACE_DIRNAME_
120
122
  # Subdirectory under $HOME to use for storing stuff.
121
123
  USER_NAMESPACE_DIRNAME = PhusionPassenger::USER_NAMESPACE_DIRNAME_
@@ -316,9 +316,11 @@ module PhusionPassenger
316
316
  ActiveRecord::Base.clear_all_connections!
317
317
  elsif ActiveRecord::Base.respond_to?(:clear_active_connections!)
318
318
  ActiveRecord::Base.clear_active_connections!
319
- elsif ActiveRecord::Base.respond_to?(:connected?) &&
320
- ActiveRecord::Base.connected?
319
+ end
320
+ begin
321
321
  ActiveRecord::Base.establish_connection
322
+ rescue
323
+ DebugLogging.debug('ActiveRecord is not configured, start it yourself')
322
324
  end
323
325
  end
324
326
 
@@ -239,6 +239,14 @@ NGINX_CONFIGURATION_OPTIONS = [
239
239
  :context => [:main],
240
240
  :struct => 'NGX_HTTP_MAIN_CONF_OFFSET'
241
241
  },
242
+ {
243
+ :name => 'passenger_spawn_dir',
244
+ :scope => :global,
245
+ :type => :string,
246
+ :dynamic_default => 'Either $TMPDIR or /tmp',
247
+ :context => [:main],
248
+ :struct => 'NGX_HTTP_MAIN_CONF_OFFSET'
249
+ },
242
250
  {
243
251
  :name => 'passenger_turbocaching',
244
252
  :scope => :global,
@@ -468,6 +476,12 @@ NGINX_CONFIGURATION_OPTIONS = [
468
476
  :dynamic_default => "'smart' for Ruby apps, 'direct' for all other apps",
469
477
  :type => :string
470
478
  },
479
+ {
480
+ :name => 'passenger_direct_instance_request_address',
481
+ :scope => :application,
482
+ :default => DEFAULT_BIND_ADDRESS,
483
+ :type => :string
484
+ },
471
485
  {
472
486
  :name => 'passenger_load_shell_envvars',
473
487
  :scope => :application,
@@ -548,6 +562,14 @@ NGINX_CONFIGURATION_OPTIONS = [
548
562
  :type => :string,
549
563
  :header => nil
550
564
  },
565
+ {
566
+ :name => 'passenger_temp_path',
567
+ :scope => :location,
568
+ :type => :string,
569
+ :function => 'ngx_conf_set_path_slot',
570
+ :field => 'upstream_config.temp_path',
571
+ :auto_generate_nginx_tracking_code => false
572
+ },
551
573
  {
552
574
  :name => 'passenger_ignore_headers',
553
575
  :scope => :location,
@@ -654,6 +676,13 @@ NGINX_CONFIGURATION_OPTIONS = [
654
676
  :type => :integer,
655
677
  :default => 503
656
678
  },
679
+ {
680
+ :name => 'passenger_buffer_upload',
681
+ :type => :flag,
682
+ :scope => :location,
683
+ :default => false,
684
+ :header => nil
685
+ },
657
686
  {
658
687
  :name => 'passenger_sticky_sessions',
659
688
  :scope => :location,
@@ -666,6 +695,12 @@ NGINX_CONFIGURATION_OPTIONS = [
666
695
  :type => :string,
667
696
  :default => DEFAULT_STICKY_SESSIONS_COOKIE_NAME
668
697
  },
698
+ {
699
+ :name => 'passenger_sticky_sessions_cookie_attributes',
700
+ :scope => :location,
701
+ :type => :string,
702
+ :default => DEFAULT_STICKY_SESSIONS_COOKIE_ATTRIBUTES
703
+ },
669
704
  {
670
705
  :name => 'passenger_vary_turbocache_by_cookie',
671
706
  :scope => :location,
@@ -890,7 +890,7 @@ module PhusionPassenger
890
890
  # On macOS >= 10.13 High Sierra /usr/include no longer
891
891
  # exists.
892
892
  xcode_prefix = `/usr/bin/xcode-select -p`.strip
893
- ["-I#{xcode_prefix}/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk/usr/include/apr-1" \
893
+ ["-I#{xcode_prefix}/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk/usr/include/apr-1 " \
894
894
  "-I#{xcode_prefix}/SDKs/MacOSX.sdk/usr/include/apr-1",
895
895
  '-laprutil-1']
896
896
  else
@@ -279,7 +279,7 @@ module PhusionPassenger
279
279
  "-c '#{filename}' -o '#{filename}.o'",
280
280
  flags)
281
281
  result = run_compiler(description, command, filename, source, true)
282
- result = result && result[:result] && result[:output] !~ /unknown warning option/i
282
+ result = result && result[:result] && result[:output] !~ /unknown warning option|unrecognized command line option/i
283
283
  end
284
284
  return false if !result
285
285
 
@@ -25,6 +25,16 @@
25
25
 
26
26
  PhusionPassenger.require_passenger_lib 'utils/tee_input'
27
27
 
28
+ if defined?(::Rack::BodyProxy) && !::Rack::BodyProxy.new("").respond_to?(:each)
29
+ module ::Rack
30
+ class BodyProxy
31
+ def each
32
+ @body.each { |body| yield body }
33
+ end
34
+ end
35
+ end
36
+ end
37
+
28
38
  module PhusionPassenger
29
39
  module Rack
30
40
 
@@ -99,7 +99,7 @@ module PhusionPassenger
99
99
  if should_use_unix_sockets?
100
100
  @main_socket_address, @main_socket = create_unix_socket_on_filesystem(options)
101
101
  else
102
- @main_socket_address, @main_socket = create_tcp_socket
102
+ @main_socket_address, @main_socket = create_tcp_socket(options)
103
103
  end
104
104
  @server_sockets[:main] = {
105
105
  :address => @main_socket_address,
@@ -109,7 +109,7 @@ module PhusionPassenger
109
109
  :accept_http_requests => true
110
110
  }
111
111
 
112
- @http_socket_address, @http_socket = create_tcp_socket
112
+ @http_socket_address, @http_socket = create_tcp_socket(options)
113
113
  @server_sockets[:http] = {
114
114
  :address => @http_socket_address,
115
115
  :socket => @http_socket,
@@ -309,16 +309,17 @@ module PhusionPassenger
309
309
  end
310
310
  end
311
311
 
312
- def create_tcp_socket
313
- # We use "127.0.0.1" as address in order to force
312
+ def create_tcp_socket(options)
313
+ # We default to "127.0.0.1" as address in order to force
314
314
  # TCPv4 instead of TCPv6.
315
- socket = TCPServer.new('127.0.0.1', 0)
315
+ bind_address = options.fetch('bind_address', '127.0.0.1')
316
+ socket = TCPServer.new(bind_address, 0)
316
317
  socket.listen(BACKLOG_SIZE)
317
318
  socket.setsockopt(Socket::IPPROTO_TCP, Socket::TCP_NODELAY, 1)
318
319
  socket.binmode
319
320
  socket.sync = true
320
321
  socket.close_on_exec!
321
- socket_address = "tcp://127.0.0.1:#{socket.addr[1]}"
322
+ socket_address = "tcp://#{bind_address}:#{socket.addr[1]}"
322
323
  return [socket_address, socket]
323
324
  end
324
325
 
@@ -267,6 +267,11 @@ module PhusionPassenger
267
267
  headers["SERVER_NAME"] = "127.0.0.1"
268
268
  headers["SERVER_PORT"] = connection.addr[1].to_s
269
269
  headers["SERVER_PROTOCOL"] = protocol
270
+ headers["REMOTE_PORT"],
271
+ headers["REMOTE_ADDR"] = connection.to_io.is_a?(TCPSocket) ?
272
+ connection.to_io.peeraddr(:numeric)[1..2] :
273
+ [nil, '127.0.0.1']
274
+
270
275
  else
271
276
  header, value = line.split(/\s*:\s*/, 2)
272
277
  header.upcase! # "Foo-Bar" => "FOO-BAR"
@@ -258,6 +258,13 @@ module PhusionPassenger
258
258
  :default => PlatformInfo.ruby_supports_fork? ? DEFAULT_SPAWN_METHOD : 'direct',
259
259
  :desc => 'The spawn method to use. Default: see docs'
260
260
  },
261
+ {
262
+ :name => :direct_instance_request_address,
263
+ :type => :hostname,
264
+ :type_desc => 'HOST',
265
+ :default => '127.0.0.1',
266
+ :desc => "The address that Passenger binds to in order to allow sending HTTP requests to individual application processes.\nDefault: %DEFAULT%"
267
+ },
261
268
  {
262
269
  :name => :static_files_dir,
263
270
  :type => :path,
@@ -436,6 +443,12 @@ module PhusionPassenger
436
443
  :desc => "Cookie name to use for sticky sessions.\n" \
437
444
  "Default: #{DEFAULT_STICKY_SESSIONS_COOKIE_NAME}"
438
445
  },
446
+ {
447
+ :name => :sticky_sessions_cookie_attributes,
448
+ :type_desc => "'NAME1=VALUE1; NAME2'",
449
+ :desc => "The attributes to use for the sticky session cookie.\n" \
450
+ "Default: #{DEFAULT_STICKY_SESSIONS_COOKIE_ATTRIBUTES}"
451
+ },
439
452
  {
440
453
  :name => :vary_turbocache_by_cookie,
441
454
  :type_desc => 'NAME',
@@ -109,6 +109,7 @@ module PhusionPassenger
109
109
  add_param(command, :log_file, "--log-file")
110
110
  add_param(command, :pid_file, "--pid-file")
111
111
  add_param(command, :instance_registry_dir, "--instance-registry-dir")
112
+ add_param(command, :spawn_dir, "--spawn-dir")
112
113
  add_param(command, :data_buffer_dir, "--data-buffer-dir")
113
114
  add_param(command, :log_level, "--log-level")
114
115
  add_flag_param(command, :disable_log_prefix, "--disable-log-prefix")
@@ -174,6 +175,7 @@ module PhusionPassenger
174
175
  add_flag_param(command, :sticky_sessions, "--sticky-sessions")
175
176
  add_param(command, :vary_turbocache_by_cookie, "--vary-turbocache-by-cookie")
176
177
  add_param(command, :sticky_sessions_cookie_name, "--sticky-sessions-cookie-name")
178
+ add_param(command, :sticky_sessions_cookie_attributes, "--sticky-sessions-cookie-attributes")
177
179
  add_param(command, :ruby, "--ruby")
178
180
  add_param(command, :python, "--python")
179
181
  add_param(command, :nodejs, "--nodejs")
@@ -229,7 +231,7 @@ module PhusionPassenger
229
231
  abort "The '#{option_name}' feature is only available in #{PROGRAM_NAME} " +
230
232
  "Enterprise. You are currently running the open source #{PROGRAM_NAME}. " +
231
233
  "Please learn more about and/or buy #{PROGRAM_NAME} Enterprise at " +
232
- "https://www.phusionpassenger.com/enterprise"
234
+ "https://www.phusionpassenger.com/features#premium-features"
233
235
  end
234
236
  end
235
237
 
@@ -238,7 +240,7 @@ module PhusionPassenger
238
240
  abort "The '#{option_name}' feature is only available in #{PROGRAM_NAME} " +
239
241
  "Enterprise. You are currently running the open source #{PROGRAM_NAME}. " +
240
242
  "Please learn more about and/or buy #{PROGRAM_NAME} Enterprise at " +
241
- "https://www.phusionpassenger.com/enterprise"
243
+ "https://www.phusionpassenger.com/features#premium-features"
242
244
  end
243
245
  end
244
246
 
@@ -286,7 +286,7 @@ module PhusionPassenger
286
286
  if fix_existing_indenting
287
287
  # Remove extraneous indenting by 'if' blocks
288
288
  # and collapse multiple empty newlines
289
- result.gsub!(/;[\n ]+/, ";\n")
289
+ result.gsub!(/;[\n ]+$/, ";\n")
290
290
  end
291
291
 
292
292
  # Set indenting
@@ -24,6 +24,10 @@
24
24
 
25
25
  PhusionPassenger.require_passenger_lib 'utils' # So that we can know whether #writev is supported.
26
26
 
27
+ # https://www.ruby-lang.org/en/news/2019/12/12/separation-of-positional-and-keyword-arguments-in-ruby-3-0/
28
+ def ruby2_keywords(*)
29
+ end if RUBY_VERSION < "2.7"
30
+
27
31
  module PhusionPassenger
28
32
  module Utils
29
33
 
@@ -117,7 +121,7 @@ module PhusionPassenger
117
121
  raise annotate(e)
118
122
  end
119
123
 
120
- def write_nonblock(string, *args)
124
+ ruby2_keywords def write_nonblock(string, *args)
121
125
  @socket.write_nonblock(string, *args)
122
126
  rescue => e
123
127
  raise annotate(e)
@@ -141,25 +145,25 @@ module PhusionPassenger
141
145
  raise annotate(e)
142
146
  end if IO.method_defined?(:writev3)
143
147
 
144
- def send(*args)
148
+ ruby2_keywords def send(*args)
145
149
  @socket.send(*args)
146
150
  rescue => e
147
151
  raise annotate(e)
148
152
  end
149
153
 
150
- def sendmsg(*args)
154
+ ruby2_keywords def sendmsg(*args)
151
155
  @socket.sendmsg(*args)
152
156
  rescue => e
153
157
  raise annotate(e)
154
158
  end
155
159
 
156
- def sendmsg_nonblock(*args)
160
+ ruby2_keywords def sendmsg_nonblock(*args)
157
161
  @socket.sendmsg_nonblock(*args)
158
162
  rescue => e
159
163
  raise annotate(e)
160
164
  end
161
165
 
162
- def puts(*args)
166
+ ruby2_keywords def puts(*args)
163
167
  @socket.puts(*args)
164
168
  rescue => e
165
169
  raise annotate(e)
@@ -172,7 +176,7 @@ module PhusionPassenger
172
176
  raise annotate(e)
173
177
  end
174
178
 
175
- def read(*args)
179
+ ruby2_keywords def read(*args)
176
180
  if @simulate_eof
177
181
  length, buffer = args
178
182
  if buffer
@@ -191,14 +195,14 @@ module PhusionPassenger
191
195
  raise annotate(e)
192
196
  end
193
197
 
194
- def read_nonblock(*args)
198
+ ruby2_keywords def read_nonblock(*args)
195
199
  raise EOFError, "end of file reached" if @simulate_eof
196
200
  @socket.read_nonblock(*args)
197
201
  rescue => e
198
202
  raise annotate(e)
199
203
  end
200
204
 
201
- def readpartial(*args)
205
+ ruby2_keywords def readpartial(*args)
202
206
  raise EOFError, "end of file reached" if @simulate_eof
203
207
  @socket.readpartial(*args)
204
208
  rescue => e
@@ -212,21 +216,21 @@ module PhusionPassenger
212
216
  raise annotate(e)
213
217
  end
214
218
 
215
- def recv(*args)
219
+ ruby2_keywords def recv(*args)
216
220
  raise EOFError, "end of file reached" if @simulate_eof
217
221
  @socket.recv(*args)
218
222
  rescue => e
219
223
  raise annotate(e)
220
224
  end
221
225
 
222
- def recvfrom(*args)
226
+ ruby2_keywords def recvfrom(*args)
223
227
  raise EOFError, "end of file reached" if @simulate_eof
224
228
  @socket.recvfrom(*args)
225
229
  rescue => e
226
230
  raise annotate(e)
227
231
  end
228
232
 
229
- def recvfrom_nonblock(*args)
233
+ ruby2_keywords def recvfrom_nonblock(*args)
230
234
  raise EOFError, "end of file reached" if @simulate_eof
231
235
  @socket.recvfrom_nonblock(*args)
232
236
  rescue => e