passenger 6.0.2 → 6.0.7

Sign up to get free protection for your applications and to get access to all the features.
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
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: '0619ca90cabc94ee6b8801d143b14877ab15500d'
4
- data.tar.gz: f65f9070719053192fcc50206cb146cd18dbba2f
3
+ metadata.gz: f5bed57f29715aa183e879b4f8ff0606e510f5d4
4
+ data.tar.gz: b970598c5d2970d0d95be66917b9c00992477339
5
5
  SHA512:
6
- metadata.gz: 9e844139554498a4662950e649dcf56b768bc74f9a306ef070d13fa504e2f18869e701fd8ceb064aaba5bb4987277ee9910f8aaf2ec8135f60823645895a1965
7
- data.tar.gz: 8b0bc8083d5a620506813ae1946fc900e3ae65016fcd552a5c8ea6273d0cf247482d676146eb889fa776b1059e91d4dc51249c9aa7a2c070120f2d9458e32992
6
+ metadata.gz: a84cbe0a43944e25b8c3b18342402e445f4654f787d98cfa701e03f8c027990ef68dbaab2fda87d68eefe0b3777ef1f2c1171efa5966a41417ddaaf91b3dad3b
7
+ data.tar.gz: 34905738ff424b9c60a5993f2dd4d60374b1835b6cd34c44eeb70c14d1b2e8d0c74f77a24ce47515e419825b31ffc6178a3a133c7724d3ee4fb08acfd2d8ba50
data/CHANGELOG CHANGED
@@ -1,9 +1,142 @@
1
+ Release 6.0.7
2
+ -------------
3
+ * Addresses regression introduced in 6.0.5 when attempting to establish database connection after fork and activerecord is not configured in the expected way. Closes GH-2281.
4
+ * Addresses regression introduced in 5.1.5 where hook scripts would fail to run. As a result the PASSENGER_ERROR_PAGE and PASSENGER_CONFIG_MANIFEST env vars have been removed from the passenger hook script environment.
5
+ * Match static rails assets on 8-digit content hash. Contributed by @mattozinga.
6
+ * Allow skipping the Apache/Nginx sections of the `passenger-memory-stats` output, through the `--no-apache` and `--no-nginx` commandline options. Closes GH-2306. Contributed by Saverio Miroddi (@saveriomiroddi).
7
+ * Fixes an issue where `passenger-memory-stats` would throw an error if a process went away while it was running. Closes GH-2305.
8
+ * Fixes a formatting issue with apr-1 include flags on macOS.
9
+ * Fixes a warning about BOOST_*_ENDIAN macros being deprecated by migrating to new suggested macros.
10
+ * Fixes an occasional issue with the node loader where the startup handshake would fail to record progress.
11
+ * Adds an option for specifying the address to bind ruby apps to, for sending requests directly to specific app instances:
12
+ - Standalone: direct_instance_request_address
13
+ - Nginx: passenger_direct_instance_request_address
14
+ - Apache: PassengerDirectInstanceRequestAddress
15
+ * Updated various library versions used in precompiled binaries (used for e.g. gem installs):
16
+
17
+ - ccache: 4.0 (was: 3.7.10)
18
+ - curl: 7.73.0 (was: 7.71.1)
19
+ - git: 2.29.1 (was: 2.27.0)
20
+ - gnupg: 2.2.23 (was: 2.2.21)
21
+ - libgpg_error: 1.39 (was: 1.38)
22
+ - ruby: 2.7.2 (was: 2.7.1)
23
+ - libassuan 2.5.4 (was: 2.5.3)
24
+ - libgcrypt 1.8.7 (was 1.8.6)
25
+ - OpenSSL 1.1.1h (was 1.0.2u)
26
+
27
+ Release 6.0.6
28
+ -------------
29
+ * Update gemspec with up to date metadata.
30
+ * Reverts the addition of the 'etc' gem to the Passenger gemspec, because it broke on normal ruby installs. Closes GH-2283.
31
+ * Builds Ubuntu focal Nginx dynamic module package against Nginx 1.18.0. Closes GH-2291.
32
+ * No longer providing prebuilt Ruby 2.1 or 2.2 binaries, they have been EOL for years and rubygems no longer supports them.
33
+ * Updated various library versions used in precompiled binaries (used for e.g. gem installs):
34
+
35
+ - ccache 3.7.10 (was 3.7.9)
36
+ - Curl 7.71.1 (was 7.69.1)
37
+ - Git 2.27.0 (was 2.26.2)
38
+ - GnuPG 2.2.21 (was 2.2.20)
39
+ - libgpg_error 1.38 (was 1.37)
40
+ - libgcrypt 1.8.6 (was 1.8.5)
41
+ - RubyGems 3.1.4 (was 3.0.8)
42
+
43
+
44
+ Release 6.0.5
45
+ -------------
46
+
47
+ * [Enterprise] Fixed a regression (introduced in 5.0.0) where Flying Passenger could not update the Passenger configuration. Closes GH-1554.
48
+ * Adds Ubuntu 20.04 "Focal" packages, and removes Ubuntu 19.04 "Disco" packages.
49
+ * Adds RHEL / CentOS 8 packages.
50
+ * [Nginx] Converts CentOS 7 packages to provide a dynamic module instead of a full Nginx install.
51
+ * Fixes the encoding name for xml output from the `passenger-status --show=xml` command. Closes GH-2248.
52
+ * Adds the 'etc' gem as an explicit dependency. Closes GH-2124.
53
+ * Adds a user agent to the passenger pre-spawn script. Closes GH-1534.
54
+ * Fixes a compilation issue on FreeBSD. Closes GH-2240.
55
+ * Fixes an issue where rack bodies may not be processed correctly.
56
+ * Improves the database reconnection speed in forked processes. closes GH-2253.
57
+ * [Nginx] Adds a config option `passenger_temp_path` to set the path used for the disk backed response cache. Re-Closes GH-2075.
58
+ * [Apache] Protects the path info and script name passed to the app from modifications done by mod_security. Closes GH-2198.
59
+ * Ensures baseuri is set per request, even if config is loaded from cache. Closes GH-2117.
60
+ * Make temp dir toucher cleanup code more resilient to permissions issues.
61
+ * [Nginx] Bumps the preferred Nginx version to 1.18.0 (previously 1.17.3).
62
+ * [Nginx] The preferred PCRE version is now 8.44 (previously 8.43).
63
+ * Removed deprecated rubyforge gemspec property. Contributed by @olleolleolle.
64
+ * Adds an option for specifying the attributes on the sticky session cookie:
65
+ - Apache: PassengerStickySessionsCookieAttributes "SameSite=Lax; Secure;"
66
+ - Nginx: passenger_sticky_sessions_cookie_attributes "SameSite=Lax; Secure;"
67
+ - Standalone: --sticky-sessions-cookie-attributes "SameSite=Lax; Secure;"
68
+ * Updated various library versions used in precompiled binaries (used for e.g. gem installs):
69
+
70
+ - ccache 3.7.9 (was 3.7.3)
71
+ - Curl 7.69.1 (was 7.66.0)
72
+ - Git 2.26.2 (was 2.23.0)
73
+ - GnuPG 2.2.20 (was 2.2.17)
74
+ - libgpg_error 1.37 (was 1.36)
75
+ - OpenSSL 1.0.2u (was 1.0.2t)
76
+ - PCRE 8.44 (was 8.43)
77
+ - s3cmd 2.1.0 (was 2.0.2)
78
+ - RubyGems 3.0.8 (was 3.0.6)
79
+ - Rubies:
80
+ - 2.4.6 -> 2.4.10
81
+ - 2.5.5 -> 2.5.8
82
+ - 2.6.3 -> 2.6.6
83
+ + 2.7.1
84
+
85
+
86
+ Release 6.0.4
87
+ -------------
88
+
89
+ * Adds Debian 10 "Buster" packages.
90
+
91
+
92
+ Release 6.0.3
93
+ -------------
94
+
95
+ * Add an option to specify the spawn dir during startup, which is specifically useful for CageFS users. Contributed by @plmnikulin. Closes GH-2145.
96
+
97
+ - Apache: `PassengerSpawnDir`
98
+ - Nginx: `passenger_spawn_dir`
99
+
100
+ * [Nginx] Bumps the preferred Nginx version to 1.17.3 (previously 1.15.8).
101
+ * [Nginx] The preferred PCRE version is now 8.43 (previously 8.42).
102
+ * Adds Ubuntu 19.04 "Disco" packages, and removes Ubuntu 18.10 "Cosmic" and Ubuntu 14.04 "Trusty" packages.
103
+ * Changes minimum supported macOS version to 10.12 Sierra.
104
+ * Improves container detection and fixes a compilation warning in GCC 8+. Closes GH-2186.
105
+ * Allowed externally specifying an app instance to send a request to. Contributed by Mark R. James (@mrj).
106
+ * Fixed an incompatibility with sending requests to specific app instances, when using the rails web-console gem. Contributed by Mark R. James (@mrj).
107
+ * Fixed a regression (introduced in 5.1.9) where some hooks were not called. Closes GH-2103. Contributed by Mark R. James (@mrj).
108
+ * Fixes compilation with clang 8 (latest macOS update) by updating vendored boost library from 1.67 to 1.69.
109
+ * Reverts a regression intruduced in 6.0.2 where Passenger would crash if it had to use the disk backed response cache. Closes GH-2189.
110
+ * [Nginx] Adds an option `passenger_buffer_upload` to allow buffering uploaded data in Passenger before forwarding it to the app. As a workaround for apps that cannot handle chunked data.
111
+ * [Enterprise] When using deferred port binding, no longer binds port if all apps do not start up.
112
+ * Updated various library versions used in precompiled binaries (used for e.g. gem installs):
113
+
114
+ - PCRE 8.43 (was 8.42)
115
+ - Curl 7.65.1 (was 7.64.0)
116
+ - ccache 3.7.3 (was 3.6)
117
+ - Git 2.22.0 (was 2.20.1)
118
+ - OpenSSL 1.0.2s (was 1.0.2q)
119
+ - RubyGems 3.0.6 (was 3.0.2)
120
+ - GnuPG 2.2.16 (was 2.2.13)
121
+ - libgcrypt 1.8.5 (was 1.8.4)
122
+ - libgpg_error 1.36 (was 1.35)
123
+ - libiconv 1.16 (was 1.15)
124
+ - Ruby:
125
+ - 2.4.5 -> 2.4.6
126
+ - 2.5.3 -> 2.5.5
127
+ - 2.6.1 -> 2.6.3
128
+
129
+
1
130
  Release 6.0.2
2
131
  -------------
3
132
 
4
133
  * Allow compilation to work when Apple messed up their system ruby headers.
5
134
  * Only try to read pid 1's /proc files as root, in container detection. Closes GH-2168.
6
- * Add an option to disable prefixing application logs with "App PID stdout": `PassengerDisableLogPrefix` (Apache) / `passenger_disable_log_prefix` (Nginx). Closes GH-1915.
135
+ * Add an option to disable prefixing application logs with "App PID stdout". Contributed by Ian Kottman. Closes GH-1915.
136
+
137
+ - Apache: `PassengerDisableLogPrefix`
138
+ - Nginx: `passenger_disable_log_prefix`
139
+
7
140
  * Add support for identifying the Passenger instance by PID. Closes GH-2146. Contributed by Saverio Miroddi (@saveriomiroddi).
8
141
  * [Ruby] Made Passenger more resiliant to Rack bugs. Closes GH-2150.
9
142
  * [Nginx] Do not touch Nginx's proxy_temp_path var in Passenger's nginx modules. Closes GH-2075. Contributed by Roman Berestnikov-Sivolov (@ROMB).
@@ -338,7 +471,7 @@ Release 5.1.1
338
471
  * The security update check now reports whether libcurl + SSL backend are statically linked to Passenger, in which case the check also needs to warn about relevant OpenSSL vulnerabilities in the linked library.
339
472
  * Increases the allowed line lengths emitted by apps at startup.
340
473
  * Adds support for the unary 'not' operator in the Union Station filter language.
341
- * [Enterprise] Add missing flying-passenger integration mode to security update check.
474
+ * [Enterprise] Add missing flying-passenger integration mode to security update check.
342
475
  * Fixes support for Rails 5.0.1 Action Cable. Specifically, we now support the `options` argument in the `write_nonblock` method in hijacked Rack IO sockets.
343
476
  * [Apache] Introduces a small delay to prevent running the Security Update Checker twice at startup.
344
477
 
@@ -350,11 +483,11 @@ Release 5.1.0
350
483
  * [Enterprise] When running a Rails app in multithreaded mode, Passenger Enterprise automatically tags Rails logs with the current thread number. This makes it possible to distinguish logs generated by different threads.
351
484
  * Fixes permissions issue on Linux when setting OOM score after lowering privileges. Closes GH-1858.
352
485
  * [Standalone] Allows raw json envvars in Passengerfile.json. Closes GH-1837.
353
- * [Standalone] Make the `max_requests` option available on the command line as well.
486
+ * [Standalone] Make the `max_requests` option available on the command line as well.
354
487
  * Fixes unaligned memory access in base64 decoder on platforms that have strict aliasing requirements (non x86/x86_64). Closes GH-1646.
355
488
  * Introduces daily Passenger security update check to warn (error log) if there are newer Passenger versions with important security fixes (describing what was discovered, what is affected, which version has the fix).
356
489
  * Fixes compilation on Linux when a non-glibc C library is in use. Closes GH-1870.
357
- * `passenger-install-nginx-module` and the standalone compiler now add the http v2, realip and addition module flags for Nginx (just like the APT/RPM/autobuilder already had). Closes GH-1788.
490
+ * `passenger-install-nginx-module` and the standalone compiler now add the http v2, realip and addition module flags for Nginx (just like the APT/RPM/autobuilder already had). Closes GH-1788.
358
491
  * [Apache] Fixes PassengerShowVersionInHeader option. Thanks to Sebastian Welther for contributing this.
359
492
  * Passenger now reports when you try to use Node.js or Meteor clustering, and tries to continue with just a nonfunctional shim in place, so that if your code uses the clustering APIs your app may still work.
360
493
  * Updates libev config.sub and config.guess to support newer platforms such as the IBM power 8.
@@ -517,7 +650,7 @@ Release 5.0.22
517
650
  * The `passenger-config validate-install` command no longer prints false warnings about duplicate Passenger installs on systems that use RBenv. Closes GH-1627.
518
651
  * Fixes race conditions in the automatic building of the Ruby native support extension. Closes GH-1570.
519
652
  * [Enterprise] Fixes compatibility with byebug 7.0. Closes GH-1662.
520
- * Support Union Station logging for Node.js applications, with Express/MongoDB automatically supported.
653
+ * Support Union Station logging for Node.js applications, with Express/MongoDB automatically supported.
521
654
  * The Ruby Union Station hooks no longer abort with a fatal error when the application does not call the Union Station initializer method during startup. The error is now only logged.
522
655
  * In case of an error response (HTTP 5xx), Union Station logging will also contain request headers.
523
656
  * The Union Station hooks are now more resilient against environment variable problems.
@@ -580,7 +713,7 @@ Release 5.0.16
580
713
  * Supports seek() such that body.rewind works when using Rack middleware that uses Zlib::GzipReader (e.g. for compressed requests). Closes GH-1553.
581
714
  * [Apache] Improves detection of Apache configuration file problems. Closes GH-1577.
582
715
  * [Enterprise] Fixes installation of the Passenger Enterprise Apache module on Debian Testing.
583
- * Fixes logging of HTTP response code for Union Station. This regression was introduced by Passenger 5. Closes GH-1581.
716
+ * Fixes logging of HTTP response code for Union Station. This regression was introduced by Passenger 5. Closes GH-1581.
584
717
  * Adds a new subcommand `passenger-config about support-binaries-dir`.
585
718
  * Fixes a regression in the Node.js loader with regard to custom startup files. This bug was introduced in 5.0.14. Closes GH-1557 (again).
586
719
  * Fixes a crash when a Ruby application is accessed through a sub-URI and a root virtual host at the same time.
@@ -2401,9 +2534,9 @@ Release 2.2.15
2401
2534
  * [Apache] Fixed incorrect temp dir cleanup by passenger-status
2402
2535
  On some systems, running passenger-status could print the following
2403
2536
  message:
2404
-
2537
+
2405
2538
  *** Cleaning stale folder /tmp/passenger.1234
2406
-
2539
+
2407
2540
  ...after which Phusion Passenger breaks because that directory is
2408
2541
  necessary for it to function properly. The cause of this problem
2409
2542
  has been found and has been fixed.
@@ -2480,10 +2613,10 @@ Release 2.2.11
2480
2613
  affects Apache. When under high load, Apache might freeze and stop
2481
2614
  responding to requests. It is caused by a race condition which is
2482
2615
  why it escaped our last release testing.
2483
-
2616
+
2484
2617
  This problem does not affect Nginx; you only have to upgrade if
2485
2618
  you're using Apache.
2486
-
2619
+
2487
2620
  http://groups.google.com/group/phusion-passenger/t/d5bb2f17c8446ea0
2488
2621
 
2489
2622
 
@@ -2505,20 +2638,20 @@ Release 2.2.9
2505
2638
  Actually, previous Phusion Passenger releases were already compatible
2506
2639
  with Rails 3, depending on the spawn method that would be invoked. Here's
2507
2640
  the story:
2508
-
2641
+
2509
2642
  Since Phusion Passenger 2.2.8, when the file config.ru exists, Phusion
2510
2643
  Passenger will treat the app as a Rack app, not as a Rails app. This is
2511
2644
  in contrast to earlier versions which gave Rails detection more priority
2512
2645
  than Rack detection. Phusion Passenger loads Rack apps and Rails apps in
2513
2646
  different ways. The Rails loader was not compatible with Rails 3, which
2514
2647
  is what we've fixed in this release.
2515
-
2648
+
2516
2649
  That said, a Rails 3 app would have worked out-of-the-box on Phusion
2517
2650
  Passenger 2.2.8 as well because Rails 3 apps include a config.ru file
2518
2651
  by default, causing Phusion Passenger 2.2.8 to use the Rack loader.
2519
2652
  Earlier versions of Phusion Passenger would just completely bail out
2520
2653
  because they'd use the Rails loader.
2521
-
2654
+
2522
2655
  That said, with 2.2.9 there are still some caveats:
2523
2656
  - Smart spawning (the mechanism with which REE's 33% memory reduction
2524
2657
  is implemented) is *not* supported for Rack apps. This means that if
@@ -2527,7 +2660,7 @@ Release 2.2.9
2527
2660
  - Rails 3 depends on Rack 1.1.0. You must have Rack 1.1.0 installed as
2528
2661
  a gem, even if you've bundled it with the gem bundler. This is because
2529
2662
  Phusion Passenger itself depends on Rack.
2530
-
2663
+
2531
2664
  Both of these caveats are temporary. We have plans to solve both of these
2532
2665
  properly in the future.
2533
2666
  * What's up with the Gem Bundler?
@@ -2537,9 +2670,9 @@ Release 2.2.9
2537
2670
  version seems to work fine. Please note that you need to insert the
2538
2671
  following snippet in config/preinitializer.rb, as instructed by the gem
2539
2672
  bundler's README:
2540
-
2673
+
2541
2674
  require "#{RAILS_ROOT}/vendor/gems/environment"
2542
-
2675
+
2543
2676
  The Rails::Boot monkey patching code as posted at
2544
2677
  http://yehudakatz.com/2009/11/03/using-the-new-gem-bundler-today/
2545
2678
  does not seem to be required anymore.
@@ -2588,7 +2721,7 @@ Release 2.2.8
2588
2721
  seen an error message along the lines of
2589
2722
 
2590
2723
  *** Exception IOError in Passenger RequestHandler (closed stream)
2591
-
2724
+
2592
2725
  then this is a Ruby bug at work. This bug has been fixed in Ruby 1.9.2,
2593
2726
  but Ruby 1.9.1 still contains this bug. We've added a workaround so that
2594
2727
  the bug is not triggered with this Ruby version. Issue #432.
@@ -2679,7 +2812,7 @@ Release 2.2.5
2679
2812
  headers. It turns out that some people relied on the old behavior, we so now
2680
2813
  environment variables set with mod_env are set in both ENV and in the CGI
2681
2814
  environment.
2682
-
2815
+
2683
2816
  Fixes bug #335.
2684
2817
 
2685
2818
  * [Apache] Fixed compilation problems on some Linux systems with older versions of Apache
@@ -2747,7 +2880,7 @@ Release 2.2.5
2747
2880
  order: first models, then controllers, then helpers.
2748
2881
 
2749
2882
  Bug #359.
2750
-
2883
+
2751
2884
  * Fixed a few bugs in WSGI compliance
2752
2885
  PATH_INFO is supposed to be set to the request URI, but without the query
2753
2886
  string and without the base URI. This has been fixed: bug #360.
@@ -19,7 +19,7 @@
19
19
  * [Further reading](#further_reading)
20
20
  * [Pull requests](#pull_requests)
21
21
 
22
- Thank you for your interest in Phusion Passenger. Phusion Passenger is open source so your contributions are very welcome. Although we also provide a [commercial version](https://www.phusionpassenger.com/enterprise) and [commercial support](https://www.phusionpassenger.com/commercial_support), the core remains open source and we remain committed to keep it that way. This guide gives you an overview of the ways with which you can contribute, as well as contribution guidelines.
22
+ Thank you for your interest in Phusion Passenger. Phusion Passenger is open source so your contributions are very welcome. Although we also provide a [commercial version](https://www.phusionpassenger.com/features#premium-features) and [commercial support](https://www.phusionpassenger.com/commercial_support), the core remains open source and we remain committed to keep it that way. This guide gives you an overview of the ways with which you can contribute, as well as contribution guidelines.
23
23
 
24
24
  You can contribute in one of the following areas:
25
25
 
@@ -64,6 +64,8 @@ Luuk Hafkamp (Phusion)
64
64
  Luuk Hendriks (Phusion)
65
65
  MAEDA Go
66
66
  Magnus Holm
67
+ Mark R. James
68
+ Matt Ozinga
67
69
  Michal Papis
68
70
  Michał Pokrywka
69
71
  Mike
@@ -71,8 +73,10 @@ Mike Boone
71
73
  Morton Jonuschat
72
74
  Nathaniel Bibler
73
75
  Neil Wilson
76
+ Nicolas Maloeuvre
74
77
  Ninh Bui (Phusion)
75
78
  Oleksiy Shchukin
79
+ Olle Jonsson
76
80
  Pat Downey
77
81
  Paul B
78
82
  Paul Kmiec
@@ -80,6 +84,7 @@ Pepijn Looije
80
84
  Perry Smith
81
85
  Philip M. Gollucci
82
86
  PikachuEXE
87
+ plmnikulin
83
88
  Po-Chuan Hsieh
84
89
  Radagaisus
85
90
  Redmar Kerkhoff
@@ -268,7 +268,7 @@ private
268
268
  new_screen
269
269
  puts "<banner>PCRE (required by Nginx) not installed, downloading it...</banner>"
270
270
 
271
- url = "http://downloads.sourceforge.net/project/pcre/pcre/#{PREFERRED_PCRE_VERSION}/pcre-#{PREFERRED_PCRE_VERSION}.tar.gz"
271
+ url = "https://ftp.pcre.org/pub/pcre/pcre-#{PREFERRED_PCRE_VERSION}.tar.gz"
272
272
  dirname = "pcre-#{PREFERRED_PCRE_VERSION}"
273
273
  tarball = "#{@working_dir}/pcre.tar.gz"
274
274
 
@@ -38,6 +38,7 @@ PhusionPassenger.require_passenger_lib 'platform_info'
38
38
  PhusionPassenger.require_passenger_lib 'platform_info/ruby'
39
39
  PhusionPassenger.require_passenger_lib 'admin_tools/memory_stats'
40
40
  PhusionPassenger.require_passenger_lib 'utils/ansi_colors'
41
+ require 'optparse'
41
42
 
42
43
  include PhusionPassenger
43
44
 
@@ -107,27 +108,78 @@ class Table
107
108
  end
108
109
  end
109
110
 
111
+ # Parses the specific commandline options.
112
+ #
113
+ # Modeled after `passenger-status` logic, with minor tweaks.
114
+ #
115
+ class CommandLineOptionsParser
116
+ def parse
117
+ options = {}
118
+ parser = create_option_parser(options)
119
+
120
+ begin
121
+ parser.parse!
122
+ options
123
+ rescue OptionParser::ParseError => e
124
+ STDERR.puts e
125
+ STDERR.puts
126
+ STDERR.puts "Please see '--help' for valid options."
127
+
128
+ exit 1
129
+ end
130
+ end
131
+
132
+ private
133
+
134
+ def create_option_parser(options)
135
+ OptionParser.new do |opts|
136
+ opts.banner = "Usage: #{File.basename(__FILE__)} [-h|--help] [--no-apache] [--no-nginx]"
137
+
138
+ opts.separator ""
139
+ opts.separator "Tool for inspecting the application server and Phusion Passenger's memory statistics."
140
+ opts.separator ""
141
+
142
+ opts.separator "Options:"
143
+
144
+ opts.on("--no-apache", "Do not display the Apache statistics.") do
145
+ options[:no_apache] = true
146
+ end
147
+ opts.on("--no-nginx", "Do not display the Nginx statistics.") do
148
+ options[:no_nginx] = true
149
+ end
150
+ end
151
+ end
152
+ end
153
+
110
154
  class App
111
155
  def initialize
112
156
  @stats = AdminTools::MemoryStats.new
113
157
  @colors = Utils::AnsiColors.new
114
158
  end
115
159
 
116
- def start
160
+ def start(options = {})
161
+ print_apache_stats = !options.fetch(:no_apache, false)
162
+ print_nginx_stats = !options.fetch(:no_nginx, false)
163
+
117
164
  puts "Version: #{PhusionPassenger::VERSION_STRING}"
118
165
  puts "Date : #{Time.now}"
119
- if @stats.apache_processes
120
- print_process_list("Apache processes", @stats.apache_processes)
121
- else
122
- puts "#{@colors.blue_bg}#{@colors.bold}#{@colors.yellow}------------- Apache processes -------------#{@colors.reset}\n"
123
- STDERR.puts "*** WARNING: The Apache executable cannot be found."
124
- STDERR.puts "Please set the APXS2 environment variable to your 'apxs2' " <<
125
- "executable's filename, or set the HTTPD environment variable " <<
126
- "to your 'httpd' or 'apache2' executable's filename."
166
+
167
+ if print_apache_stats
168
+ if @stats.apache_processes
169
+ print_process_list("Apache processes", @stats.apache_processes)
170
+ else
171
+ puts "#{@colors.blue_bg}#{@colors.bold}#{@colors.yellow}------------- Apache processes -------------#{@colors.reset}\n"
172
+ STDERR.puts "*** WARNING: The Apache executable cannot be found."
173
+ STDERR.puts "Please set the APXS2 environment variable to your 'apxs2' " <<
174
+ "executable's filename, or set the HTTPD environment variable " <<
175
+ "to your 'httpd' or 'apache2' executable's filename."
176
+ end
127
177
  end
128
178
 
129
- puts
130
- print_process_list("Nginx processes", @stats.nginx_processes)
179
+ if print_nginx_stats
180
+ puts
181
+ print_process_list("Nginx processes", @stats.nginx_processes)
182
+ end
131
183
 
132
184
  puts
133
185
  print_process_list("Passenger processes", @stats.passenger_processes, :show_ppid => false)
@@ -175,4 +227,5 @@ private
175
227
  end
176
228
  end
177
229
 
178
- App.new.start
230
+ options = CommandLineOptionsParser.new.parse
231
+ App.new.start(options)
@@ -1,6 +1,6 @@
1
1
  # encoding: utf-8
2
2
 
3
- # Copyright (c) 2016 Phusion Holding B.V.
3
+ # Copyright (c) 2016-2018 Phusion Holding B.V.
4
4
  #
5
5
  # "Union Station" and "Passenger" are trademarks of Phusion Holding B.V.
6
6
  #
@@ -360,13 +360,66 @@ module CxxCodeBuilder
360
360
  # bar(int x) {
361
361
  # printf("x = %d\n", x);
362
362
  # }
363
- def function(declaration, body = nil)
363
+ def function(declaration, body = nil, &block)
364
+ function_or_constructor(declaration, nil, body, &block)
365
+ end
366
+
367
+ # Adds a C++ constructor definition to the internal buffer. This is
368
+ # like #function, but also allows defining member initializers.
369
+ # `member_initializers` is a Hash which maps field names to their
370
+ # initialization expressions.
371
+ #
372
+ # Example:
373
+ #
374
+ # member_initializers = {
375
+ # 'name' => '"Delorean"',
376
+ # 'color' => 'COLOR_RED'
377
+ # }
378
+ # constructor('Car::Car()', member_initializers) do
379
+ # add_code 'printf("Created a car\n");'
380
+ # end
381
+ #
382
+ # Output:
383
+ #
384
+ # Car::Car()
385
+ # : name("Delorean"),
386
+ # color(COLOR_RED)
387
+ # {
388
+ # printf("Created a car\n");
389
+ # }
390
+ def constructor(declaration, member_initializers, body = nil, &block)
391
+ function_or_constructor(declaration, member_initializers, body, &block)
392
+ end
393
+
394
+ def function_or_constructor(declaration, member_initializers, body = nil)
364
395
  declaration =~ /(.*?)([a-z0-9_:]+)\s*\((.*)\s*(const)?/mi
365
396
  return_type_and_attributes = $1
366
397
  name_and_params = "#{$2}(#{$3} #{$4}".strip
367
398
 
368
399
  add_code return_type_and_attributes.strip
369
- add_code "#{name_and_params.strip} {"
400
+ if member_initializers && !member_initializers.empty?
401
+ add_code "#{name_and_params.strip}"
402
+ indent do
403
+ member_initializers.each_with_index do |elem, i|
404
+ field, expr = elem
405
+ if i == 0
406
+ prefix = @indent_string * @indent_level + ': '
407
+ else
408
+ prefix = @indent_string * @indent_level + ' '
409
+ end
410
+ if i == member_initializers.size - 1
411
+ suffix = nil
412
+ else
413
+ suffix = ','
414
+ end
415
+ add_raw_code("#{prefix}#{field}(#{expr})#{suffix}\n")
416
+ end
417
+ end
418
+ add_code '{'
419
+ else
420
+ add_code "#{name_and_params.strip} {"
421
+ end
422
+
370
423
  indent do
371
424
  if block_given?
372
425
  yield