passenger 6.0.10 → 6.0.13

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 (448) hide show
  1. checksums.yaml +4 -4
  2. data/CHANGELOG +84 -1
  3. data/CONTRIBUTORS +4 -0
  4. data/bin/passenger-install-nginx-module +2 -1
  5. data/build/common_library.rb +1 -1
  6. data/dev/copy_boost_headers +48 -16
  7. data/dev/index_cxx_dependencies.rb +1 -1
  8. data/dev/webpacketpp.patch +39 -0
  9. data/package.json +1 -1
  10. data/resources/mime.types +1 -0
  11. data/resources/templates/standalone/server.erb +1 -0
  12. data/src/agent/Core/ApplicationPool/Group/StateInspection.cpp +1 -0
  13. data/src/agent/Core/ApplicationPool/Options.h +5 -0
  14. data/src/agent/Core/Config.h +1 -1
  15. data/src/agent/Core/Controller/CheckoutSession.cpp +24 -13
  16. data/src/agent/Core/Controller/Config.h +5 -2
  17. data/src/agent/Core/Controller/InitRequest.cpp +2 -0
  18. data/src/agent/Core/Controller/InternalUtils.cpp +32 -6
  19. data/src/agent/Core/Controller.h +4 -1
  20. data/src/agent/Core/OptionParser.h +4 -0
  21. data/src/agent/Core/SpawningKit/Config/AutoGeneratedCode.h +7 -0
  22. data/src/agent/Core/SpawningKit/Config.h +13 -0
  23. data/src/agent/Core/SpawningKit/Handshake/Prepare.h +4 -0
  24. data/src/agent/Core/SpawningKit/Spawner.h +1 -0
  25. data/src/agent/SpawnEnvSetupper/SpawnEnvSetupperMain.cpp +4 -0
  26. data/src/agent/Watchdog/Config.h +1 -1
  27. data/src/apache2_module/ConfigGeneral/AutoGeneratedDefinitions.cpp +5 -0
  28. data/src/apache2_module/ConfigGeneral/AutoGeneratedManifestDefaultsInitialization.cpp +5 -0
  29. data/src/apache2_module/ConfigGeneral/AutoGeneratedSetterFuncs.cpp +18 -0
  30. data/src/apache2_module/DirConfig/AutoGeneratedCreateFunction.cpp +3 -0
  31. data/src/apache2_module/DirConfig/AutoGeneratedHeaderSerialization.cpp +3 -0
  32. data/src/apache2_module/DirConfig/AutoGeneratedManifestGeneration.cpp +11 -0
  33. data/src/apache2_module/DirConfig/AutoGeneratedMergeFunction.cpp +7 -0
  34. data/src/apache2_module/DirConfig/AutoGeneratedStruct.h +17 -0
  35. data/src/apache2_module/Hooks.cpp +1 -0
  36. data/src/cxx_supportlib/Constants.h +1 -1
  37. data/src/cxx_supportlib/IOTools/IOUtils.cpp +4 -4
  38. data/src/cxx_supportlib/vendor-modified/boost/align/align.hpp +19 -0
  39. data/src/cxx_supportlib/vendor-modified/boost/align/aligned_alloc.hpp +47 -0
  40. data/src/cxx_supportlib/vendor-modified/boost/align/alignment_of.hpp +54 -0
  41. data/src/cxx_supportlib/vendor-modified/boost/align/alignment_of_forward.hpp +20 -0
  42. data/src/cxx_supportlib/vendor-modified/boost/align/detail/align_cxx11.hpp +21 -0
  43. data/src/cxx_supportlib/vendor-modified/boost/align/detail/aligned_alloc.hpp +52 -0
  44. data/src/cxx_supportlib/vendor-modified/boost/align/detail/aligned_alloc_posix.hpp +41 -0
  45. data/src/cxx_supportlib/vendor-modified/boost/align/detail/alignment_of.hpp +31 -0
  46. data/src/cxx_supportlib/vendor-modified/boost/align/detail/alignment_of_cxx11.hpp +23 -0
  47. data/src/cxx_supportlib/vendor-modified/boost/align/detail/element_type.hpp +91 -0
  48. data/src/cxx_supportlib/vendor-modified/boost/align/detail/integral_constant.hpp +53 -0
  49. data/src/cxx_supportlib/vendor-modified/boost/align/detail/is_alignment.hpp +28 -0
  50. data/src/cxx_supportlib/vendor-modified/boost/align/detail/min_size.hpp +26 -0
  51. data/src/cxx_supportlib/vendor-modified/boost/asio/associated_allocator.hpp +53 -1
  52. data/src/cxx_supportlib/vendor-modified/boost/asio/associated_cancellation_slot.hpp +179 -0
  53. data/src/cxx_supportlib/vendor-modified/boost/asio/associated_executor.hpp +57 -1
  54. data/src/cxx_supportlib/vendor-modified/boost/asio/associator.hpp +37 -0
  55. data/src/cxx_supportlib/vendor-modified/boost/asio/async_result.hpp +789 -106
  56. data/src/cxx_supportlib/vendor-modified/boost/asio/awaitable.hpp +1 -1
  57. data/src/cxx_supportlib/vendor-modified/boost/asio/basic_datagram_socket.hpp +80 -0
  58. data/src/cxx_supportlib/vendor-modified/boost/asio/basic_deadline_timer.hpp +10 -0
  59. data/src/cxx_supportlib/vendor-modified/boost/asio/basic_raw_socket.hpp +80 -0
  60. data/src/cxx_supportlib/vendor-modified/boost/asio/basic_seq_packet_socket.hpp +30 -0
  61. data/src/cxx_supportlib/vendor-modified/boost/asio/basic_socket.hpp +20 -0
  62. data/src/cxx_supportlib/vendor-modified/boost/asio/basic_socket_acceptor.hpp +90 -0
  63. data/src/cxx_supportlib/vendor-modified/boost/asio/basic_stream_socket.hpp +60 -0
  64. data/src/cxx_supportlib/vendor-modified/boost/asio/basic_waitable_timer.hpp +10 -0
  65. data/src/cxx_supportlib/vendor-modified/boost/asio/bind_cancellation_slot.hpp +723 -0
  66. data/src/cxx_supportlib/vendor-modified/boost/asio/bind_executor.hpp +191 -12
  67. data/src/cxx_supportlib/vendor-modified/boost/asio/cancellation_signal.hpp +361 -0
  68. data/src/cxx_supportlib/vendor-modified/boost/asio/cancellation_state.hpp +237 -0
  69. data/src/cxx_supportlib/vendor-modified/boost/asio/cancellation_type.hpp +176 -0
  70. data/src/cxx_supportlib/vendor-modified/boost/asio/co_spawn.hpp +30 -2
  71. data/src/cxx_supportlib/vendor-modified/boost/asio/connect.hpp +60 -0
  72. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/base_from_cancellation_state.hpp +165 -0
  73. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/bind_handler.hpp +209 -76
  74. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/config.hpp +149 -60
  75. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/deadline_timer_service.hpp +40 -0
  76. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/dev_poll_reactor.hpp +8 -4
  77. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/epoll_reactor.hpp +14 -4
  78. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/functional.hpp +6 -0
  79. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/handler_alloc_helpers.hpp +14 -10
  80. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/handler_type_requirements.hpp +21 -18
  81. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/handler_work.hpp +30 -19
  82. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/impl/dev_poll_reactor.hpp +8 -0
  83. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/impl/dev_poll_reactor.ipp +14 -0
  84. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/impl/epoll_reactor.hpp +20 -0
  85. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/impl/epoll_reactor.ipp +30 -0
  86. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/impl/kqueue_reactor.hpp +20 -0
  87. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/impl/kqueue_reactor.ipp +29 -0
  88. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/impl/select_reactor.hpp +24 -0
  89. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/impl/select_reactor.ipp +19 -0
  90. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/impl/strand_executor_service.hpp +3 -1
  91. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/impl/timer_queue_ptime.ipp +6 -0
  92. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/kqueue_reactor.hpp +15 -5
  93. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/memory.hpp +60 -0
  94. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/pop_options.hpp +8 -0
  95. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/push_options.hpp +27 -0
  96. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/reactive_descriptor_service.hpp +93 -0
  97. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/reactive_socket_service.hpp +77 -0
  98. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/reactive_socket_service_base.hpp +111 -0
  99. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/reactor_op.hpp +4 -0
  100. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/reactor_op_queue.hpp +44 -0
  101. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/recycling_allocator.hpp +2 -1
  102. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/resolve_endpoint_op.hpp +2 -2
  103. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/select_reactor.hpp +14 -4
  104. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/thread_info_base.hpp +90 -24
  105. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/timer_queue.hpp +30 -1
  106. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/timer_queue_ptime.hpp +4 -0
  107. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/wait_op.hpp +5 -1
  108. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/work_dispatcher.hpp +5 -2
  109. data/src/cxx_supportlib/vendor-modified/boost/asio/execution/any_executor.hpp +12 -12
  110. data/src/cxx_supportlib/vendor-modified/boost/asio/execution/bulk_execute.hpp +10 -8
  111. data/src/cxx_supportlib/vendor-modified/boost/asio/execution/connect.hpp +8 -8
  112. data/src/cxx_supportlib/vendor-modified/boost/asio/execution/execute.hpp +7 -7
  113. data/src/cxx_supportlib/vendor-modified/boost/asio/execution/schedule.hpp +7 -7
  114. data/src/cxx_supportlib/vendor-modified/boost/asio/execution/set_done.hpp +7 -7
  115. data/src/cxx_supportlib/vendor-modified/boost/asio/execution/set_error.hpp +7 -7
  116. data/src/cxx_supportlib/vendor-modified/boost/asio/execution/set_value.hpp +13 -13
  117. data/src/cxx_supportlib/vendor-modified/boost/asio/execution/start.hpp +7 -7
  118. data/src/cxx_supportlib/vendor-modified/boost/asio/execution/submit.hpp +8 -8
  119. data/src/cxx_supportlib/vendor-modified/boost/asio/experimental/append.hpp +73 -0
  120. data/src/cxx_supportlib/vendor-modified/boost/asio/experimental/as_tuple.hpp +133 -0
  121. data/src/cxx_supportlib/vendor-modified/boost/asio/experimental/awaitable_operators.hpp +538 -0
  122. data/src/cxx_supportlib/vendor-modified/boost/asio/experimental/cancellation_condition.hpp +157 -0
  123. data/src/cxx_supportlib/vendor-modified/boost/asio/experimental/coro.hpp +1057 -0
  124. data/src/cxx_supportlib/vendor-modified/boost/asio/experimental/deferred.hpp +607 -0
  125. data/src/cxx_supportlib/vendor-modified/boost/asio/experimental/detail/completion_handler_erasure.hpp +160 -0
  126. data/src/cxx_supportlib/vendor-modified/boost/asio/experimental/detail/coro_promise_allocator.hpp +120 -0
  127. data/src/cxx_supportlib/vendor-modified/boost/asio/experimental/detail/coro_traits.hpp +185 -0
  128. data/src/cxx_supportlib/vendor-modified/boost/asio/experimental/detail/partial_promise.hpp +181 -0
  129. data/src/cxx_supportlib/vendor-modified/boost/asio/experimental/impl/append.hpp +219 -0
  130. data/src/cxx_supportlib/vendor-modified/boost/asio/experimental/impl/as_single.hpp +14 -28
  131. data/src/cxx_supportlib/vendor-modified/boost/asio/experimental/impl/as_tuple.hpp +248 -0
  132. data/src/cxx_supportlib/vendor-modified/boost/asio/experimental/impl/deferred.hpp +106 -0
  133. data/src/cxx_supportlib/vendor-modified/boost/asio/experimental/impl/parallel_group.hpp +434 -0
  134. data/src/cxx_supportlib/vendor-modified/boost/asio/experimental/impl/prepend.hpp +219 -0
  135. data/src/cxx_supportlib/vendor-modified/boost/asio/experimental/impl/promise.hpp +100 -0
  136. data/src/cxx_supportlib/vendor-modified/boost/asio/experimental/parallel_group.hpp +217 -0
  137. data/src/cxx_supportlib/vendor-modified/boost/asio/experimental/prepend.hpp +73 -0
  138. data/src/cxx_supportlib/vendor-modified/boost/asio/experimental/promise.hpp +608 -0
  139. data/src/cxx_supportlib/vendor-modified/boost/asio/experimental/use_coro.hpp +284 -0
  140. data/src/cxx_supportlib/vendor-modified/boost/asio/impl/awaitable.hpp +344 -20
  141. data/src/cxx_supportlib/vendor-modified/boost/asio/impl/buffered_read_stream.hpp +23 -54
  142. data/src/cxx_supportlib/vendor-modified/boost/asio/impl/buffered_write_stream.hpp +23 -54
  143. data/src/cxx_supportlib/vendor-modified/boost/asio/impl/co_spawn.hpp +66 -18
  144. data/src/cxx_supportlib/vendor-modified/boost/asio/impl/compose.hpp +55 -5
  145. data/src/cxx_supportlib/vendor-modified/boost/asio/impl/connect.hpp +68 -80
  146. data/src/cxx_supportlib/vendor-modified/boost/asio/impl/defer.hpp +8 -4
  147. data/src/cxx_supportlib/vendor-modified/boost/asio/impl/dispatch.hpp +8 -4
  148. data/src/cxx_supportlib/vendor-modified/boost/asio/impl/handler_alloc_hook.ipp +3 -2
  149. data/src/cxx_supportlib/vendor-modified/boost/asio/impl/post.hpp +8 -4
  150. data/src/cxx_supportlib/vendor-modified/boost/asio/impl/read.hpp +98 -113
  151. data/src/cxx_supportlib/vendor-modified/boost/asio/impl/read_at.hpp +71 -82
  152. data/src/cxx_supportlib/vendor-modified/boost/asio/impl/read_until.hpp +210 -266
  153. data/src/cxx_supportlib/vendor-modified/boost/asio/impl/redirect_error.hpp +248 -30
  154. data/src/cxx_supportlib/vendor-modified/boost/asio/impl/spawn.hpp +11 -21
  155. data/src/cxx_supportlib/vendor-modified/boost/asio/impl/use_awaitable.hpp +15 -3
  156. data/src/cxx_supportlib/vendor-modified/boost/asio/impl/write.hpp +71 -87
  157. data/src/cxx_supportlib/vendor-modified/boost/asio/impl/write_at.hpp +46 -68
  158. data/src/cxx_supportlib/vendor-modified/boost/asio/io_context.hpp +4 -4
  159. data/src/cxx_supportlib/vendor-modified/boost/asio/local/detail/impl/endpoint.ipp +2 -7
  160. data/src/cxx_supportlib/vendor-modified/boost/asio/posix/basic_descriptor.hpp +10 -0
  161. data/src/cxx_supportlib/vendor-modified/boost/asio/posix/basic_stream_descriptor.hpp +23 -3
  162. data/src/cxx_supportlib/vendor-modified/boost/asio/prefer.hpp +21 -21
  163. data/src/cxx_supportlib/vendor-modified/boost/asio/query.hpp +9 -9
  164. data/src/cxx_supportlib/vendor-modified/boost/asio/read.hpp +88 -0
  165. data/src/cxx_supportlib/vendor-modified/boost/asio/read_at.hpp +44 -0
  166. data/src/cxx_supportlib/vendor-modified/boost/asio/read_until.hpp +132 -0
  167. data/src/cxx_supportlib/vendor-modified/boost/asio/require.hpp +21 -21
  168. data/src/cxx_supportlib/vendor-modified/boost/asio/require_concept.hpp +9 -9
  169. data/src/cxx_supportlib/vendor-modified/boost/asio/ssl/detail/buffered_handshake_op.hpp +1 -1
  170. data/src/cxx_supportlib/vendor-modified/boost/asio/ssl/detail/engine.hpp +5 -0
  171. data/src/cxx_supportlib/vendor-modified/boost/asio/ssl/detail/handshake_op.hpp +1 -1
  172. data/src/cxx_supportlib/vendor-modified/boost/asio/ssl/detail/impl/engine.ipp +14 -0
  173. data/src/cxx_supportlib/vendor-modified/boost/asio/ssl/detail/io.hpp +36 -27
  174. data/src/cxx_supportlib/vendor-modified/boost/asio/ssl/detail/read_op.hpp +1 -1
  175. data/src/cxx_supportlib/vendor-modified/boost/asio/ssl/detail/shutdown_op.hpp +2 -2
  176. data/src/cxx_supportlib/vendor-modified/boost/asio/ssl/detail/stream_core.hpp +37 -0
  177. data/src/cxx_supportlib/vendor-modified/boost/asio/ssl/detail/write_op.hpp +1 -1
  178. data/src/cxx_supportlib/vendor-modified/boost/asio/ssl/impl/context.ipp +14 -7
  179. data/src/cxx_supportlib/vendor-modified/boost/asio/ssl/stream.hpp +73 -1
  180. data/src/cxx_supportlib/vendor-modified/boost/asio/system_executor.hpp +4 -4
  181. data/src/cxx_supportlib/vendor-modified/boost/asio/this_coro.hpp +235 -0
  182. data/src/cxx_supportlib/vendor-modified/boost/asio/thread_pool.hpp +4 -4
  183. data/src/cxx_supportlib/vendor-modified/boost/asio/use_awaitable.hpp +7 -10
  184. data/src/cxx_supportlib/vendor-modified/boost/asio/version.hpp +1 -1
  185. data/src/cxx_supportlib/vendor-modified/boost/asio/windows/basic_random_access_handle.hpp +20 -0
  186. data/src/cxx_supportlib/vendor-modified/boost/asio/windows/basic_stream_handle.hpp +20 -0
  187. data/src/cxx_supportlib/vendor-modified/boost/asio/write.hpp +88 -0
  188. data/src/cxx_supportlib/vendor-modified/boost/asio/write_at.hpp +44 -0
  189. data/src/cxx_supportlib/vendor-modified/boost/asio.hpp +6 -0
  190. data/src/cxx_supportlib/vendor-modified/boost/atomic/atomic_ref.hpp +14 -1
  191. data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/config.hpp +17 -13
  192. data/src/cxx_supportlib/vendor-modified/boost/atomic/ipc_atomic_ref.hpp +14 -1
  193. data/src/cxx_supportlib/vendor-modified/boost/config/assert_cxx03.hpp +2 -5
  194. data/src/cxx_supportlib/vendor-modified/boost/config/assert_cxx11.hpp +2 -5
  195. data/src/cxx_supportlib/vendor-modified/boost/config/assert_cxx14.hpp +2 -2
  196. data/src/cxx_supportlib/vendor-modified/boost/config/assert_cxx17.hpp +2 -2
  197. data/src/cxx_supportlib/vendor-modified/boost/config/assert_cxx20.hpp +56 -0
  198. data/src/cxx_supportlib/vendor-modified/boost/config/auto_link.hpp +1 -5
  199. data/src/cxx_supportlib/vendor-modified/boost/config/compiler/common_edg.hpp +31 -11
  200. data/src/cxx_supportlib/vendor-modified/boost/config/detail/cxx_composite.hpp +20 -4
  201. data/src/cxx_supportlib/vendor-modified/boost/config/detail/select_platform_config.hpp +5 -0
  202. data/src/cxx_supportlib/vendor-modified/boost/config/detail/suffix.hpp +81 -0
  203. data/src/cxx_supportlib/vendor-modified/boost/config/platform/bsd.hpp +5 -8
  204. data/src/cxx_supportlib/vendor-modified/boost/config/platform/wasm.hpp +17 -0
  205. data/src/cxx_supportlib/vendor-modified/boost/config/stdlib/dinkumware.hpp +26 -0
  206. data/src/cxx_supportlib/vendor-modified/boost/config/stdlib/libcpp.hpp +49 -0
  207. data/src/cxx_supportlib/vendor-modified/boost/config/stdlib/libstdcpp3.hpp +46 -4
  208. data/src/cxx_supportlib/vendor-modified/boost/container/adaptive_pool.hpp +2 -2
  209. data/src/cxx_supportlib/vendor-modified/boost/container/allocator.hpp +1 -1
  210. data/src/cxx_supportlib/vendor-modified/boost/container/detail/adaptive_node_pool.hpp +2 -2
  211. data/src/cxx_supportlib/vendor-modified/boost/container/detail/node_pool.hpp +2 -2
  212. data/src/cxx_supportlib/vendor-modified/boost/container/detail/std_fwd.hpp +3 -0
  213. data/src/cxx_supportlib/vendor-modified/boost/container/devector.hpp +2 -2
  214. data/src/cxx_supportlib/vendor-modified/boost/container/new_allocator.hpp +1 -1
  215. data/src/cxx_supportlib/vendor-modified/boost/container/node_allocator.hpp +1 -1
  216. data/src/cxx_supportlib/vendor-modified/boost/container/pmr/polymorphic_allocator.hpp +6 -6
  217. data/src/cxx_supportlib/vendor-modified/boost/container/static_vector.hpp +4 -4
  218. data/src/cxx_supportlib/vendor-modified/boost/container/throw_exception.hpp +45 -38
  219. data/src/cxx_supportlib/vendor-modified/boost/container/vector.hpp +24 -0
  220. data/src/cxx_supportlib/vendor-modified/boost/core/ignore_unused.hpp +32 -2
  221. data/src/cxx_supportlib/vendor-modified/boost/core/uncaught_exceptions.hpp +7 -7
  222. data/src/cxx_supportlib/vendor-modified/boost/date_time/compiler_config.hpp +0 -24
  223. data/src/cxx_supportlib/vendor-modified/boost/date_time/posix_time/time_parsers.hpp +4 -0
  224. data/src/cxx_supportlib/vendor-modified/boost/intrusive/any_hook.hpp +4 -4
  225. data/src/cxx_supportlib/vendor-modified/boost/intrusive/avl_set.hpp +83 -83
  226. data/src/cxx_supportlib/vendor-modified/boost/intrusive/avltree.hpp +43 -43
  227. data/src/cxx_supportlib/vendor-modified/boost/intrusive/avltree_algorithms.hpp +31 -31
  228. data/src/cxx_supportlib/vendor-modified/boost/intrusive/bs_set.hpp +85 -85
  229. data/src/cxx_supportlib/vendor-modified/boost/intrusive/bstree.hpp +68 -68
  230. data/src/cxx_supportlib/vendor-modified/boost/intrusive/bstree_algorithms.hpp +72 -62
  231. data/src/cxx_supportlib/vendor-modified/boost/intrusive/circular_list_algorithms.hpp +19 -20
  232. data/src/cxx_supportlib/vendor-modified/boost/intrusive/circular_slist_algorithms.hpp +19 -19
  233. data/src/cxx_supportlib/vendor-modified/boost/intrusive/derivation_value_traits.hpp +4 -4
  234. data/src/cxx_supportlib/vendor-modified/boost/intrusive/detail/any_node_and_algorithms.hpp +2 -2
  235. data/src/cxx_supportlib/vendor-modified/boost/intrusive/detail/bstree_algorithms_base.hpp +3 -3
  236. data/src/cxx_supportlib/vendor-modified/boost/intrusive/detail/common_slist_algorithms.hpp +5 -5
  237. data/src/cxx_supportlib/vendor-modified/boost/intrusive/detail/config_begin.hpp +1 -0
  238. data/src/cxx_supportlib/vendor-modified/boost/intrusive/detail/generic_hook.hpp +8 -8
  239. data/src/cxx_supportlib/vendor-modified/boost/intrusive/detail/hash_combine.hpp +2 -4
  240. data/src/cxx_supportlib/vendor-modified/boost/intrusive/detail/hashtable_node.hpp +1 -1
  241. data/src/cxx_supportlib/vendor-modified/boost/intrusive/detail/math.hpp +2 -50
  242. data/src/cxx_supportlib/vendor-modified/boost/intrusive/detail/node_cloner_disposer.hpp +1 -1
  243. data/src/cxx_supportlib/vendor-modified/boost/intrusive/hashtable.hpp +71 -70
  244. data/src/cxx_supportlib/vendor-modified/boost/intrusive/linear_slist_algorithms.hpp +15 -14
  245. data/src/cxx_supportlib/vendor-modified/boost/intrusive/list.hpp +84 -82
  246. data/src/cxx_supportlib/vendor-modified/boost/intrusive/list_hook.hpp +10 -10
  247. data/src/cxx_supportlib/vendor-modified/boost/intrusive/member_value_traits.hpp +4 -4
  248. data/src/cxx_supportlib/vendor-modified/boost/intrusive/parent_from_member.hpp +2 -2
  249. data/src/cxx_supportlib/vendor-modified/boost/intrusive/pointer_plus_bits.hpp +4 -4
  250. data/src/cxx_supportlib/vendor-modified/boost/intrusive/pointer_traits.hpp +18 -18
  251. data/src/cxx_supportlib/vendor-modified/boost/intrusive/rbtree.hpp +43 -43
  252. data/src/cxx_supportlib/vendor-modified/boost/intrusive/rbtree_algorithms.hpp +26 -26
  253. data/src/cxx_supportlib/vendor-modified/boost/intrusive/set.hpp +85 -85
  254. data/src/cxx_supportlib/vendor-modified/boost/intrusive/set_hook.hpp +12 -12
  255. data/src/cxx_supportlib/vendor-modified/boost/intrusive/sg_set.hpp +93 -93
  256. data/src/cxx_supportlib/vendor-modified/boost/intrusive/sgtree.hpp +51 -51
  257. data/src/cxx_supportlib/vendor-modified/boost/intrusive/sgtree_algorithms.hpp +24 -24
  258. data/src/cxx_supportlib/vendor-modified/boost/intrusive/slist.hpp +104 -104
  259. data/src/cxx_supportlib/vendor-modified/boost/intrusive/slist_hook.hpp +8 -6
  260. data/src/cxx_supportlib/vendor-modified/boost/intrusive/splay_set.hpp +91 -91
  261. data/src/cxx_supportlib/vendor-modified/boost/intrusive/splaytree.hpp +46 -46
  262. data/src/cxx_supportlib/vendor-modified/boost/intrusive/splaytree_algorithms.hpp +31 -31
  263. data/src/cxx_supportlib/vendor-modified/boost/intrusive/treap.hpp +51 -51
  264. data/src/cxx_supportlib/vendor-modified/boost/intrusive/treap_algorithms.hpp +18 -18
  265. data/src/cxx_supportlib/vendor-modified/boost/intrusive/treap_set.hpp +97 -97
  266. data/src/cxx_supportlib/vendor-modified/boost/intrusive/trivial_value_traits.hpp +6 -4
  267. data/src/cxx_supportlib/vendor-modified/boost/intrusive/unordered_set.hpp +63 -63
  268. data/src/cxx_supportlib/vendor-modified/boost/intrusive/unordered_set_hook.hpp +15 -15
  269. data/src/cxx_supportlib/vendor-modified/boost/lexical_cast/detail/converter_numeric.hpp +4 -1
  270. data/src/cxx_supportlib/vendor-modified/boost/move/detail/config_begin.hpp +1 -0
  271. data/src/cxx_supportlib/vendor-modified/boost/move/detail/iterator_traits.hpp +1 -0
  272. data/src/cxx_supportlib/vendor-modified/boost/move/detail/nsec_clock.hpp +1 -1
  273. data/src/cxx_supportlib/vendor-modified/boost/operators.hpp +2 -0
  274. data/src/cxx_supportlib/vendor-modified/boost/regex/concepts.hpp +1 -1
  275. data/src/cxx_supportlib/vendor-modified/boost/regex/v4/basic_regex_parser.hpp +3 -0
  276. data/src/cxx_supportlib/vendor-modified/boost/regex/v4/unicode_iterator.hpp +112 -31
  277. data/src/cxx_supportlib/vendor-modified/boost/regex/v5/basic_regex_parser.hpp +3 -0
  278. data/src/cxx_supportlib/vendor-modified/boost/regex/v5/mem_block_cache.hpp +4 -8
  279. data/src/cxx_supportlib/vendor-modified/boost/regex/v5/unicode_iterator.hpp +0 -2
  280. data/src/cxx_supportlib/vendor-modified/boost/regex/v5/w32_regex_traits.hpp +6 -2
  281. data/src/cxx_supportlib/vendor-modified/boost/smart_ptr/detail/shared_count.hpp +1 -1
  282. data/src/cxx_supportlib/vendor-modified/boost/smart_ptr/detail/sp_counted_impl.hpp +22 -2
  283. data/src/cxx_supportlib/vendor-modified/boost/smart_ptr/detail/sp_obsolete.hpp +32 -0
  284. data/src/cxx_supportlib/vendor-modified/boost/smart_ptr/shared_ptr.hpp +59 -1
  285. data/src/cxx_supportlib/vendor-modified/boost/system/detail/config.hpp +9 -11
  286. data/src/cxx_supportlib/vendor-modified/boost/system/detail/error_category.hpp +27 -21
  287. data/src/cxx_supportlib/vendor-modified/boost/system/detail/error_category_impl.hpp +34 -3
  288. data/src/cxx_supportlib/vendor-modified/boost/system/detail/error_code.hpp +378 -36
  289. data/src/cxx_supportlib/vendor-modified/boost/system/detail/error_condition.hpp +97 -21
  290. data/src/cxx_supportlib/vendor-modified/boost/system/detail/interop_category.hpp +107 -0
  291. data/src/cxx_supportlib/vendor-modified/boost/system/detail/is_same.hpp +33 -0
  292. data/src/cxx_supportlib/vendor-modified/boost/system/detail/snprintf.hpp +70 -0
  293. data/src/cxx_supportlib/vendor-modified/boost/system/detail/{to_std_category.hpp → std_category.hpp} +5 -55
  294. data/src/cxx_supportlib/vendor-modified/boost/system/detail/system_category_impl.hpp +2 -12
  295. data/src/cxx_supportlib/vendor-modified/boost/system/error_code.hpp +0 -33
  296. data/src/cxx_supportlib/vendor-modified/boost/utility/detail/result_of_variadic.hpp +190 -0
  297. data/src/cxx_supportlib/vendor-modified/boost/utility/result_of.hpp +20 -9
  298. data/src/cxx_supportlib/vendor-modified/boost/utility/string_view.hpp +3 -1
  299. data/src/cxx_supportlib/vendor-modified/boost/version.hpp +2 -2
  300. data/src/cxx_supportlib/{vendor-copy → vendor-modified}/websocketpp/COPYING +0 -0
  301. data/src/cxx_supportlib/{vendor-copy → vendor-modified}/websocketpp/changelog.md +0 -0
  302. data/src/cxx_supportlib/{vendor-copy → vendor-modified}/websocketpp/readme.md +0 -0
  303. data/src/cxx_supportlib/{vendor-copy → vendor-modified}/websocketpp/websocketpp/base64/base64.hpp +0 -0
  304. data/src/cxx_supportlib/{vendor-copy → vendor-modified}/websocketpp/websocketpp/client.hpp +0 -0
  305. data/src/cxx_supportlib/{vendor-copy → vendor-modified}/websocketpp/websocketpp/close.hpp +0 -0
  306. data/src/cxx_supportlib/{vendor-copy → vendor-modified}/websocketpp/websocketpp/common/asio.hpp +0 -0
  307. data/src/cxx_supportlib/{vendor-copy → vendor-modified}/websocketpp/websocketpp/common/asio_ssl.hpp +0 -0
  308. data/src/cxx_supportlib/{vendor-copy → vendor-modified}/websocketpp/websocketpp/common/chrono.hpp +0 -0
  309. data/src/cxx_supportlib/{vendor-copy → vendor-modified}/websocketpp/websocketpp/common/connection_hdl.hpp +0 -0
  310. data/src/cxx_supportlib/{vendor-copy → vendor-modified}/websocketpp/websocketpp/common/cpp11.hpp +0 -0
  311. data/src/cxx_supportlib/{vendor-copy → vendor-modified}/websocketpp/websocketpp/common/functional.hpp +2 -7
  312. data/src/cxx_supportlib/{vendor-copy → vendor-modified}/websocketpp/websocketpp/common/md5.hpp +0 -0
  313. data/src/cxx_supportlib/{vendor-copy → vendor-modified}/websocketpp/websocketpp/common/memory.hpp +0 -0
  314. data/src/cxx_supportlib/{vendor-copy → vendor-modified}/websocketpp/websocketpp/common/network.hpp +0 -0
  315. data/src/cxx_supportlib/{vendor-copy → vendor-modified}/websocketpp/websocketpp/common/platforms.hpp +0 -0
  316. data/src/cxx_supportlib/{vendor-copy → vendor-modified}/websocketpp/websocketpp/common/random.hpp +0 -0
  317. data/src/cxx_supportlib/{vendor-copy → vendor-modified}/websocketpp/websocketpp/common/regex.hpp +0 -0
  318. data/src/cxx_supportlib/{vendor-copy → vendor-modified}/websocketpp/websocketpp/common/stdint.hpp +0 -0
  319. data/src/cxx_supportlib/{vendor-copy → vendor-modified}/websocketpp/websocketpp/common/system_error.hpp +0 -0
  320. data/src/cxx_supportlib/{vendor-copy → vendor-modified}/websocketpp/websocketpp/common/thread.hpp +0 -0
  321. data/src/cxx_supportlib/{vendor-copy → vendor-modified}/websocketpp/websocketpp/common/time.hpp +0 -0
  322. data/src/cxx_supportlib/{vendor-copy → vendor-modified}/websocketpp/websocketpp/common/type_traits.hpp +0 -0
  323. data/src/cxx_supportlib/{vendor-copy → vendor-modified}/websocketpp/websocketpp/concurrency/basic.hpp +0 -0
  324. data/src/cxx_supportlib/{vendor-copy → vendor-modified}/websocketpp/websocketpp/concurrency/none.hpp +0 -0
  325. data/src/cxx_supportlib/{vendor-copy → vendor-modified}/websocketpp/websocketpp/config/asio.hpp +0 -0
  326. data/src/cxx_supportlib/{vendor-copy → vendor-modified}/websocketpp/websocketpp/config/asio_client.hpp +0 -0
  327. data/src/cxx_supportlib/{vendor-copy → vendor-modified}/websocketpp/websocketpp/config/asio_no_tls.hpp +0 -0
  328. data/src/cxx_supportlib/{vendor-copy → vendor-modified}/websocketpp/websocketpp/config/asio_no_tls_client.hpp +0 -0
  329. data/src/cxx_supportlib/{vendor-copy → vendor-modified}/websocketpp/websocketpp/config/boost_config.hpp +0 -0
  330. data/src/cxx_supportlib/{vendor-copy → vendor-modified}/websocketpp/websocketpp/config/core.hpp +0 -0
  331. data/src/cxx_supportlib/{vendor-copy → vendor-modified}/websocketpp/websocketpp/config/core_client.hpp +0 -0
  332. data/src/cxx_supportlib/{vendor-copy → vendor-modified}/websocketpp/websocketpp/config/debug.hpp +0 -0
  333. data/src/cxx_supportlib/{vendor-copy → vendor-modified}/websocketpp/websocketpp/config/debug_asio.hpp +0 -0
  334. data/src/cxx_supportlib/{vendor-copy → vendor-modified}/websocketpp/websocketpp/config/debug_asio_no_tls.hpp +0 -0
  335. data/src/cxx_supportlib/{vendor-copy → vendor-modified}/websocketpp/websocketpp/config/minimal_client.hpp +0 -0
  336. data/src/cxx_supportlib/{vendor-copy → vendor-modified}/websocketpp/websocketpp/config/minimal_server.hpp +0 -0
  337. data/src/cxx_supportlib/{vendor-copy → vendor-modified}/websocketpp/websocketpp/connection.hpp +0 -0
  338. data/src/cxx_supportlib/{vendor-copy → vendor-modified}/websocketpp/websocketpp/connection_base.hpp +0 -0
  339. data/src/cxx_supportlib/{vendor-copy → vendor-modified}/websocketpp/websocketpp/endpoint.hpp +0 -0
  340. data/src/cxx_supportlib/{vendor-copy → vendor-modified}/websocketpp/websocketpp/endpoint_base.hpp +0 -0
  341. data/src/cxx_supportlib/{vendor-copy → vendor-modified}/websocketpp/websocketpp/error.hpp +0 -0
  342. data/src/cxx_supportlib/{vendor-copy → vendor-modified}/websocketpp/websocketpp/extensions/extension.hpp +0 -0
  343. data/src/cxx_supportlib/{vendor-copy → vendor-modified}/websocketpp/websocketpp/extensions/permessage_deflate/disabled.hpp +0 -0
  344. data/src/cxx_supportlib/{vendor-copy → vendor-modified}/websocketpp/websocketpp/extensions/permessage_deflate/enabled.hpp +0 -0
  345. data/src/cxx_supportlib/{vendor-copy → vendor-modified}/websocketpp/websocketpp/frame.hpp +0 -0
  346. data/src/cxx_supportlib/{vendor-copy → vendor-modified}/websocketpp/websocketpp/http/constants.hpp +0 -0
  347. data/src/cxx_supportlib/{vendor-copy → vendor-modified}/websocketpp/websocketpp/http/impl/parser.hpp +0 -0
  348. data/src/cxx_supportlib/{vendor-copy → vendor-modified}/websocketpp/websocketpp/http/impl/request.hpp +0 -0
  349. data/src/cxx_supportlib/{vendor-copy → vendor-modified}/websocketpp/websocketpp/http/impl/response.hpp +0 -0
  350. data/src/cxx_supportlib/{vendor-copy → vendor-modified}/websocketpp/websocketpp/http/parser.hpp +0 -0
  351. data/src/cxx_supportlib/{vendor-copy → vendor-modified}/websocketpp/websocketpp/http/request.hpp +0 -0
  352. data/src/cxx_supportlib/{vendor-copy → vendor-modified}/websocketpp/websocketpp/http/response.hpp +0 -0
  353. data/src/cxx_supportlib/{vendor-copy → vendor-modified}/websocketpp/websocketpp/impl/connection_impl.hpp +0 -0
  354. data/src/cxx_supportlib/{vendor-copy → vendor-modified}/websocketpp/websocketpp/impl/endpoint_impl.hpp +0 -0
  355. data/src/cxx_supportlib/{vendor-copy → vendor-modified}/websocketpp/websocketpp/impl/utilities_impl.hpp +0 -0
  356. data/src/cxx_supportlib/{vendor-copy → vendor-modified}/websocketpp/websocketpp/logger/basic.hpp +0 -0
  357. data/src/cxx_supportlib/{vendor-copy → vendor-modified}/websocketpp/websocketpp/logger/levels.hpp +0 -0
  358. data/src/cxx_supportlib/{vendor-copy → vendor-modified}/websocketpp/websocketpp/logger/stub.hpp +0 -0
  359. data/src/cxx_supportlib/{vendor-copy → vendor-modified}/websocketpp/websocketpp/logger/syslog.hpp +0 -0
  360. data/src/cxx_supportlib/{vendor-copy → vendor-modified}/websocketpp/websocketpp/message_buffer/alloc.hpp +0 -0
  361. data/src/cxx_supportlib/{vendor-copy → vendor-modified}/websocketpp/websocketpp/message_buffer/message.hpp +0 -0
  362. data/src/cxx_supportlib/{vendor-copy → vendor-modified}/websocketpp/websocketpp/message_buffer/pool.hpp +0 -0
  363. data/src/cxx_supportlib/{vendor-copy → vendor-modified}/websocketpp/websocketpp/processors/base.hpp +0 -0
  364. data/src/cxx_supportlib/{vendor-copy → vendor-modified}/websocketpp/websocketpp/processors/hybi00.hpp +0 -0
  365. data/src/cxx_supportlib/{vendor-copy → vendor-modified}/websocketpp/websocketpp/processors/hybi07.hpp +0 -0
  366. data/src/cxx_supportlib/{vendor-copy → vendor-modified}/websocketpp/websocketpp/processors/hybi08.hpp +0 -0
  367. data/src/cxx_supportlib/{vendor-copy → vendor-modified}/websocketpp/websocketpp/processors/hybi13.hpp +0 -0
  368. data/src/cxx_supportlib/{vendor-copy → vendor-modified}/websocketpp/websocketpp/processors/processor.hpp +0 -0
  369. data/src/cxx_supportlib/{vendor-copy → vendor-modified}/websocketpp/websocketpp/random/none.hpp +0 -0
  370. data/src/cxx_supportlib/{vendor-copy → vendor-modified}/websocketpp/websocketpp/random/random_device.hpp +0 -0
  371. data/src/cxx_supportlib/{vendor-copy → vendor-modified}/websocketpp/websocketpp/roles/client_endpoint.hpp +0 -0
  372. data/src/cxx_supportlib/{vendor-copy → vendor-modified}/websocketpp/websocketpp/roles/server_endpoint.hpp +0 -0
  373. data/src/cxx_supportlib/{vendor-copy → vendor-modified}/websocketpp/websocketpp/server.hpp +0 -0
  374. data/src/cxx_supportlib/{vendor-copy → vendor-modified}/websocketpp/websocketpp/sha1/sha1.hpp +0 -0
  375. data/src/cxx_supportlib/{vendor-copy → vendor-modified}/websocketpp/websocketpp/transport/asio/base.hpp +0 -0
  376. data/src/cxx_supportlib/{vendor-copy → vendor-modified}/websocketpp/websocketpp/transport/asio/connection.hpp +0 -0
  377. data/src/cxx_supportlib/{vendor-copy → vendor-modified}/websocketpp/websocketpp/transport/asio/endpoint.hpp +0 -0
  378. data/src/cxx_supportlib/{vendor-copy → vendor-modified}/websocketpp/websocketpp/transport/asio/security/base.hpp +0 -0
  379. data/src/cxx_supportlib/{vendor-copy → vendor-modified}/websocketpp/websocketpp/transport/asio/security/none.hpp +0 -0
  380. data/src/cxx_supportlib/{vendor-copy → vendor-modified}/websocketpp/websocketpp/transport/asio/security/tls.hpp +0 -0
  381. data/src/cxx_supportlib/{vendor-copy → vendor-modified}/websocketpp/websocketpp/transport/base/connection.hpp +0 -0
  382. data/src/cxx_supportlib/{vendor-copy → vendor-modified}/websocketpp/websocketpp/transport/base/endpoint.hpp +0 -0
  383. data/src/cxx_supportlib/{vendor-copy → vendor-modified}/websocketpp/websocketpp/transport/debug/base.hpp +0 -0
  384. data/src/cxx_supportlib/{vendor-copy → vendor-modified}/websocketpp/websocketpp/transport/debug/connection.hpp +0 -0
  385. data/src/cxx_supportlib/{vendor-copy → vendor-modified}/websocketpp/websocketpp/transport/debug/endpoint.hpp +0 -0
  386. data/src/cxx_supportlib/{vendor-copy → vendor-modified}/websocketpp/websocketpp/transport/iostream/base.hpp +0 -0
  387. data/src/cxx_supportlib/{vendor-copy → vendor-modified}/websocketpp/websocketpp/transport/iostream/connection.hpp +0 -0
  388. data/src/cxx_supportlib/{vendor-copy → vendor-modified}/websocketpp/websocketpp/transport/iostream/endpoint.hpp +0 -0
  389. data/src/cxx_supportlib/{vendor-copy → vendor-modified}/websocketpp/websocketpp/transport/stub/base.hpp +0 -0
  390. data/src/cxx_supportlib/{vendor-copy → vendor-modified}/websocketpp/websocketpp/transport/stub/connection.hpp +0 -0
  391. data/src/cxx_supportlib/{vendor-copy → vendor-modified}/websocketpp/websocketpp/transport/stub/endpoint.hpp +0 -0
  392. data/src/cxx_supportlib/{vendor-copy → vendor-modified}/websocketpp/websocketpp/uri.hpp +0 -0
  393. data/src/cxx_supportlib/{vendor-copy → vendor-modified}/websocketpp/websocketpp/utf8_validator.hpp +0 -0
  394. data/src/cxx_supportlib/{vendor-copy → vendor-modified}/websocketpp/websocketpp/utilities.hpp +0 -0
  395. data/src/cxx_supportlib/{vendor-copy → vendor-modified}/websocketpp/websocketpp/version.hpp +0 -0
  396. data/src/nginx_module/ConfigGeneral/AutoGeneratedDefinitions.c +16 -0
  397. data/src/nginx_module/ConfigGeneral/AutoGeneratedManifestDefaultsInitialization.c +12 -0
  398. data/src/nginx_module/ConfigGeneral/AutoGeneratedSetterFuncs.c +24 -0
  399. data/src/nginx_module/LocationConfig/AutoGeneratedCreateFunction.c +10 -0
  400. data/src/nginx_module/LocationConfig/AutoGeneratedHeaderSerialization.c +39 -0
  401. data/src/nginx_module/LocationConfig/AutoGeneratedManifestGeneration.c +26 -0
  402. data/src/nginx_module/LocationConfig/AutoGeneratedMergeFunction.c +6 -0
  403. data/src/nginx_module/LocationConfig/AutoGeneratedStruct.h +8 -0
  404. data/src/nginx_module/ngx_http_passenger_module.c +1 -0
  405. data/src/nodejs_supportlib/vendor-copy/winston/lib/winston/common.js +50 -29
  406. data/src/nodejs_supportlib/vendor-copy/winston/lib/winston/config/cli-config.js +20 -20
  407. data/src/nodejs_supportlib/vendor-copy/winston/lib/winston/config/npm-config.js +11 -11
  408. data/src/nodejs_supportlib/vendor-copy/winston/lib/winston/config/syslog-config.js +3 -3
  409. data/src/nodejs_supportlib/vendor-copy/winston/lib/winston/config.js +8 -2
  410. data/src/nodejs_supportlib/vendor-copy/winston/lib/winston/container.js +2 -1
  411. data/src/nodejs_supportlib/vendor-copy/winston/lib/winston/logger.js +174 -146
  412. data/src/nodejs_supportlib/vendor-copy/winston/lib/winston/transports/console.js +4 -2
  413. data/src/nodejs_supportlib/vendor-copy/winston/lib/winston/transports/file.js +15 -5
  414. data/src/nodejs_supportlib/vendor-copy/winston/lib/winston/transports/http.js +14 -4
  415. data/src/nodejs_supportlib/vendor-copy/winston/lib/winston/transports.js +26 -24
  416. data/src/nodejs_supportlib/vendor-copy/winston/lib/winston.js +5 -5
  417. data/src/nodejs_supportlib/vendor-copy/winston/node_modules/async/package.json +4 -13
  418. data/src/nodejs_supportlib/vendor-copy/winston/node_modules/colors/package.json +19 -33
  419. data/src/nodejs_supportlib/vendor-copy/winston/node_modules/cycle/package.json +11 -29
  420. data/src/nodejs_supportlib/vendor-copy/winston/node_modules/eyes/package.json +12 -40
  421. data/src/nodejs_supportlib/vendor-copy/winston/node_modules/isstream/package.json +3 -12
  422. data/src/nodejs_supportlib/vendor-copy/winston/node_modules/stack-trace/lib/stack-trace.js +49 -24
  423. data/src/nodejs_supportlib/vendor-copy/winston/node_modules/stack-trace/package.json +4 -16
  424. data/src/nodejs_supportlib/vendor-copy/winston/package.json +11 -55
  425. data/src/ruby_supportlib/phusion_passenger/admin_tools/instance_registry.rb +3 -2
  426. data/src/ruby_supportlib/phusion_passenger/apache2/config_options.rb +6 -0
  427. data/src/ruby_supportlib/phusion_passenger/config/nginx_engine_compiler.rb +3 -2
  428. data/src/ruby_supportlib/phusion_passenger/loader_shared_helpers.rb +8 -1
  429. data/src/ruby_supportlib/phusion_passenger/nginx/config_options.rb +12 -0
  430. data/src/ruby_supportlib/phusion_passenger/packaging.rb +1 -0
  431. data/src/ruby_supportlib/phusion_passenger/platform_info/binary_compatibility.rb +7 -5
  432. data/src/ruby_supportlib/phusion_passenger/platform_info/depcheck_specs/libs.rb +6 -2
  433. data/src/ruby_supportlib/phusion_passenger/platform_info/linux.rb +2 -1
  434. data/src/ruby_supportlib/phusion_passenger/platform_info/openssl.rb +1 -1
  435. data/src/ruby_supportlib/phusion_passenger/platform_info/operating_system.rb +17 -3
  436. data/src/ruby_supportlib/phusion_passenger/platform_info/pcre.rb +65 -0
  437. data/src/ruby_supportlib/phusion_passenger/request_handler/thread_handler.rb +18 -18
  438. data/src/ruby_supportlib/phusion_passenger/request_handler.rb +4 -1
  439. data/src/ruby_supportlib/phusion_passenger/standalone/config_options_list.rb +7 -1
  440. data/src/ruby_supportlib/phusion_passenger/standalone/start_command/builtin_engine.rb +1 -0
  441. data/src/ruby_supportlib/phusion_passenger.rb +5 -5
  442. metadata +148 -105
  443. data/src/cxx_supportlib/vendor-modified/boost/system/detail/is_generic_value.hpp +0 -125
  444. data/src/nodejs_supportlib/vendor-copy/winston/lib/winston/transports/daily-rotate-file.js +0 -601
  445. data/src/nodejs_supportlib/vendor-copy/winston/lib/winston/transports/webhook.js +0 -146
  446. data/src/nodejs_supportlib/vendor-copy/winston/node_modules/pkginfo/LICENSE +0 -19
  447. data/src/nodejs_supportlib/vendor-copy/winston/node_modules/pkginfo/lib/pkginfo.js +0 -136
  448. data/src/nodejs_supportlib/vendor-copy/winston/node_modules/pkginfo/package.json +0 -56
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 84d5efa4e63f666d5f40342ef5e6992487b603f1
4
- data.tar.gz: 5320cb6043d4574259be0e68ea82e6809d52c16d
3
+ metadata.gz: 24a18af9e7b3ec92ce88aa64fd7d62242691972a
4
+ data.tar.gz: b3b72d0daa134635ea11f3cab5745f7a491dd102
5
5
  SHA512:
6
- metadata.gz: 1184227fb4ca333138b4ba0227d4cebec220ad677603b4a4f5d7b57c49c722bd618e3015b23ab9e2a28d122fffab1cbdb4dc42440a7c837a544450d5b7e324d2
7
- data.tar.gz: 4b4145b3abb36b27a9cedcd58c35077cc63b4bc0576e028f8a5bc07052157973f6bd6ed67ff3b08bd3e3aad6cd22c7f01849b5a2cc7dc979dad5eec8fc167537
6
+ metadata.gz: 42bd44f99c71b20f121f91197ae7e407993fef8a15935659907f98399d10deb5c97dac9acb8f9cb253cb42b1304a140769a67c08a22e7f9fe1cda5e9cb06e3f0
7
+ data.tar.gz: 923ab59ac46d2d6f96f265fa79628a8f68186c2e8055bbb451cbcf9f593f5f58cb1cfaf1c4aef8950a8356a8c2b95a0821f957211ca5d003b262e33b1c813453
data/CHANGELOG CHANGED
@@ -1,4 +1,86 @@
1
- Release 6.0.10 (Not yet released)
1
+ Release 6.0.13 (Not yet released)
2
+ -------------
3
+ * Add WASM mime type, Closes GH-2398.
4
+ * Fix compilation on FreeBSD 13. Closes GH-2402.
5
+ * [Ruby] Fixes app process crash when ECONNRESET received.
6
+ * Fix automated fetching of pcre source for installer scripts.
7
+ * Bump preferred nginx 1.20.1 → 1.20.2.
8
+ * [Ruby] Add option to preload bundler. Closes GH-2409.
9
+
10
+ - Apache: PassengerPreloadBundler
11
+ - Nginx: passenger_preload_bundler
12
+ - Standalone: --preload_bundler
13
+
14
+ * [Node] Suppresses the winston circular dependency warning.
15
+ * [RPMs] EL8 RPMs are now built on Rocky linux, and should be compatible with Alma, Rocky, CentOS, and RHEL.
16
+ * Updated various library versions used in precompiled binaries (used for e.g. gem installs):
17
+
18
+ - ccache 4.4.2 → 4.6
19
+ - cmake 3.21.4 → 3.22.3
20
+ - curl 7.79.1 → 7.82.0
21
+ - git 2.33.1 → 2.35.1
22
+ - gnupg 2.3.3 → 2.3.4
23
+ - libgpg_error 1.42 → 1.44
24
+ - ntbtls 0.2.0 → 0.3.0
25
+ - openssl 1.1.1l → 1.1.1n
26
+ - rubygems 3.2.30 → 3.3.9
27
+ - zstd 1.5.0 → 1.5.2
28
+ - ruby
29
+ - dropped 2.4.10
30
+ - dropped 2.5.9
31
+ - 2.6.8 → 2.6.9
32
+ - 2.7.4 → 2.7.5
33
+ - 3.0.2 → 3.0.3
34
+ - added 3.1.1
35
+
36
+
37
+ Release 6.0.12
38
+ -------------
39
+ * [Debian] Fix compilation on 32 bit arm. Contributed by Antonio Terceiro.
40
+ * [Debian] Add Bullseye Debian packages.
41
+ * Add formatted error messages to responses. Contributed by Mohammad Aboelnour.
42
+ * Fixes for running under WSL 1. Contributed by Luke Pearce. Closes GH-2036.
43
+ * Upgrades Boost to 1.77. To go along with 32 bit arm fix.
44
+ * [MacOS] Fixes autodetection of openssl lib on apple silicon. Contributed by Taketo Takashima. Closes GH-2389.
45
+ * Reconnect to mongoid databases after fork, like we do for ActiveRecord. Contributed by Mohammad Aboelnour.
46
+ * [Ubuntu] add missing apache name in instance registry dir detection.
47
+ * [Ubuntu] replace hirsute apt packages with impish.
48
+ * [Nginx] add new config option to choose the status code returned when application spawning fails. (passenger_spawn_exception_status_code).
49
+ * Updated various library versions used in precompiled binaries (used for e.g. gem installs):
50
+
51
+ - ccache: 4.4.1 → 4.4.2
52
+ - cmake: 3.21.2 → 3.21.4
53
+ - curl: 7.78.0 → 7.79.1
54
+ - git: 2.33.0 → 2.33.1
55
+ - gnupg: 2.3.2 → 2.3.3
56
+ - rubygems: 3.2.27 → 3.2.30
57
+ - s3cmd: 2.1.0 → 2.2.0
58
+
59
+
60
+ Release 6.0.11
61
+ -------------
62
+ * Fix compilation on GCC 4.4, fixes a regression in 6.0.8 where Passenger would no longer compiler without a C++11 compiler.
63
+ * [CentOS] Fix version detection on CentOS Stream. Contributed by Taketo Takashima. Closes GH-2377.
64
+ * [MacOS] Additionally look for PCRE in the new location that Homebrew has split it's packages into.
65
+ * Fix compilation on GCC < 4.5.
66
+ * Updated various library versions used in precompiled binaries (used for e.g. gem installs):
67
+
68
+ - ccache: 4.3 → 4.4.1
69
+ - cmake: 3.20.5 → 3.21.2
70
+ - curl: 7.77.0 → 7.78.0
71
+ - git: 2.32.0 → 2.33.0
72
+ - gnupg: 2.3.1 → 2.3.2
73
+ - libgcrypt: 1.9.3 → 1.9.4
74
+ - openssl: 1.1.1k → 1.1.1l
75
+ - pinentry: 1.1.1 → 1.2.0
76
+ - rubygems: 3.2.21 → 3.2.27
77
+ - rubies:
78
+ - 2.6.7 → 2.6.8
79
+ - 2.7.3 → 2.7.4
80
+ - 3.0.1 → 3.0.2
81
+
82
+
83
+ Release 6.0.10
2
84
  -------------
3
85
  * [Debian/Ubuntu] Fix a regression in `passenger_system_ruby` where Ruby 3 couldn't be found.
4
86
  * [CentOS/RHEL] Bump rpm nginx dependency to match EPEL nginx (was 1.16.1 now 1.20.1). Closes GH-2364.
@@ -11,6 +93,7 @@ Release 6.0.10 (Not yet released)
11
93
  - rubygems 3.2.19 → 3.2.21
12
94
  - pcre 8.44 → 8.45
13
95
 
96
+
14
97
  Release 6.0.9
15
98
  -------------
16
99
  * Upgrades Boost to 1.76. Fixes a regression where some boost headers for comatibility with older distros were missing.
data/CONTRIBUTORS CHANGED
@@ -9,6 +9,7 @@ Andre Ferraz
9
9
  Andre Nathan
10
10
  Andrei Belov
11
11
  Andy Allan
12
+ Antonio Terceiro
12
13
  Benjamin Fleischer
13
14
  Bernd Ahlers
14
15
  Bernhard M. Wiedemann
@@ -64,6 +65,7 @@ Joshua Lund
64
65
  jpatterson
65
66
  Jude Nagurney
66
67
  Kenneth Powers
68
+ Luke Pearce
67
69
  Luuk Hafkamp (Phusion)
68
70
  Luuk Hendriks (Phusion)
69
71
  MAEDA Go
@@ -74,6 +76,7 @@ Michal Papis
74
76
  Michał Pokrywka
75
77
  Mike
76
78
  Mike Boone
79
+ Mohammad Aboelnour
77
80
  Morton Jonuschat
78
81
  Nathaniel Bibler
79
82
  Neil Wilson
@@ -110,6 +113,7 @@ Sebastian Welther
110
113
  Slippy Douglas
111
114
  Stephen Bannasch
112
115
  Steven Chamberlain
116
+ Taketo Takashima
113
117
  TheBerg
114
118
  Thomas Pfister
115
119
  Tim Bishop
@@ -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 = "https://ftp.pcre.org/pub/pcre/pcre-#{PREFERRED_PCRE_VERSION}.tar.gz"
271
+ url = "https://sourceforge.net/projects/pcre/files/pcre/#{PREFERRED_PCRE_VERSION}/pcre-#{PREFERRED_PCRE_VERSION}.tar.gz/download"
272
272
  dirname = "pcre-#{PREFERRED_PCRE_VERSION}"
273
273
  tarball = "#{@working_dir}/pcre.tar.gz"
274
274
 
@@ -575,6 +575,7 @@ private
575
575
  # Nginx checks for PCRE in multiple places...
576
576
  system("(gcc -I/usr/local/include -I/usr/include/pcre " <<
577
577
  "-I/usr/pkg/include -I/opt/local/include " <<
578
+ "-I/opt/homebrew/include " <<
578
579
  "-c passenger-check.c) >/dev/null 2>/dev/null")
579
580
  end
580
581
  ensure
@@ -245,7 +245,7 @@ end
245
245
 
246
246
  ########## WebSocket++ ##########
247
247
 
248
- let(:websocketpp_cflags) { '-Isrc/cxx_supportlib/vendor-copy/websocketpp' }
248
+ let(:websocketpp_cflags) { '-Isrc/cxx_supportlib/vendor-modified/websocketpp' }
249
249
  let(:websocketpp_libs) { nil }
250
250
 
251
251
 
@@ -102,16 +102,31 @@ PROGRAM_SOURCE = %q{
102
102
  #include <boost/date_time/posix_time/posix_time.hpp>
103
103
  #include <boost/foreach.hpp>
104
104
  #include <boost/unordered_map.hpp>
105
- #include <boost/cregex.hpp>
106
105
  #include <boost/regex.hpp>
107
106
  #include <boost/pool/object_pool.hpp>
108
107
  #include <boost/move/core.hpp>
109
108
  #include <boost/move/utility.hpp>
110
109
  #include <boost/atomic.hpp>
111
110
  #include <boost/typeof/typeof.hpp>
112
- #include <boost/asio.hpp>
113
- #include <boost/pointer_cast.hpp>
114
111
  #include <boost/circular_buffer.hpp>
112
+ #include <boost/config.hpp>
113
+ #include <boost/container/small_vector.hpp>
114
+ #include <boost/core/noncopyable.hpp>
115
+ #include <boost/cstdint.hpp>
116
+ #include <boost/current_function.hpp>
117
+ #include <boost/date_time/posix_time/posix_time_types.hpp>
118
+ #include <boost/move/move.hpp>
119
+ #include <boost/predef.h>
120
+ #include <boost/ref.hpp>
121
+ #include <boost/scoped_array.hpp>
122
+ #include <boost/scoped_ptr.hpp>
123
+ #include <boost/static_assert.hpp>
124
+ #include <boost/thread/mutex.hpp>
125
+ #include <boost/thread/tss.hpp>
126
+ // Included despite not used in Passenger
127
+ #include <boost/cregex.hpp>
128
+ #include <boost/pointer_cast.hpp>
129
+ #include <boost/asio.hpp>
115
130
  }
116
131
 
117
132
  require 'fileutils'
@@ -189,19 +204,19 @@ end
189
204
  def copy_dependencies(cflags)
190
205
  done = false
191
206
  while !done
192
- compiler_output = `c++ test.cpp -c -I. -I.. #{cflags} 2>&1`
207
+ compiler_output = `c++ test.cpp -c -I. -I.. #{cflags.join(" ")} 2>&1`
193
208
  File.unlink('test.o') if File.exist?('test.o')
194
209
  missing_headers = compiler_output.
195
- split("\n").
196
- grep(/(error: .*: No such file|fatal error: '.*' file not found)/).
197
- map do |line|
198
- if line =~ /error: (.*): No such file/
199
- file = $1
200
- elsif line =~ /fatal error: '(.*)' file not found/
201
- file = $1
202
- else
203
- abort "Bug"
204
- end
210
+ split("\n").
211
+ grep(/(error: .*: No such file|fatal error: '.*' file not found)/).
212
+ map do |line|
213
+ if line =~ /error: (.*): No such file/
214
+ file = $1
215
+ elsif line =~ /fatal error: '(.*)' file not found/
216
+ file = $1
217
+ else
218
+ abort "Bug"
219
+ end
205
220
  if file =~ /^boost\//
206
221
  file
207
222
  else
@@ -230,8 +245,25 @@ def start
230
245
  begin
231
246
  prepare
232
247
  copy_essential_files
233
- copy_dependencies("-std=gnu++11")
234
- copy_dependencies("")
248
+ [
249
+ "-std=c++98",
250
+ "-std=c++03",
251
+ "-std=gnu++98",
252
+ "-std=gnu++03",
253
+ "-std=c++11",
254
+ "-std=gnu++11",
255
+ "-std=c++14",
256
+ "-std=gnu++14",
257
+ "-std=c++17",
258
+ "-std=gnu++17",
259
+ "-std=c++20",
260
+ "-std=gnu++20",
261
+ "-std=c++0x",
262
+ "-std=gnu++0x",
263
+ ""
264
+ ].product(["-m32","-m64",""]).each do |flags|
265
+ copy_dependencies(flags)
266
+ end
235
267
  ensure
236
268
  cleanup
237
269
  end
@@ -6,7 +6,7 @@ SEARCH_PATHS = [
6
6
  "src/agent",
7
7
  "src/cxx_supportlib",
8
8
  "src/cxx_supportlib/vendor-copy",
9
- "src/cxx_supportlib/vendor-copy/websocketpp",
9
+ "src/cxx_supportlib/vendor-modified/websocketpp",
10
10
  "src/cxx_supportlib/vendor-modified",
11
11
  "test/cxx"
12
12
  ]
@@ -0,0 +1,39 @@
1
+ From b6d45a246a4461cd7eda420b471de50518cb42d8 Mon Sep 17 00:00:00 2001
2
+ From: Camden Narzt <camden@phusion.nl>
3
+ Date: Mon, 19 Jul 2021 12:31:15 -0600
4
+ Subject: [PATCH] fix compilation on gcc older than 4.5
5
+
6
+ ---
7
+ .../websocketpp/websocketpp/common/functional.hpp | 9 ++-------
8
+ 1 file changed, 2 insertions(+), 7 deletions(-)
9
+
10
+ diff --git a/src/cxx_supportlib/vendor-copy/websocketpp/websocketpp/common/functional.hpp b/src/cxx_supportlib/vendor-copy/websocketpp/websocketpp/common/functional.hpp
11
+ index d332dd15e..25ed93398 100644
12
+ --- a/src/cxx_supportlib/vendor-copy/websocketpp/websocketpp/common/functional.hpp
13
+ +++ b/src/cxx_supportlib/vendor-copy/websocketpp/websocketpp/common/functional.hpp
14
+ @@ -52,7 +52,7 @@
15
+ #ifdef _WEBSOCKETPP_CPP11_FUNCTIONAL_
16
+ #include <functional>
17
+ #else
18
+ - #include <boost/bind.hpp>
19
+ + #include <boost/bind/bind.hpp>
20
+ #include <boost/function.hpp>
21
+ #include <boost/ref.hpp>
22
+ #endif
23
+ @@ -83,12 +83,7 @@ namespace lib {
24
+ using boost::function;
25
+ using boost::bind;
26
+ using boost::ref;
27
+ - namespace placeholders {
28
+ - /// \todo this feels hacky, is there a better way?
29
+ - using ::_1;
30
+ - using ::_2;
31
+ - using ::_3;
32
+ - }
33
+ + namespace placeholders = boost::placeholders;
34
+
35
+ // See above definition for more details on what this is and why it exists
36
+ #define _WEBSOCKETPP_REF(x) boost::ref(x)
37
+ --
38
+ 2.30.1 (Apple Git-130)
39
+
data/package.json CHANGED
@@ -27,7 +27,7 @@
27
27
  },
28
28
  "repository": {
29
29
  "type": "git",
30
- "url": "git://github.com/phusion/passenger.git"
30
+ "url": "https://github.com/phusion/passenger.git"
31
31
  },
32
32
  "author": "Phusion <info@phusion.nl>",
33
33
  "license": "MIT",
data/resources/mime.types CHANGED
@@ -6,6 +6,7 @@ types {
6
6
  image/gif gif;
7
7
  image/jpeg jpeg jpg;
8
8
  application/x-javascript js;
9
+ application/wasm wasm;
9
10
  application/atom+xml atom;
10
11
  application/rss+xml rss;
11
12
  text/cache-manifest manifest appcache;
@@ -52,6 +52,7 @@ passenger_enabled on;
52
52
  <%= nginx_option(app, :vary_turbocache_by_cookie) %>
53
53
  <%= nginx_option(app, :meteor_app_settings) %>
54
54
  <%= nginx_option(app, :load_shell_envvars) %>
55
+ <%= nginx_option(app, :preload_bundler) %>
55
56
  <%= nginx_option(app, :app_file_descriptor_ulimit) %>
56
57
  <%= nginx_option(app, :friendly_error_pages) %>
57
58
  <%= nginx_option(app, :abort_websockets_on_process_shutdown) %>
@@ -255,6 +255,7 @@ Group::inspectConfigInAdminPanelFormat(Json::Value &result) const {
255
255
  result["user_switching"] = VAL(options.userSwitching); // TODO: default value depends on integration mode and euid
256
256
  result["file_descriptor_ulimit"] = VAL(options.fileDescriptorUlimit, 0u);
257
257
  result["load_shell_envvars"] = VAL(options.loadShellEnvvars); // TODO: default value depends on integration mode
258
+ result["preload_bundler"] = VAL(options.preloadBundler);
258
259
  result["max_request_queue_size"] = VAL(options.maxRequestQueueSize,
259
260
  (Json::UInt) DEFAULT_MAX_REQUEST_QUEUE_SIZE);
260
261
  result["max_requests"] = VAL((Json::UInt) options.maxRequests, 0u);
@@ -312,6 +312,10 @@ public:
312
312
  */
313
313
  bool loadShellEnvvars;
314
314
 
315
+ /** Whether to tell Ruby to load bundler during spawning.
316
+ */
317
+ bool preloadBundler;
318
+
315
319
  bool userSwitching;
316
320
 
317
321
  /**
@@ -460,6 +464,7 @@ public:
460
464
  forceMaxConcurrentRequestsPerProcess(-1),
461
465
  debugger(false),
462
466
  loadShellEnvvars(true),
467
+ preloadBundler(false),
463
468
  userSwitching(true),
464
469
  raiseInternalError(false),
465
470
 
@@ -164,7 +164,7 @@ using namespace std;
164
164
  * security_update_checker_interval unsigned integer - default(86400)
165
165
  * security_update_checker_proxy_url string - -
166
166
  * security_update_checker_url string - default("https://securitycheck.phusionpassenger.com/v1/check.json")
167
- * server_software string - default("Phusion_Passenger/6.0.10")
167
+ * server_software string - default("Phusion_Passenger/6.0.13")
168
168
  * show_version_in_header boolean - default(true)
169
169
  * single_app_mode_app_root string - default,read_only
170
170
  * single_app_mode_app_start_command string - read_only
@@ -242,19 +242,25 @@ Controller::reportSessionCheckoutError(Client *client, Request *req,
242
242
  writeOtherExceptionErrorResponse(client, req, e);
243
243
  }
244
244
 
245
- void
246
- Controller::writeRequestQueueFullExceptionErrorResponse(Client *client, Request *req,
247
- const boost::shared_ptr<RequestQueueFullException> &e)
245
+ int
246
+ Controller::lookupCodeFromHeader(Request *req, const char* header, int statusCode)
248
247
  {
249
- TRACE_POINT();
250
- const LString *value = req->secureHeaders.lookup(
251
- "!~PASSENGER_REQUEST_QUEUE_OVERFLOW_STATUS_CODE");
252
- int requestQueueOverflowStatusCode = 503;
248
+ const LString *value = req->secureHeaders.lookup(header);
253
249
  if (value != NULL && value->size > 0) {
254
250
  value = psg_lstr_make_contiguous(value, req->pool);
255
- requestQueueOverflowStatusCode = stringToInt(
251
+ statusCode = stringToInt(
256
252
  StaticString(value->start->data, value->size));
257
253
  }
254
+ return statusCode;
255
+ }
256
+
257
+ void
258
+ Controller::writeRequestQueueFullExceptionErrorResponse(Client *client, Request *req,
259
+ const boost::shared_ptr<RequestQueueFullException> &e)
260
+ {
261
+ TRACE_POINT();
262
+
263
+ int requestQueueOverflowStatusCode = lookupCodeFromHeader(req, "!~PASSENGER_REQUEST_QUEUE_OVERFLOW_STATUS_CODE", 503);
258
264
 
259
265
  SKC_WARN(client, "Returning HTTP " << requestQueueOverflowStatusCode <<
260
266
  " due to: " << e->what());
@@ -271,15 +277,20 @@ Controller::writeSpawnExceptionErrorResponse(Client *client, Request *req,
271
277
  const boost::shared_ptr<SpawningKit::SpawnException> &e)
272
278
  {
273
279
  TRACE_POINT();
280
+ int spawnExceptionStatusCode = lookupCodeFromHeader(req, "!~PASSENGER_SPAWN_EXCEPTION_STATUS_CODE", 500);
274
281
  SKC_ERROR(client, "Cannot checkout session because a spawning error occurred. " <<
275
282
  "The identifier of the error is " << e->getId() << ". Please see earlier logs for " <<
276
283
  "details about the error.");
277
- endRequestWithErrorResponse(&client, &req, *e);
284
+ endRequestWithErrorResponse(&client, &req, *e, spawnExceptionStatusCode);
278
285
  }
279
286
 
280
287
  void
281
288
  Controller::writeOtherExceptionErrorResponse(Client *client, Request *req, const ExceptionPtr &e) {
282
289
  TRACE_POINT();
290
+
291
+ // ATM "other" exceptions always return a spawn exception error message, so use the matching status code
292
+ int otherExceptionStatusCode = lookupCodeFromHeader(req, "!~PASSENGER_SPAWN_EXCEPTION_STATUS_CODE", 500);
293
+
283
294
  string typeName;
284
295
  const oxt::tracable_exception &eptr = *e;
285
296
  #ifdef CXX_ABI_API_AVAILABLE
@@ -324,16 +335,16 @@ Controller::writeOtherExceptionErrorResponse(Client *client, Request *req, const
324
335
  }
325
336
  pos = appendData(pos, end, "</p>");
326
337
 
327
- endRequestWithSimpleResponse(&client, &req, StaticString(buf, pos - buf), 500);
338
+ endRequestWithSimpleResponse(&client, &req, StaticString(buf, pos - buf), otherExceptionStatusCode);
328
339
  } else {
329
340
  endRequestWithSimpleResponse(&client, &req, "<h2>Internal server error</h2>"
330
- "Application could not be started. Please try again later.", 500);
341
+ "Application could not be started. Please try again later.", otherExceptionStatusCode);
331
342
  }
332
343
  }
333
344
 
334
345
  void
335
346
  Controller::endRequestWithErrorResponse(Client **c, Request **r,
336
- const SpawningKit::SpawnException &e)
347
+ const SpawningKit::SpawnException &e, int statusCode)
337
348
  {
338
349
  TRACE_POINT();
339
350
  Client *client = *c;
@@ -359,7 +370,7 @@ Controller::endRequestWithErrorResponse(Client **c, Request **r,
359
370
  }
360
371
  }
361
372
 
362
- endRequestWithSimpleResponse(c, r, psg_pstrdup(req->pool, data), 500);
373
+ endRequestWithSimpleResponse(c, r, psg_pstrdup(req->pool, data), statusCode);
363
374
  }
364
375
 
365
376
  bool
@@ -115,7 +115,7 @@ parseControllerBenchmarkMode(const StaticString &mode) {
115
115
  * multi_app boolean - default(true),read_only
116
116
  * request_freelist_limit unsigned integer - default(1024)
117
117
  * response_buffer_high_watermark unsigned integer - default(134217728)
118
- * server_software string - default("Phusion_Passenger/6.0.10")
118
+ * server_software string - default("Phusion_Passenger/6.0.13")
119
119
  * show_version_in_header boolean - default(true)
120
120
  * start_reading_after_accept boolean - default(true)
121
121
  * stat_throttle_rate unsigned integer - default(10)
@@ -165,6 +165,7 @@ private:
165
165
  add("default_spawn_method", STRING_TYPE, OPTIONAL, DEFAULT_SPAWN_METHOD);
166
166
  add("default_bind_address", STRING_TYPE, OPTIONAL, DEFAULT_BIND_ADDRESS);
167
167
  add("default_load_shell_envvars", BOOL_TYPE, OPTIONAL, false);
168
+ add("default_preload_bundler", BOOL_TYPE, OPTIONAL, false);
168
169
  add("default_meteor_app_settings", STRING_TYPE, OPTIONAL);
169
170
  add("default_app_file_descriptor_ulimit", UINT_TYPE, OPTIONAL);
170
171
  add("default_min_instances", UINT_TYPE, OPTIONAL, 1);
@@ -440,6 +441,7 @@ public:
440
441
  bool showVersionInHeader: 1;
441
442
  bool defaultAbortWebsocketsOnProcessShutdown;
442
443
  bool defaultLoadShellEnvvars;
444
+ bool defaultPreloadBundler;
443
445
 
444
446
  /*******************/
445
447
  /*******************/
@@ -473,7 +475,8 @@ public:
473
475
  defaultForceMaxConcurrentRequestsPerProcess(config["default_force_max_concurrent_requests_per_process"].asInt()),
474
476
  showVersionInHeader(config["show_version_in_header"].asBool()),
475
477
  defaultAbortWebsocketsOnProcessShutdown(config["default_abort_websockets_on_process_shutdown"].asBool()),
476
- defaultLoadShellEnvvars(config["default_load_shell_envvars"].asBool())
478
+ defaultLoadShellEnvvars(config["default_load_shell_envvars"].asBool()),
479
+ defaultPreloadBundler(config["default_preload_bundler"].asBool())
477
480
 
478
481
  /*******************/
479
482
  { }
@@ -202,6 +202,7 @@ Controller::fillPoolOptionsFromConfigCaches(Options &options,
202
202
  options.spawnMethod = requestConfig->defaultSpawnMethod;
203
203
  options.bindAddress = requestConfig->defaultBindAddress;
204
204
  options.loadShellEnvvars = requestConfig->defaultLoadShellEnvvars;
205
+ options.preloadBundler = requestConfig->defaultPreloadBundler;
205
206
  options.statThrottleRate = mainConfig.statThrottleRate;
206
207
  options.maxRequests = requestConfig->defaultMaxRequests;
207
208
  options.stickySessionsCookieAttributes = requestConfig->defaultStickySessionsCookieAttributes;
@@ -378,6 +379,7 @@ Controller::createNewPoolOptions(Client *client, Request *req,
378
379
  fillPoolOption(req, options.restartDir, "!~PASSENGER_RESTART_DIR");
379
380
  fillPoolOption(req, options.startupFile, "!~PASSENGER_STARTUP_FILE");
380
381
  fillPoolOption(req, options.loadShellEnvvars, "!~PASSENGER_LOAD_SHELL_ENVVARS");
382
+ fillPoolOption(req, options.preloadBundler, "!~PASSENGER_PRELOAD_BUNDLER");
381
383
  fillPoolOption(req, options.fileDescriptorUlimit, "!~PASSENGER_APP_FILE_DESCRIPTOR_ULIMIT");
382
384
  fillPoolOption(req, options.raiseInternalError, "!~PASSENGER_RAISE_INTERNAL_ERROR");
383
385
  fillPoolOption(req, options.lveMinUid, "!~PASSENGER_LVE_MIN_UID");
@@ -96,7 +96,7 @@ Controller::endRequestWithAppSocketIncompleteResponse(Client **client, Request *
96
96
  SKC_WARN(*client, "Sending 502 response: application did not send a complete response");
97
97
  }
98
98
  endRequestWithSimpleResponse(client, req,
99
- "<h2>Incomplete response received from application</h2>", 502);
99
+ getFormattedMessage(*req, "Incomplete response received from application"), 502);
100
100
  } else {
101
101
  disconnectWithAppSocketIncompleteResponseError(client);
102
102
  }
@@ -107,12 +107,39 @@ Controller::endRequestWithAppSocketReadError(Client **client, Request **req, int
107
107
  Client *c = *client;
108
108
  if (!(*req)->responseBegun) {
109
109
  SKC_WARN(*client, "Sending 502 response: application socket read error");
110
- endRequestWithSimpleResponse(client, req, "<h2>Application socket read error</h2>", 502);
110
+ endRequestWithSimpleResponse(client, req,
111
+ getFormattedMessage(*req, "Application socket read error"), 502);
111
112
  } else {
112
113
  disconnectWithAppSocketReadError(&c, e);
113
114
  }
114
115
  }
115
116
 
117
+ ServerKit::HeaderTable
118
+ Controller::getHeadersWithContentType(Request *req)
119
+ {
120
+ ServerKit::HeaderTable headers;
121
+ const LString *value = req->headers.lookup(P_STATIC_STRING("content-type"));
122
+ if (value != NULL) {
123
+ if (psg_lstr_cmp(value, P_STATIC_STRING("application/json"))) {
124
+ headers.insert(req->pool, "content-type", "application/json");
125
+ }
126
+ // Here we can extend setting `content-type` with more supported formats, ie: xml,...
127
+ }
128
+ return headers;
129
+ }
130
+
131
+ const StaticString
132
+ Controller::getFormattedMessage(Request *req, const StaticString &body)
133
+ {
134
+ const LString *value = req->headers.lookup(P_STATIC_STRING("content-type"));
135
+ if (value != NULL) {
136
+ if (psg_lstr_cmp(value, P_STATIC_STRING("application/json"))) {
137
+ return "{\"status\":\"error\", \"message\": \""+body+"\"}";
138
+ }
139
+ }
140
+ return "<h1>"+body+"</h1>";
141
+ }
142
+
116
143
  /**
117
144
  * `data` must outlive the request.
118
145
  */
@@ -122,8 +149,7 @@ Controller::endRequestWithSimpleResponse(Client **c, Request **r,
122
149
  {
123
150
  Client *client = *c;
124
151
  Request *req = *r;
125
- ServerKit::HeaderTable headers;
126
-
152
+ ServerKit::HeaderTable headers = getHeadersWithContentType(req);
127
153
  headers.insert(req->pool, "cache-control", "no-cache, no-store, must-revalidate");
128
154
  writeSimpleResponse(client, code, &headers, body);
129
155
  endRequest(c, r);
@@ -134,9 +160,9 @@ Controller::endRequestAsBadGateway(Client **client, Request **req) {
134
160
  if ((*req)->responseBegun) {
135
161
  disconnectWithError(client, "bad gateway");
136
162
  } else {
137
- ServerKit::HeaderTable headers;
163
+ ServerKit::HeaderTable headers = getHeadersWithContentType(*req);
138
164
  headers.insert((*req)->pool, "cache-control", "no-cache, no-store, must-revalidate");
139
- writeSimpleResponse(*client, 502, &headers, "<h1>Bad Gateway</h1>");
165
+ writeSimpleResponse(*client, 502, &headers, getFormattedMessage(*req, "Bad Gateway"));
140
166
  endRequest(client, req);
141
167
  }
142
168
  }
@@ -207,6 +207,7 @@ private:
207
207
  static void checkoutSessionLater(Request *req);
208
208
  void reportSessionCheckoutError(Client *client, Request *req,
209
209
  const ExceptionPtr &e);
210
+ int lookupCodeFromHeader(Request *req, const char* header, int statusCode);
210
211
  void writeRequestQueueFullExceptionErrorResponse(Client *client,
211
212
  Request *req, const boost::shared_ptr<RequestQueueFullException> &e);
212
213
  void writeSpawnExceptionErrorResponse(Client *client, Request *req,
@@ -214,7 +215,7 @@ private:
214
215
  void writeOtherExceptionErrorResponse(Client *client, Request *req,
215
216
  const ExceptionPtr &e);
216
217
  void endRequestWithErrorResponse(Client **c, Request **r,
217
- const SpawningKit::SpawnException &e);
218
+ const SpawningKit::SpawnException &e, int statusCode);
218
219
  bool friendlyErrorPagesEnabled(Request *req);
219
220
 
220
221
 
@@ -313,6 +314,8 @@ private:
313
314
  Request **req);
314
315
  void endRequestWithAppSocketReadError(Client **client, Request **req,
315
316
  int e);
317
+ ServerKit::HeaderTable getHeadersWithContentType(Request *req);
318
+ const StaticString getFormattedMessage(Request *req, const StaticString &body);
316
319
  void endRequestWithSimpleResponse(Client **c, Request **r,
317
320
  const StaticString &body, int code = 200);
318
321
  void endRequestAsBadGateway(Client **client, Request **req);
@@ -115,6 +115,7 @@ coreUsage() {
115
115
  printf(" --spawn-method NAME Spawn method to use. Can either be 'smart' or\n");
116
116
  printf(" 'direct'. Default: %s\n", DEFAULT_SPAWN_METHOD);
117
117
  printf(" --load-shell-envvars Load shell startup files before loading application\n");
118
+ printf(" --preload-bundler Tell Ruby to load bundler gem before loading application\n");
118
119
  printf(" --concurrency-model The concurrency model to use for the app, either\n");
119
120
  printf(" 'process' or 'thread' (Enterprise only).\n");
120
121
  printf(" Default: " DEFAULT_CONCURRENCY_MODEL "\n");
@@ -332,6 +333,9 @@ parseCoreOption(int argc, const char *argv[], int &i, Json::Value &updates) {
332
333
  } else if (p.isFlag(argv[i], '\0', "--load-shell-envvars")) {
333
334
  updates["default_load_shell_envvars"] = true;
334
335
  i++;
336
+ } else if (p.isFlag(argv[i], '\0', "--preload-bundler")) {
337
+ updates["default_preload_bundler"] = true;
338
+ i++;
335
339
  } else if (p.isFlag(argv[i], '\0', "--multi-app")) {
336
340
  updates["multi_app"] = true;
337
341
  i++;
@@ -258,6 +258,7 @@ Passenger::SpawningKit::Config::validate(vector<StaticString> &errors) const {
258
258
  * startsUsingWrapper
259
259
  * wrapperSuppliedByThirdParty
260
260
  * findFreePort
261
+ * preloadBundler
261
262
  * loadShellEnvvars
262
263
  * debugWorkDir
263
264
  * processTitle
@@ -287,6 +288,9 @@ Passenger::SpawningKit::Config::getConfidentialFieldsToPassToApp() const {
287
288
  if (!config.genericApp && config.startsUsingWrapper) {
288
289
  doc["wrapper_supplied_by_third_party"] = wrapperSuppliedByThirdParty;
289
290
  }
291
+ if (config.appType == "ruby") {
292
+ doc["preload_bundler"] = preloadBundler;
293
+ }
290
294
  doc["load_shell_envvars"] = loadShellEnvvars;
291
295
  doc["start_command"] = startCommand.toString();
292
296
  if (!config.genericApp && config.startsUsingWrapper) {
@@ -341,6 +345,9 @@ Passenger::SpawningKit::Config::getNonConfidentialFieldsToPassToApp() const {
341
345
  if (!config.genericApp && config.startsUsingWrapper) {
342
346
  doc["wrapper_supplied_by_third_party"] = wrapperSuppliedByThirdParty;
343
347
  }
348
+ if (config.appType == "ruby") {
349
+ doc["preload_bundler"] = preloadBundler;
350
+ }
344
351
  doc["load_shell_envvars"] = loadShellEnvvars;
345
352
  doc["start_command"] = startCommand.toString();
346
353
  if (!config.genericApp && config.startsUsingWrapper) {