passenger 6.0.27 → 6.1.1

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 (482) hide show
  1. checksums.yaml +4 -4
  2. data/CHANGELOG +42 -2
  3. data/CONTRIBUTORS +2 -0
  4. data/Rakefile +6 -13
  5. data/bin/passenger-install-apache2-module +21 -22
  6. data/bin/passenger-install-nginx-module +50 -47
  7. data/bin/passenger-status +9 -10
  8. data/build/common_library.rb +4 -4
  9. data/build/support/cxx_dependency_map.rb +3 -621
  10. data/build/support/vendor/cxxcodebuilder/lib/cxxcodebuilder/builder.rb +1 -1
  11. data/build/test_basics.rb +4 -3
  12. data/dev/copy_boost_headers +54 -40
  13. data/dev/index_cxx_dependencies.rb +4 -0
  14. data/dev/ruby_server.rb +1 -1
  15. data/package.json +1 -1
  16. data/src/agent/Core/ApplicationPool/Implementation.cpp +1 -1
  17. data/src/agent/Core/ApplicationPool/Socket.h +3 -3
  18. data/src/agent/Core/ApplicationPool/TestSession.h +3 -4
  19. data/src/agent/Core/Config.h +1 -6
  20. data/src/agent/Core/Controller/Config.h +1 -1
  21. data/src/agent/Core/CoreMain.cpp +1 -0
  22. data/src/agent/Core/SecurityUpdateChecker.h +10 -1
  23. data/src/agent/Core/SpawningKit/Exceptions.h +0 -1
  24. data/src/agent/Core/SpawningKit/Handshake/Perform.h +13 -2
  25. data/src/agent/Shared/Fundamentals/AbortHandler.cpp +23 -5
  26. data/src/agent/Shared/Fundamentals/AbortHandler.h +10 -22
  27. data/src/agent/Shared/Fundamentals/Initialization.cpp +1 -0
  28. data/src/agent/Watchdog/Config.h +1 -1
  29. data/src/apache2_module/ConfigGeneral/AutoGeneratedDefinitions.cpp +5 -0
  30. data/src/apache2_module/ConfigGeneral/AutoGeneratedManifestDefaultsInitialization.cpp +5 -0
  31. data/src/apache2_module/ConfigGeneral/AutoGeneratedSetterFuncs.cpp +14 -0
  32. data/src/apache2_module/DirConfig/AutoGeneratedCreateFunction.cpp +3 -0
  33. data/src/apache2_module/DirConfig/AutoGeneratedHeaderSerialization.cpp +3 -0
  34. data/src/apache2_module/DirConfig/AutoGeneratedManifestGeneration.cpp +11 -0
  35. data/src/apache2_module/DirConfig/AutoGeneratedMergeFunction.cpp +7 -0
  36. data/src/apache2_module/DirConfig/AutoGeneratedStruct.h +17 -0
  37. data/src/apache2_module/Hooks.cpp +0 -6
  38. data/src/cxx_supportlib/ConfigKit/IN_PRACTICE.md +2 -12
  39. data/src/cxx_supportlib/ConfigKit/Store.h +1 -6
  40. data/src/cxx_supportlib/Constants.h +1 -1
  41. data/src/cxx_supportlib/DataStructures/StringKeyTable.h +1 -7
  42. data/src/cxx_supportlib/Exceptions.cpp +178 -0
  43. data/src/cxx_supportlib/Exceptions.h +62 -177
  44. data/src/cxx_supportlib/IOTools/IOUtils.cpp +255 -228
  45. data/src/cxx_supportlib/IOTools/IOUtils.h +84 -121
  46. data/src/cxx_supportlib/ServerKit/Config.h +1 -6
  47. data/src/cxx_supportlib/ServerKit/FileBufferedChannel.h +1 -1
  48. data/src/cxx_supportlib/StaticString.h +1 -6
  49. data/src/cxx_supportlib/Utils/Curl.h +1 -6
  50. data/src/cxx_supportlib/Utils/ScopeGuard.h +0 -32
  51. data/src/cxx_supportlib/oxt/implementation.cpp +2 -2
  52. data/src/cxx_supportlib/oxt/spin_lock.hpp +94 -23
  53. data/src/cxx_supportlib/vendor-modified/boost/assert/source_location.hpp +8 -1
  54. data/src/cxx_supportlib/vendor-modified/boost/assert.hpp +6 -0
  55. data/src/cxx_supportlib/vendor-modified/boost/atomic/atomic.hpp +94 -110
  56. data/src/cxx_supportlib/vendor-modified/boost/atomic/atomic_flag.hpp +2 -2
  57. data/src/cxx_supportlib/vendor-modified/boost/atomic/atomic_ref.hpp +14 -14
  58. data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/addressof.hpp +3 -3
  59. data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/atomic_flag_impl.hpp +52 -24
  60. data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/atomic_impl.hpp +641 -285
  61. data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/atomic_ref_impl.hpp +593 -260
  62. data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/bitwise_cast.hpp +37 -24
  63. data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/bitwise_fp_cast.hpp +9 -9
  64. data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/cas_based_exchange.hpp +3 -3
  65. data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/chrono.hpp +93 -0
  66. data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/classify.hpp +16 -17
  67. data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/config.hpp +25 -34
  68. data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/core_arch_ops_gcc_aarch32.hpp +204 -97
  69. data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/core_arch_ops_gcc_aarch64.hpp +251 -122
  70. data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/core_arch_ops_gcc_alpha.hpp +56 -56
  71. data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/core_arch_ops_gcc_arm.hpp +129 -129
  72. data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/core_arch_ops_gcc_ppc.hpp +253 -125
  73. data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/core_arch_ops_gcc_sparc.hpp +25 -25
  74. data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/core_arch_ops_gcc_x86.hpp +193 -126
  75. data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/core_arch_ops_msvc_arm.hpp +57 -57
  76. data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/core_arch_ops_msvc_x86.hpp +96 -97
  77. data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/core_operations_emulated.hpp +24 -24
  78. data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/core_ops_cas_based.hpp +10 -10
  79. data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/core_ops_gcc_atomic.hpp +27 -24
  80. data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/core_ops_gcc_sync.hpp +39 -37
  81. data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/core_ops_linux_arm.hpp +17 -17
  82. data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/extending_cas_based_arithmetic.hpp +5 -5
  83. data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/extra_fp_ops_emulated.hpp +12 -12
  84. data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/extra_fp_ops_generic.hpp +21 -21
  85. data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/extra_ops_emulated.hpp +30 -30
  86. data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/extra_ops_gcc_aarch32.hpp +170 -98
  87. data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/extra_ops_gcc_aarch64.hpp +209 -119
  88. data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/extra_ops_gcc_arm.hpp +95 -95
  89. data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/extra_ops_gcc_ppc.hpp +148 -76
  90. data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/extra_ops_gcc_x86.hpp +293 -123
  91. data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/extra_ops_generic.hpp +87 -71
  92. data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/extra_ops_msvc_arm.hpp +5 -5
  93. data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/extra_ops_msvc_x86.hpp +88 -88
  94. data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/fence_arch_operations.hpp +2 -2
  95. data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/fence_arch_ops_gcc_aarch32.hpp +4 -5
  96. data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/fence_arch_ops_gcc_aarch64.hpp +4 -4
  97. data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/fence_arch_ops_gcc_alpha.hpp +4 -4
  98. data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/fence_arch_ops_gcc_arm.hpp +9 -9
  99. data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/fence_arch_ops_gcc_ppc.hpp +4 -4
  100. data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/fence_arch_ops_gcc_sparc.hpp +4 -4
  101. data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/fence_arch_ops_gcc_x86.hpp +4 -4
  102. data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/fence_arch_ops_msvc_arm.hpp +5 -5
  103. data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/fence_arch_ops_msvc_x86.hpp +6 -6
  104. data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/fence_operations.hpp +2 -2
  105. data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/fence_operations_emulated.hpp +2 -2
  106. data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/fence_ops_gcc_atomic.hpp +5 -5
  107. data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/fence_ops_gcc_sync.hpp +4 -4
  108. data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/fence_ops_linux_arm.hpp +7 -7
  109. data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/fp_ops_emulated.hpp +7 -7
  110. data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/fp_ops_generic.hpp +6 -6
  111. data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/futex.hpp +110 -49
  112. data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/gcc_atomic_memory_order_utils.hpp +1 -1
  113. data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/has_posix_clock_traits.hpp +51 -0
  114. data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/int_sizes.hpp +26 -32
  115. data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/integral_conversions.hpp +15 -15
  116. data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/interlocked.hpp +69 -30
  117. data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/intptr.hpp +8 -8
  118. data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/lock_pool.hpp +51 -31
  119. data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/memory_order_utils.hpp +2 -2
  120. data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/once_flag.hpp +2 -2
  121. data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/ops_gcc_arm_common.hpp +6 -6
  122. data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/ops_gcc_ppc_common.hpp +4 -4
  123. data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/platform.hpp +5 -5
  124. data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/storage_traits.hpp +31 -31
  125. data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/type_traits/alignment_of.hpp +2 -3
  126. data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/type_traits/has_unique_object_representations.hpp +2 -5
  127. data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/type_traits/is_floating_point.hpp +3 -3
  128. data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/type_traits/is_iec559.hpp +2 -2
  129. data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/type_traits/is_integral.hpp +3 -3
  130. data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/type_traits/is_signed.hpp +3 -3
  131. data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/type_traits/is_trivially_copyable.hpp +20 -13
  132. data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/type_traits/is_trivially_default_constructible.hpp +13 -13
  133. data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/type_traits/make_signed.hpp +3 -3
  134. data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/type_traits/make_unsigned.hpp +3 -3
  135. data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/wait_ops_darwin_ulock.hpp +90 -16
  136. data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/wait_ops_dragonfly_umtx.hpp +80 -11
  137. data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/wait_ops_emulated.hpp +160 -15
  138. data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/wait_ops_freebsd_umtx.hpp +327 -38
  139. data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/wait_ops_futex.hpp +276 -33
  140. data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/wait_ops_generic.hpp +260 -20
  141. data/src/cxx_supportlib/vendor-modified/boost/atomic/fences.hpp +4 -3
  142. data/src/cxx_supportlib/vendor-modified/boost/atomic/ipc_atomic.hpp +14 -18
  143. data/src/cxx_supportlib/vendor-modified/boost/atomic/ipc_atomic_flag.hpp +2 -2
  144. data/src/cxx_supportlib/vendor-modified/boost/atomic/ipc_atomic_ref.hpp +13 -13
  145. data/src/cxx_supportlib/vendor-modified/boost/atomic/posix_clock_traits_fwd.hpp +59 -0
  146. data/src/cxx_supportlib/vendor-modified/boost/atomic/thread_pause.hpp +102 -0
  147. data/src/cxx_supportlib/vendor-modified/boost/atomic/wait_result.hpp +56 -0
  148. data/src/cxx_supportlib/vendor-modified/boost/atomic.hpp +4 -1
  149. data/src/cxx_supportlib/vendor-modified/boost/config/stdlib/libcpp.hpp +5 -0
  150. data/src/cxx_supportlib/vendor-modified/boost/container/allocator.hpp +1 -1
  151. data/src/cxx_supportlib/vendor-modified/boost/container/allocator_traits.hpp +108 -41
  152. data/src/cxx_supportlib/vendor-modified/boost/container/deque.hpp +1235 -1009
  153. data/src/cxx_supportlib/vendor-modified/boost/container/detail/advanced_insert_int.hpp +3 -2
  154. data/src/cxx_supportlib/vendor-modified/boost/container/detail/algorithm.hpp +56 -0
  155. data/src/cxx_supportlib/vendor-modified/boost/container/detail/alloc_helpers.hpp +1 -0
  156. data/src/cxx_supportlib/vendor-modified/boost/container/detail/alloc_lib.h +9 -9
  157. data/src/cxx_supportlib/vendor-modified/boost/container/detail/compare_functors.hpp +23 -2
  158. data/src/cxx_supportlib/vendor-modified/boost/container/detail/config_begin.hpp +0 -1
  159. data/src/cxx_supportlib/vendor-modified/boost/container/detail/copy_move_algo.hpp +88 -23
  160. data/src/cxx_supportlib/vendor-modified/boost/container/detail/flat_tree.hpp +2 -1
  161. data/src/cxx_supportlib/vendor-modified/boost/container/detail/node_pool_impl.hpp +2 -2
  162. data/src/cxx_supportlib/vendor-modified/boost/container/detail/operator_new_helpers.hpp +68 -0
  163. data/src/cxx_supportlib/vendor-modified/boost/container/detail/pair.hpp +72 -13
  164. data/src/cxx_supportlib/vendor-modified/boost/container/detail/std_fwd.hpp +13 -0
  165. data/src/cxx_supportlib/vendor-modified/boost/container/detail/tree.hpp +8 -5
  166. data/src/cxx_supportlib/vendor-modified/boost/container/devector.hpp +31 -10
  167. data/src/cxx_supportlib/vendor-modified/boost/container/flat_map.hpp +37 -10
  168. data/src/cxx_supportlib/vendor-modified/boost/container/flat_set.hpp +19 -0
  169. data/src/cxx_supportlib/vendor-modified/boost/container/list.hpp +23 -1
  170. data/src/cxx_supportlib/vendor-modified/boost/container/map.hpp +72 -5
  171. data/src/cxx_supportlib/vendor-modified/boost/container/new_allocator.hpp +3 -10
  172. data/src/cxx_supportlib/vendor-modified/boost/container/options.hpp +54 -23
  173. data/src/cxx_supportlib/vendor-modified/boost/container/pmr/devector.hpp +6 -4
  174. data/src/cxx_supportlib/vendor-modified/boost/container/set.hpp +19 -0
  175. data/src/cxx_supportlib/vendor-modified/boost/container/slist.hpp +32 -5
  176. data/src/cxx_supportlib/vendor-modified/boost/container/small_vector.hpp +27 -2
  177. data/src/cxx_supportlib/vendor-modified/boost/container/stable_vector.hpp +22 -0
  178. data/src/cxx_supportlib/vendor-modified/boost/container/static_vector.hpp +37 -17
  179. data/src/cxx_supportlib/vendor-modified/boost/container/string.hpp +23 -1
  180. data/src/cxx_supportlib/vendor-modified/boost/container/vector.hpp +41 -20
  181. data/src/cxx_supportlib/vendor-modified/boost/container_hash/hash.hpp +5 -8
  182. data/src/cxx_supportlib/vendor-modified/boost/container_hash/hash_fwd.hpp +3 -1
  183. data/src/cxx_supportlib/vendor-modified/boost/container_hash/hash_is_avalanching.hpp +57 -0
  184. data/src/cxx_supportlib/vendor-modified/boost/core/bit.hpp +29 -29
  185. data/src/cxx_supportlib/vendor-modified/boost/core/cmath.hpp +3 -3
  186. data/src/cxx_supportlib/vendor-modified/boost/core/data.hpp +15 -1
  187. data/src/cxx_supportlib/vendor-modified/boost/core/default_allocator.hpp +1 -0
  188. data/src/cxx_supportlib/vendor-modified/boost/core/demangle.hpp +1 -1
  189. data/src/cxx_supportlib/vendor-modified/boost/core/detail/assert.hpp +18 -0
  190. data/src/cxx_supportlib/vendor-modified/boost/core/detail/sp_thread_sleep.hpp +2 -2
  191. data/src/cxx_supportlib/vendor-modified/boost/core/detail/static_assert.hpp +42 -0
  192. data/src/cxx_supportlib/vendor-modified/boost/core/detail/string_view.hpp +16 -10
  193. data/src/cxx_supportlib/vendor-modified/boost/core/lightweight_test.hpp +35 -27
  194. data/src/cxx_supportlib/vendor-modified/boost/core/scoped_enum.hpp +1 -1
  195. data/src/cxx_supportlib/vendor-modified/boost/core/size.hpp +14 -0
  196. data/src/cxx_supportlib/vendor-modified/boost/core/span.hpp +20 -9
  197. data/src/cxx_supportlib/vendor-modified/boost/cregex.hpp +0 -5
  198. data/src/cxx_supportlib/vendor-modified/boost/describe/detail/config.hpp +8 -0
  199. data/src/cxx_supportlib/vendor-modified/boost/describe/modifiers.hpp +1 -1
  200. data/src/cxx_supportlib/vendor-modified/boost/foreach.hpp +1 -0
  201. data/src/cxx_supportlib/vendor-modified/boost/intrusive/detail/ebo_functor_holder.hpp +4 -4
  202. data/src/cxx_supportlib/vendor-modified/boost/intrusive/list.hpp +2 -2
  203. data/src/cxx_supportlib/vendor-modified/boost/intrusive/pointer_rebind.hpp +9 -0
  204. data/src/cxx_supportlib/vendor-modified/boost/intrusive/rbtree_algorithms.hpp +1 -0
  205. data/src/cxx_supportlib/vendor-modified/boost/intrusive/slist.hpp +2 -2
  206. data/src/cxx_supportlib/vendor-modified/boost/iterator/advance.hpp +43 -64
  207. data/src/cxx_supportlib/vendor-modified/boost/iterator/detail/config_def.hpp +0 -83
  208. data/src/cxx_supportlib/vendor-modified/boost/iterator/detail/config_undef.hpp +1 -5
  209. data/src/cxx_supportlib/vendor-modified/boost/iterator/detail/eval_if_default.hpp +44 -0
  210. data/src/cxx_supportlib/vendor-modified/boost/iterator/detail/facade_iterator_category.hpp +103 -117
  211. data/src/cxx_supportlib/vendor-modified/boost/iterator/detail/type_traits/conjunction.hpp +53 -0
  212. data/src/cxx_supportlib/vendor-modified/boost/iterator/detail/type_traits/disjunction.hpp +53 -0
  213. data/src/cxx_supportlib/vendor-modified/boost/iterator/detail/type_traits/negation.hpp +53 -0
  214. data/src/cxx_supportlib/vendor-modified/boost/iterator/detail/type_traits/type_identity.hpp +54 -0
  215. data/src/cxx_supportlib/vendor-modified/boost/iterator/distance.hpp +32 -38
  216. data/src/cxx_supportlib/vendor-modified/boost/iterator/enable_if_convertible.hpp +84 -0
  217. data/src/cxx_supportlib/vendor-modified/boost/iterator/interoperable.hpp +22 -34
  218. data/src/cxx_supportlib/vendor-modified/boost/iterator/is_iterator.hpp +16 -16
  219. data/src/cxx_supportlib/vendor-modified/boost/iterator/iterator_adaptor.hpp +162 -309
  220. data/src/cxx_supportlib/vendor-modified/boost/iterator/iterator_categories.hpp +52 -161
  221. data/src/cxx_supportlib/vendor-modified/boost/iterator/iterator_concepts.hpp +3 -11
  222. data/src/cxx_supportlib/vendor-modified/boost/iterator/iterator_facade.hpp +804 -977
  223. data/src/cxx_supportlib/vendor-modified/boost/iterator/iterator_traits.hpp +24 -17
  224. data/src/cxx_supportlib/vendor-modified/boost/iterator/min_category.hpp +83 -0
  225. data/src/cxx_supportlib/vendor-modified/boost/iterator/minimum_category.hpp +11 -73
  226. data/src/cxx_supportlib/vendor-modified/boost/iterator/reverse_iterator.hpp +56 -57
  227. data/src/cxx_supportlib/vendor-modified/boost/iterator/transform_iterator.hpp +123 -156
  228. data/src/cxx_supportlib/vendor-modified/boost/lexical_cast/bad_lexical_cast.hpp +1 -1
  229. data/src/cxx_supportlib/vendor-modified/boost/lexical_cast/detail/buffer_view.hpp +1 -1
  230. data/src/cxx_supportlib/vendor-modified/boost/lexical_cast/detail/converter_lexical.hpp +36 -33
  231. data/src/cxx_supportlib/vendor-modified/boost/lexical_cast/detail/converter_lexical_streams.hpp +43 -50
  232. data/src/cxx_supportlib/vendor-modified/boost/lexical_cast/detail/converter_numeric.hpp +23 -27
  233. data/src/cxx_supportlib/vendor-modified/boost/lexical_cast/detail/inf_nan.hpp +1 -1
  234. data/src/cxx_supportlib/vendor-modified/boost/lexical_cast/detail/is_character.hpp +10 -11
  235. data/src/cxx_supportlib/vendor-modified/boost/lexical_cast/detail/lcast_basic_unlockedbuf.hpp +1 -1
  236. data/src/cxx_supportlib/vendor-modified/boost/lexical_cast/detail/lcast_char_constants.hpp +1 -1
  237. data/src/cxx_supportlib/vendor-modified/boost/lexical_cast/detail/lcast_unsigned_converters.hpp +6 -7
  238. data/src/cxx_supportlib/vendor-modified/boost/lexical_cast/detail/type_traits.hpp +81 -0
  239. data/src/cxx_supportlib/vendor-modified/boost/lexical_cast/detail/widest_char.hpp +4 -4
  240. data/src/cxx_supportlib/vendor-modified/boost/lexical_cast/try_lexical_convert.hpp +8 -9
  241. data/src/cxx_supportlib/vendor-modified/boost/lexical_cast.hpp +1 -1
  242. data/src/cxx_supportlib/vendor-modified/boost/libs/regex/src/wide_posix_api.cpp +1 -12
  243. data/src/cxx_supportlib/vendor-modified/boost/memory_order.hpp +8 -26
  244. data/src/cxx_supportlib/vendor-modified/boost/move/detail/iterator_to_raw_pointer.hpp +1 -1
  245. data/src/cxx_supportlib/vendor-modified/boost/move/detail/launder.hpp +1 -1
  246. data/src/cxx_supportlib/vendor-modified/boost/move/detail/std_ns_begin.hpp +6 -0
  247. data/src/cxx_supportlib/vendor-modified/boost/move/detail/unique_ptr_meta_utils.hpp +2 -2
  248. data/src/cxx_supportlib/vendor-modified/boost/mp11/algorithm.hpp +11 -44
  249. data/src/cxx_supportlib/vendor-modified/boost/mp11/detail/mp_map_find.hpp +34 -0
  250. data/src/cxx_supportlib/vendor-modified/boost/mp11/set.hpp +33 -1
  251. data/src/cxx_supportlib/vendor-modified/boost/mp11/version.hpp +1 -1
  252. data/src/cxx_supportlib/vendor-modified/boost/mpl/and.hpp +4 -8
  253. data/src/cxx_supportlib/vendor-modified/boost/mpl/aux_/na_assert.hpp +1 -1
  254. data/src/cxx_supportlib/vendor-modified/boost/mpl/aux_/ptr_to_ref.hpp +1 -1
  255. data/src/cxx_supportlib/vendor-modified/boost/mpl/bitand.hpp +2 -6
  256. data/src/cxx_supportlib/vendor-modified/boost/mpl/bitor.hpp +2 -6
  257. data/src/cxx_supportlib/vendor-modified/boost/mpl/or.hpp +2 -6
  258. data/src/cxx_supportlib/vendor-modified/boost/pool/pool.hpp +1 -1
  259. data/src/cxx_supportlib/vendor-modified/boost/pool/simple_segregated_storage.hpp +0 -13
  260. data/src/cxx_supportlib/vendor-modified/boost/preprocessor/tuple/limits/to_seq_256.hpp +190 -190
  261. data/src/cxx_supportlib/vendor-modified/boost/random/beta_distribution.hpp +12 -2
  262. data/src/cxx_supportlib/vendor-modified/boost/random/detail/config.hpp +4 -0
  263. data/src/cxx_supportlib/vendor-modified/boost/random/detail/size.hpp +41 -0
  264. data/src/cxx_supportlib/vendor-modified/boost/random/detail/xoshiro_base.hpp +472 -0
  265. data/src/cxx_supportlib/vendor-modified/boost/random/discrete_distribution.hpp +7 -10
  266. data/src/cxx_supportlib/vendor-modified/boost/random/gamma_distribution.hpp +1 -1
  267. data/src/cxx_supportlib/vendor-modified/boost/random/generalized_inverse_gaussian_distribution.hpp +339 -0
  268. data/src/cxx_supportlib/vendor-modified/boost/random/hyperexponential_distribution.hpp +12 -14
  269. data/src/cxx_supportlib/vendor-modified/boost/random/inverse_gaussian_distribution.hpp +226 -0
  270. data/src/cxx_supportlib/vendor-modified/boost/random/mersenne_twister.hpp +1 -4
  271. data/src/cxx_supportlib/vendor-modified/boost/random/mixmax.hpp +63 -63
  272. data/src/cxx_supportlib/vendor-modified/boost/random/piecewise_constant_distribution.hpp +7 -10
  273. data/src/cxx_supportlib/vendor-modified/boost/random/piecewise_linear_distribution.hpp +8 -11
  274. data/src/cxx_supportlib/vendor-modified/boost/random/seed_seq.hpp +1 -3
  275. data/src/cxx_supportlib/vendor-modified/boost/random/splitmix64.hpp +1 -4
  276. data/src/cxx_supportlib/vendor-modified/boost/random/xoshiro.hpp +488 -0
  277. data/src/cxx_supportlib/vendor-modified/boost/random.hpp +3 -0
  278. data/src/cxx_supportlib/vendor-modified/boost/range/concepts.hpp +2 -0
  279. data/src/cxx_supportlib/vendor-modified/boost/range/detail/has_member_size.hpp +1 -0
  280. data/src/cxx_supportlib/vendor-modified/boost/range/detail/msvc_has_iterator_workaround.hpp +2 -0
  281. data/src/cxx_supportlib/vendor-modified/boost/range/has_range_iterator.hpp +1 -1
  282. data/src/cxx_supportlib/vendor-modified/boost/range/iterator.hpp +1 -0
  283. data/src/cxx_supportlib/vendor-modified/boost/range/iterator_range_core.hpp +4 -1
  284. data/src/cxx_supportlib/vendor-modified/boost/range/size_type.hpp +1 -1
  285. data/src/cxx_supportlib/vendor-modified/boost/regex/concepts.hpp +35 -18
  286. data/src/cxx_supportlib/vendor-modified/boost/regex/config.hpp +18 -101
  287. data/src/cxx_supportlib/vendor-modified/boost/regex/pattern_except.hpp +0 -4
  288. data/src/cxx_supportlib/vendor-modified/boost/regex/pending/object_cache.hpp +0 -4
  289. data/src/cxx_supportlib/vendor-modified/boost/regex/pending/unicode_iterator.hpp +0 -6
  290. data/src/cxx_supportlib/vendor-modified/boost/regex/regex_traits.hpp +0 -4
  291. data/src/cxx_supportlib/vendor-modified/boost/regex/user.hpp +4 -10
  292. data/src/cxx_supportlib/vendor-modified/boost/regex/v5/basic_regex.hpp +63 -17
  293. data/src/cxx_supportlib/vendor-modified/boost/regex/v5/basic_regex_creator.hpp +71 -16
  294. data/src/cxx_supportlib/vendor-modified/boost/regex/v5/basic_regex_parser.hpp +22 -1
  295. data/src/cxx_supportlib/vendor-modified/boost/regex/v5/c_regex_traits.hpp +11 -4
  296. data/src/cxx_supportlib/vendor-modified/boost/regex/v5/char_regex_traits.hpp +2 -0
  297. data/src/cxx_supportlib/vendor-modified/boost/regex/v5/cpp_regex_traits.hpp +11 -8
  298. data/src/cxx_supportlib/vendor-modified/boost/regex/v5/cregex.hpp +2 -1
  299. data/src/cxx_supportlib/vendor-modified/boost/regex/v5/error_type.hpp +1 -1
  300. data/src/cxx_supportlib/vendor-modified/boost/regex/v5/icu.hpp +40 -38
  301. data/src/cxx_supportlib/vendor-modified/boost/regex/v5/iterator_category.hpp +2 -0
  302. data/src/cxx_supportlib/vendor-modified/boost/regex/v5/iterator_traits.hpp +4 -0
  303. data/src/cxx_supportlib/vendor-modified/boost/regex/v5/match_flags.hpp +39 -37
  304. data/src/cxx_supportlib/vendor-modified/boost/regex/v5/match_results.hpp +46 -9
  305. data/src/cxx_supportlib/vendor-modified/boost/regex/v5/mem_block_cache.hpp +4 -0
  306. data/src/cxx_supportlib/vendor-modified/boost/regex/v5/object_cache.hpp +2 -0
  307. data/src/cxx_supportlib/vendor-modified/boost/regex/v5/pattern_except.hpp +6 -4
  308. data/src/cxx_supportlib/vendor-modified/boost/regex/v5/perl_matcher.hpp +57 -8
  309. data/src/cxx_supportlib/vendor-modified/boost/regex/v5/perl_matcher_common.hpp +21 -6
  310. data/src/cxx_supportlib/vendor-modified/boost/regex/v5/perl_matcher_non_recursive.hpp +18 -3
  311. data/src/cxx_supportlib/vendor-modified/boost/regex/v5/regbase.hpp +4 -2
  312. data/src/cxx_supportlib/vendor-modified/boost/regex/v5/regex.hpp +6 -6
  313. data/src/cxx_supportlib/vendor-modified/boost/regex/v5/regex_format.hpp +23 -18
  314. data/src/cxx_supportlib/vendor-modified/boost/regex/v5/regex_fwd.hpp +9 -9
  315. data/src/cxx_supportlib/vendor-modified/boost/regex/v5/regex_grep.hpp +9 -5
  316. data/src/cxx_supportlib/vendor-modified/boost/regex/v5/regex_iterator.hpp +11 -7
  317. data/src/cxx_supportlib/vendor-modified/boost/regex/v5/regex_match.hpp +10 -7
  318. data/src/cxx_supportlib/vendor-modified/boost/regex/v5/regex_merge.hpp +4 -4
  319. data/src/cxx_supportlib/vendor-modified/boost/regex/v5/regex_raw_buffer.hpp +3 -0
  320. data/src/cxx_supportlib/vendor-modified/boost/regex/v5/regex_replace.hpp +6 -2
  321. data/src/cxx_supportlib/vendor-modified/boost/regex/v5/regex_search.hpp +12 -9
  322. data/src/cxx_supportlib/vendor-modified/boost/regex/v5/regex_split.hpp +6 -3
  323. data/src/cxx_supportlib/vendor-modified/boost/regex/v5/regex_token_iterator.hpp +16 -11
  324. data/src/cxx_supportlib/vendor-modified/boost/regex/v5/regex_traits.hpp +1 -1
  325. data/src/cxx_supportlib/vendor-modified/boost/regex/v5/regex_traits_defaults.hpp +2 -0
  326. data/src/cxx_supportlib/vendor-modified/boost/regex/v5/regex_workaround.hpp +2 -0
  327. data/src/cxx_supportlib/vendor-modified/boost/regex/v5/states.hpp +7 -0
  328. data/src/cxx_supportlib/vendor-modified/boost/regex/v5/sub_match.hpp +54 -49
  329. data/src/cxx_supportlib/vendor-modified/boost/regex/v5/syntax_type.hpp +64 -62
  330. data/src/cxx_supportlib/vendor-modified/boost/regex/v5/u32regex_iterator.hpp +16 -0
  331. data/src/cxx_supportlib/vendor-modified/boost/regex/v5/u32regex_token_iterator.hpp +12 -0
  332. data/src/cxx_supportlib/vendor-modified/boost/regex/v5/unicode_iterator.hpp +6 -4
  333. data/src/cxx_supportlib/vendor-modified/boost/regex/v5/w32_regex_traits.hpp +3 -1
  334. data/src/cxx_supportlib/vendor-modified/boost/regex.hpp +0 -4
  335. data/src/cxx_supportlib/vendor-modified/boost/regex_fwd.hpp +0 -4
  336. data/src/cxx_supportlib/vendor-modified/boost/smart_ptr/detail/atomic_count.hpp +1 -43
  337. data/src/cxx_supportlib/vendor-modified/boost/smart_ptr/detail/deprecated_macros.hpp +7 -7
  338. data/src/cxx_supportlib/vendor-modified/boost/smart_ptr/detail/shared_count.hpp +2 -77
  339. data/src/cxx_supportlib/vendor-modified/boost/smart_ptr/detail/sp_counted_base.hpp +1 -64
  340. data/src/cxx_supportlib/vendor-modified/boost/smart_ptr/detail/sp_counted_base_nt.hpp +3 -3
  341. data/src/cxx_supportlib/vendor-modified/boost/smart_ptr/detail/sp_counted_impl.hpp +0 -77
  342. data/src/cxx_supportlib/vendor-modified/boost/smart_ptr/detail/sp_cxx20_constexpr.hpp +37 -0
  343. data/src/cxx_supportlib/vendor-modified/boost/smart_ptr/detail/spinlock.hpp +5 -28
  344. data/src/cxx_supportlib/vendor-modified/boost/smart_ptr/intrusive_ptr.hpp +41 -40
  345. data/src/cxx_supportlib/vendor-modified/boost/smart_ptr/scoped_array.hpp +0 -15
  346. data/src/cxx_supportlib/vendor-modified/boost/smart_ptr/scoped_ptr.hpp +0 -18
  347. data/src/cxx_supportlib/vendor-modified/boost/smart_ptr/shared_ptr.hpp +1 -1
  348. data/src/cxx_supportlib/vendor-modified/boost/thread/future.hpp +1 -1
  349. data/src/cxx_supportlib/vendor-modified/boost/tuple/detail/tuple_basic.hpp +1 -0
  350. data/src/cxx_supportlib/vendor-modified/boost/type_traits/integral_constant.hpp +8 -6
  351. data/src/cxx_supportlib/vendor-modified/boost/type_traits/is_complete.hpp +31 -10
  352. data/src/cxx_supportlib/vendor-modified/boost/unordered/detail/fca.hpp +34 -8
  353. data/src/cxx_supportlib/vendor-modified/boost/unordered/detail/foa/core.hpp +6 -4
  354. data/src/cxx_supportlib/vendor-modified/boost/unordered/detail/foa/table.hpp +9 -1
  355. data/src/cxx_supportlib/vendor-modified/boost/unordered/detail/implementation.hpp +5 -5
  356. data/src/cxx_supportlib/vendor-modified/boost/unordered/{unordered_printers.hpp → detail/unordered_printers.hpp} +34 -36
  357. data/src/cxx_supportlib/vendor-modified/boost/unordered/hash_traits.hpp +6 -49
  358. data/src/cxx_supportlib/vendor-modified/boost/unordered/unordered_flat_map.hpp +6 -1
  359. data/src/cxx_supportlib/vendor-modified/boost/unordered/unordered_flat_set.hpp +6 -1
  360. data/src/cxx_supportlib/vendor-modified/boost/unordered/unordered_node_map.hpp +6 -1
  361. data/src/cxx_supportlib/vendor-modified/boost/unordered/unordered_node_set.hpp +6 -1
  362. data/src/cxx_supportlib/vendor-modified/boost/version.hpp +2 -2
  363. data/src/nginx_module/ContentHandler.c +2 -0
  364. data/src/ruby_supportlib/phusion_passenger/config/download_agent_command.rb +3 -5
  365. data/src/ruby_supportlib/phusion_passenger/config/download_nginx_engine_command.rb +3 -5
  366. data/src/ruby_supportlib/phusion_passenger/config/install_agent_command.rb +3 -5
  367. data/src/ruby_supportlib/phusion_passenger/config/install_standalone_runtime_command.rb +3 -5
  368. data/src/ruby_supportlib/phusion_passenger/config/installation_utils.rb +1 -1
  369. data/src/ruby_supportlib/phusion_passenger/config/nginx_engine_compiler.rb +2 -2
  370. data/src/ruby_supportlib/phusion_passenger/loader_shared_helpers.rb +5 -3
  371. data/src/ruby_supportlib/phusion_passenger/platform_info/apache.rb +2 -2
  372. data/src/ruby_supportlib/phusion_passenger/platform_info/compiler.rb +12 -23
  373. data/src/ruby_supportlib/phusion_passenger/platform_info/cxx_portability.rb +31 -32
  374. data/src/ruby_supportlib/phusion_passenger/rack_handler.rb +2 -2
  375. data/src/ruby_supportlib/phusion_passenger/request_handler/thread_handler.rb +2 -3
  376. data/src/ruby_supportlib/phusion_passenger/standalone/config_utils.rb +2 -0
  377. data/src/ruby_supportlib/phusion_passenger/standalone/start_command/builtin_engine.rb +1 -1
  378. data/src/ruby_supportlib/phusion_passenger/utils/json.rb +1 -1
  379. data/src/ruby_supportlib/phusion_passenger/utils/terminal_choice_menu.rb +1 -1
  380. data/src/ruby_supportlib/phusion_passenger/vendor/crash_watch/gdb_controller.rb +1 -1
  381. data/src/ruby_supportlib/phusion_passenger.rb +8 -8
  382. metadata +27 -104
  383. data/src/cxx_supportlib/oxt/detail/spin_lock_darwin.hpp +0 -75
  384. data/src/cxx_supportlib/oxt/detail/spin_lock_gcc_x86.hpp +0 -85
  385. data/src/cxx_supportlib/oxt/detail/spin_lock_portable.hpp +0 -38
  386. data/src/cxx_supportlib/oxt/detail/spin_lock_pthreads.hpp +0 -111
  387. data/src/cxx_supportlib/vendor-modified/boost/align/aligned_alloc.hpp +0 -47
  388. data/src/cxx_supportlib/vendor-modified/boost/align/detail/aligned_alloc_posix.hpp +0 -41
  389. data/src/cxx_supportlib/vendor-modified/boost/align/detail/aligned_alloc_sunos.hpp +0 -34
  390. data/src/cxx_supportlib/vendor-modified/boost/align/detail/is_alignment.hpp +0 -28
  391. data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/pause.hpp +0 -68
  392. data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/type_traits/conditional.hpp +0 -42
  393. data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/type_traits/integral_constant.hpp +0 -46
  394. data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/type_traits/is_enum.hpp +0 -42
  395. data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/type_traits/is_function.hpp +0 -42
  396. data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/type_traits/is_nothrow_default_constructible.hpp +0 -46
  397. data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/type_traits/remove_cv.hpp +0 -42
  398. data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/wait_on_address.hpp +0 -64
  399. data/src/cxx_supportlib/vendor-modified/boost/cerrno.hpp +0 -15
  400. data/src/cxx_supportlib/vendor-modified/boost/detail/indirect_traits.hpp +0 -195
  401. data/src/cxx_supportlib/vendor-modified/boost/detail/select_type.hpp +0 -36
  402. data/src/cxx_supportlib/vendor-modified/boost/iterator/detail/enable_if.hpp +0 -83
  403. data/src/cxx_supportlib/vendor-modified/boost/libs/regex/src/internals.hpp +0 -35
  404. data/src/cxx_supportlib/vendor-modified/boost/libs/regex/src/regex.cpp +0 -120
  405. data/src/cxx_supportlib/vendor-modified/boost/libs/regex/src/regex_debug.cpp +0 -59
  406. data/src/cxx_supportlib/vendor-modified/boost/libs/regex/src/static_mutex.cpp +0 -189
  407. data/src/cxx_supportlib/vendor-modified/boost/libs/system/src/error_code.cpp +0 -31
  408. data/src/cxx_supportlib/vendor-modified/boost/regex/config/borland.hpp +0 -72
  409. data/src/cxx_supportlib/vendor-modified/boost/regex/config/cwchar.hpp +0 -207
  410. data/src/cxx_supportlib/vendor-modified/boost/regex/pending/static_mutex.hpp +0 -182
  411. data/src/cxx_supportlib/vendor-modified/boost/regex/v4/basic_regex.hpp +0 -797
  412. data/src/cxx_supportlib/vendor-modified/boost/regex/v4/basic_regex_creator.hpp +0 -1598
  413. data/src/cxx_supportlib/vendor-modified/boost/regex/v4/basic_regex_parser.hpp +0 -3174
  414. data/src/cxx_supportlib/vendor-modified/boost/regex/v4/c_regex_traits.hpp +0 -511
  415. data/src/cxx_supportlib/vendor-modified/boost/regex/v4/char_regex_traits.hpp +0 -81
  416. data/src/cxx_supportlib/vendor-modified/boost/regex/v4/cpp_regex_traits.hpp +0 -1237
  417. data/src/cxx_supportlib/vendor-modified/boost/regex/v4/cregex.hpp +0 -213
  418. data/src/cxx_supportlib/vendor-modified/boost/regex/v4/error_type.hpp +0 -59
  419. data/src/cxx_supportlib/vendor-modified/boost/regex/v4/icu.hpp +0 -1516
  420. data/src/cxx_supportlib/vendor-modified/boost/regex/v4/indexed_bit_flag.hpp +0 -54
  421. data/src/cxx_supportlib/vendor-modified/boost/regex/v4/iterator_category.hpp +0 -91
  422. data/src/cxx_supportlib/vendor-modified/boost/regex/v4/iterator_traits.hpp +0 -135
  423. data/src/cxx_supportlib/vendor-modified/boost/regex/v4/match_flags.hpp +0 -161
  424. data/src/cxx_supportlib/vendor-modified/boost/regex/v4/match_results.hpp +0 -716
  425. data/src/cxx_supportlib/vendor-modified/boost/regex/v4/mem_block_cache.hpp +0 -183
  426. data/src/cxx_supportlib/vendor-modified/boost/regex/v4/object_cache.hpp +0 -171
  427. data/src/cxx_supportlib/vendor-modified/boost/regex/v4/pattern_except.hpp +0 -128
  428. data/src/cxx_supportlib/vendor-modified/boost/regex/v4/perl_matcher.hpp +0 -645
  429. data/src/cxx_supportlib/vendor-modified/boost/regex/v4/perl_matcher_common.hpp +0 -1030
  430. data/src/cxx_supportlib/vendor-modified/boost/regex/v4/perl_matcher_non_recursive.hpp +0 -1947
  431. data/src/cxx_supportlib/vendor-modified/boost/regex/v4/perl_matcher_recursive.hpp +0 -1131
  432. data/src/cxx_supportlib/vendor-modified/boost/regex/v4/primary_transform.hpp +0 -146
  433. data/src/cxx_supportlib/vendor-modified/boost/regex/v4/protected_call.hpp +0 -83
  434. data/src/cxx_supportlib/vendor-modified/boost/regex/v4/regbase.hpp +0 -180
  435. data/src/cxx_supportlib/vendor-modified/boost/regex/v4/regex.hpp +0 -166
  436. data/src/cxx_supportlib/vendor-modified/boost/regex/v4/regex_format.hpp +0 -1158
  437. data/src/cxx_supportlib/vendor-modified/boost/regex/v4/regex_fwd.hpp +0 -73
  438. data/src/cxx_supportlib/vendor-modified/boost/regex/v4/regex_grep.hpp +0 -155
  439. data/src/cxx_supportlib/vendor-modified/boost/regex/v4/regex_iterator.hpp +0 -195
  440. data/src/cxx_supportlib/vendor-modified/boost/regex/v4/regex_match.hpp +0 -382
  441. data/src/cxx_supportlib/vendor-modified/boost/regex/v4/regex_merge.hpp +0 -93
  442. data/src/cxx_supportlib/vendor-modified/boost/regex/v4/regex_raw_buffer.hpp +0 -241
  443. data/src/cxx_supportlib/vendor-modified/boost/regex/v4/regex_replace.hpp +0 -99
  444. data/src/cxx_supportlib/vendor-modified/boost/regex/v4/regex_search.hpp +0 -217
  445. data/src/cxx_supportlib/vendor-modified/boost/regex/v4/regex_split.hpp +0 -174
  446. data/src/cxx_supportlib/vendor-modified/boost/regex/v4/regex_token_iterator.hpp +0 -327
  447. data/src/cxx_supportlib/vendor-modified/boost/regex/v4/regex_traits.hpp +0 -189
  448. data/src/cxx_supportlib/vendor-modified/boost/regex/v4/regex_traits_defaults.hpp +0 -997
  449. data/src/cxx_supportlib/vendor-modified/boost/regex/v4/regex_workaround.hpp +0 -237
  450. data/src/cxx_supportlib/vendor-modified/boost/regex/v4/states.hpp +0 -321
  451. data/src/cxx_supportlib/vendor-modified/boost/regex/v4/sub_match.hpp +0 -516
  452. data/src/cxx_supportlib/vendor-modified/boost/regex/v4/syntax_type.hpp +0 -105
  453. data/src/cxx_supportlib/vendor-modified/boost/regex/v4/u32regex_iterator.hpp +0 -185
  454. data/src/cxx_supportlib/vendor-modified/boost/regex/v4/u32regex_token_iterator.hpp +0 -360
  455. data/src/cxx_supportlib/vendor-modified/boost/regex/v4/unicode_iterator.hpp +0 -871
  456. data/src/cxx_supportlib/vendor-modified/boost/regex/v4/w32_regex_traits.hpp +0 -1229
  457. data/src/cxx_supportlib/vendor-modified/boost/smart_ptr/detail/atomic_count_gcc.hpp +0 -79
  458. data/src/cxx_supportlib/vendor-modified/boost/smart_ptr/detail/atomic_count_gcc_atomic.hpp +0 -63
  459. data/src/cxx_supportlib/vendor-modified/boost/smart_ptr/detail/atomic_count_gcc_x86.hpp +0 -88
  460. data/src/cxx_supportlib/vendor-modified/boost/smart_ptr/detail/atomic_count_pt.hpp +0 -104
  461. data/src/cxx_supportlib/vendor-modified/boost/smart_ptr/detail/atomic_count_spin.hpp +0 -69
  462. data/src/cxx_supportlib/vendor-modified/boost/smart_ptr/detail/atomic_count_sync.hpp +0 -72
  463. data/src/cxx_supportlib/vendor-modified/boost/smart_ptr/detail/sp_counted_base_acc_ia64.hpp +0 -163
  464. data/src/cxx_supportlib/vendor-modified/boost/smart_ptr/detail/sp_counted_base_aix.hpp +0 -152
  465. data/src/cxx_supportlib/vendor-modified/boost/smart_ptr/detail/sp_counted_base_cw_ppc.hpp +0 -185
  466. data/src/cxx_supportlib/vendor-modified/boost/smart_ptr/detail/sp_counted_base_gcc_atomic.hpp +0 -148
  467. data/src/cxx_supportlib/vendor-modified/boost/smart_ptr/detail/sp_counted_base_gcc_ia64.hpp +0 -170
  468. data/src/cxx_supportlib/vendor-modified/boost/smart_ptr/detail/sp_counted_base_gcc_mips.hpp +0 -200
  469. data/src/cxx_supportlib/vendor-modified/boost/smart_ptr/detail/sp_counted_base_gcc_ppc.hpp +0 -194
  470. data/src/cxx_supportlib/vendor-modified/boost/smart_ptr/detail/sp_counted_base_gcc_sparc.hpp +0 -179
  471. data/src/cxx_supportlib/vendor-modified/boost/smart_ptr/detail/sp_counted_base_gcc_x86.hpp +0 -186
  472. data/src/cxx_supportlib/vendor-modified/boost/smart_ptr/detail/sp_counted_base_pt.hpp +0 -147
  473. data/src/cxx_supportlib/vendor-modified/boost/smart_ptr/detail/sp_counted_base_snc_ps3.hpp +0 -174
  474. data/src/cxx_supportlib/vendor-modified/boost/smart_ptr/detail/sp_counted_base_spin.hpp +0 -141
  475. data/src/cxx_supportlib/vendor-modified/boost/smart_ptr/detail/sp_counted_base_sync.hpp +0 -165
  476. data/src/cxx_supportlib/vendor-modified/boost/smart_ptr/detail/sp_counted_base_vacpp_ppc.hpp +0 -163
  477. data/src/cxx_supportlib/vendor-modified/boost/smart_ptr/detail/sp_has_gcc_intrinsics.hpp +0 -30
  478. data/src/cxx_supportlib/vendor-modified/boost/smart_ptr/detail/sp_has_sync_intrinsics.hpp +0 -69
  479. data/src/cxx_supportlib/vendor-modified/boost/smart_ptr/detail/spinlock_gcc_arm.hpp +0 -128
  480. data/src/cxx_supportlib/vendor-modified/boost/smart_ptr/detail/spinlock_nt.hpp +0 -96
  481. data/src/cxx_supportlib/vendor-modified/boost/smart_ptr/detail/spinlock_pt.hpp +0 -86
  482. data/src/cxx_supportlib/vendor-modified/boost/smart_ptr/detail/spinlock_sync.hpp +0 -94
@@ -56,7 +56,7 @@ module CxxCodeBuilder
56
56
  def initialize(&block)
57
57
  @indent_string = "\t"
58
58
  @indent_level = 0
59
- @code = ""
59
+ @code = String.new
60
60
 
61
61
  if block
62
62
  instance_eval(&block)
data/build/test_basics.rb CHANGED
@@ -46,7 +46,7 @@ end
46
46
 
47
47
  desc "Install developer dependencies"
48
48
  task 'test:install_deps' do
49
- gem_install = PlatformInfo.gem_command + " install --no-rdoc --no-ri"
49
+ gem_install = PlatformInfo.gem_command + " install --no-document"
50
50
  gem_install = "#{PlatformInfo.ruby_sudo_command} #{gem_install}" if boolean_option('SUDO')
51
51
  default = boolean_option('DEVDEPS_DEFAULT', true)
52
52
  install_base_deps = boolean_option('BASE_DEPS', default)
@@ -82,13 +82,14 @@ end
82
82
 
83
83
  def bundler_version
84
84
  `bundle --version` =~ /version (.+)/
85
+ `gem info --quiet --remote --exact bundler`.lines.first =~ /bundler \((.+)\)/ if $1.nil?
85
86
  Gem::Version.new($1)
86
87
  end
87
88
 
88
89
  def bundler_too_old?
89
- Gem::Version.new(bundler_version) < Gem::Version.new("1.1.10")
90
+ bundler_version < Gem::Version.new("1.1.10")
90
91
  end
91
92
 
92
93
  def bundler_too_new?
93
- Gem::Version.new(bundler_version) >= Gem::Version.new("2.1.0")
94
+ bundler_version >= Gem::Version.new("2.1.0")
94
95
  end
@@ -220,34 +220,34 @@ def copy_dependencies(cflags)
220
220
  else
221
221
  openssl_path = '/usr/include/openssl'
222
222
  end
223
- done = false
224
- while !done
223
+
224
+ loop do
225
225
  compiler_output = `c++ test.cpp -c -I#{openssl_path}/include -I. -I.. #{cflags.join(" ")} 2>&1`
226
226
  File.unlink('test.o') if File.exist?('test.o')
227
- missing_headers = compiler_output.
228
- split("\n").
229
- grep(/(error: .*: No such file|fatal error: '.*' file not found)/).
230
- reject{|s| s =~ /\/usr\/include\// }.
231
- map do |line|
232
- if line =~ /error: (.*): No such file/
233
- file = $1
234
- elsif line =~ /fatal error: '(.*)' file not found/
235
- file = $1
236
- else
237
- abort "Bug"
238
- end
239
- if file =~ /^boost\//
240
- file
241
- else
242
- line =~ /(.*?):/
243
- source = $1
244
- File.dirname(source) + "/" + file
227
+ missing_headers = compiler_output.lines.
228
+ grep(/(error: .*: No such file|fatal error: '.*' file not found)/).
229
+ reject{|s| s =~ /\/usr\/include\// }.
230
+ map do |line|
231
+ if line =~ /error: (.*): No such file/
232
+ file = $1
233
+ elsif line =~ /fatal error: '(.*)' file not found/
234
+ file = $1
235
+ else
236
+ abort "Bug"
237
+ end
238
+
239
+ if file =~ /^boost\//
240
+ file
241
+ else
242
+ line =~ /(.*?):/
243
+ source = $1
244
+ File.dirname(source) + "/" + file
245
+ end
245
246
  end
246
- end
247
247
  missing_headers.each do |header|
248
248
  install("#{BOOST_DIR}/#{header}", header)
249
249
  end
250
- done = missing_headers.empty?
250
+ break if missing_headers.empty?
251
251
  end
252
252
  end
253
253
 
@@ -265,27 +265,41 @@ def start
265
265
  prepare
266
266
  copy_essential_files
267
267
  [
268
- "-std=c++98",
269
- "-std=c++03",
270
- "-std=gnu++98",
271
- "-std=gnu++03",
272
- "-std=c++11",
273
- "-std=gnu++11",
274
- "-std=c++14",
275
- "-std=gnu++14",
276
- "-std=c++17",
277
- "-std=gnu++17",
278
- "-std=c++20",
279
- "-std=gnu++20",
280
- "-std=c++0x",
281
- "-std=gnu++0x",
282
- ""
283
- ].product(["-m32","-m64",""]).each do |flags|
284
- copy_dependencies(flags)
285
- end
268
+ 14,
269
+ 17,
270
+ 20,
271
+ 23,
272
+ 26,
273
+ ].product(['c++', 'gnu++'])
274
+ .map{|v,l| "-std=#{l}#{v}" }
275
+ .push("")
276
+ .product(["-m64",""])
277
+ .each do |flags|
278
+ copy_dependencies(flags)
279
+ end
286
280
  ensure
287
281
  cleanup
288
282
  end
289
283
  end
290
284
 
291
285
  start
286
+
287
+ #### Magic bash editing buffer #################
288
+ ################################################
289
+ ################################################
290
+ ################################################
291
+ ################################################
292
+ ################################################
293
+ ################################################
294
+ ################################################
295
+ ################################################
296
+ ################################################
297
+ ################################################
298
+ ################################################
299
+ ################################################
300
+ ################################################
301
+ ################################################
302
+ ################################################
303
+ ################################################
304
+ ################################################
305
+ ################################################
@@ -43,6 +43,10 @@ EXCLUDE_NAMES = %w{
43
43
  deque
44
44
  queue
45
45
  limits
46
+ thread
47
+ atomic
48
+ mutex
49
+ condition_variable
46
50
  hash_map
47
51
  ext/hash_map
48
52
  cctype
data/dev/ruby_server.rb CHANGED
@@ -135,7 +135,7 @@ private
135
135
  def handle_next_client(forward_connection)
136
136
  client = @server.accept
137
137
  begin
138
- buffer = "".force_encoding("binary")
138
+ buffer = String.new(encoding: Encoding::BINARY)
139
139
  while true
140
140
  begin
141
141
  read_header(client, buffer)
data/package.json CHANGED
@@ -14,7 +14,7 @@
14
14
  "express": "^4.19.2",
15
15
  "jquery": "^3.7.1",
16
16
  "mini-css-extract-plugin": "^2.7.6",
17
- "mocha": "^9.2.2",
17
+ "mocha": "^11.1.0",
18
18
  "multer": "^1.4.4-lts.1",
19
19
  "preact": "^8.5.3",
20
20
  "should": "^2.1.1",
@@ -193,7 +193,7 @@ void processAndLogNewSpawnException(SpawningKit::SpawnException &e, const Option
193
193
  getSystemTempDir());
194
194
  fd = mkstemp(filename);
195
195
  #endif
196
- FdGuard guard(fd, NULL, 0, true);
196
+ FdGuard guard(fd, nullptr, 0);
197
197
  if (fd == -1) {
198
198
  int e = errno;
199
199
  throw SystemException("Cannot generate a temporary filename",
@@ -89,10 +89,10 @@ private:
89
89
  Connection connect() const {
90
90
  Connection connection;
91
91
  P_TRACE(3, "Connecting to " << address);
92
- NConnect_State state(address, __FILE__, __LINE__);
93
- connection.ready = state.connectToServer();
92
+ auto result = createNonBlockingSocketConnection(address, __FILE__, __LINE__);
93
+ connection.ready = result.second;
94
94
  connection.fail = true;
95
- connection.fd = state.getFd().detach();
95
+ connection.fd = result.first;
96
96
  connection.wantKeepAlive = false;
97
97
  P_LOG_FILE_DESCRIPTOR_PURPOSE(connection.fd, "App " << pid << " connection");
98
98
  return connection;
@@ -207,10 +207,9 @@ public:
207
207
  __FILE__, __LINE__);
208
208
 
209
209
  // Create client socket (non-blocking)
210
- NUnix_State clientState;
211
- setupNonBlockingUnixSocket(clientState, socketPath, __FILE__, __LINE__);
212
- bool immediatelyConnected = connectToUnixServer(clientState);
213
- connection.first = std::move(clientState.fd);
210
+ auto nbcResult = createNonBlockingUnixSocketConnection( socketPath, __FILE__, __LINE__);
211
+ bool immediatelyConnected = nbcResult.second;
212
+ connection.first = FileDescriptor(nbcResult.first, nullptr, 0);
214
213
 
215
214
  // Accept connection (blocking)
216
215
  FileDescriptor serverSideFd(oxt::syscalls::accept(serverFd, NULL, NULL),
@@ -40,7 +40,6 @@
40
40
  #include <ConfigKit/TableTranslator.h>
41
41
  #include <ConfigKit/PrefixTranslator.h>
42
42
  #include <ServerKit/Context.h>
43
- #include <ServerKit/llversion.h>
44
43
  #include <ServerKit/HttpServer.h>
45
44
  #include <WrapperRegistry/Registry.h>
46
45
  #include <Core/Controller/Config.h>
@@ -150,7 +149,7 @@ using namespace std;
150
149
  * security_update_checker_interval unsigned integer - default(86400)
151
150
  * security_update_checker_proxy_url string - -
152
151
  * security_update_checker_url string - default("https://securitycheck.phusionpassenger.com/v1/check.json")
153
- * server_software string - default("Phusion_Passenger/6.0.27")
152
+ * server_software string - default("Phusion_Passenger/6.1.1")
154
153
  * show_version_in_header boolean - default(true)
155
154
  * single_app_mode_app_root string - default,read_only
156
155
  * single_app_mode_app_start_command string - read_only
@@ -353,10 +352,6 @@ private:
353
352
 
354
353
  Json::Value updates;
355
354
  updates["server_software"] = serverSoftware;
356
- if (effectiveValues["integration_mode"].asString() == "standalone" &&
357
- effectiveValues["standalone_engine"].asString()=="builtin") {
358
- updates["web_server_version"] = llhttp_version();
359
- }
360
355
  return updates;
361
356
  }
362
357
 
@@ -118,7 +118,7 @@ parseControllerBenchmarkMode(const StaticString &mode) {
118
118
  * old_routing boolean - default(false),read_only
119
119
  * request_freelist_limit unsigned integer - default(1024)
120
120
  * response_buffer_high_watermark unsigned integer - default(134217728)
121
- * server_software string - default("Phusion_Passenger/6.0.27")
121
+ * server_software string - default("Phusion_Passenger/6.1.1")
122
122
  * show_version_in_header boolean - default(true)
123
123
  * start_reading_after_accept boolean - default(true)
124
124
  * stat_throttle_rate unsigned integer - default(10)
@@ -88,6 +88,7 @@
88
88
  #include <Utils.h>
89
89
  #include <Utils/Timer.h>
90
90
  #include <IOTools/MessageIO.h>
91
+ #include <IOTools/IOUtils.h>
91
92
  #include <Core/OptionParser.h>
92
93
  #include <Core/Controller.h>
93
94
  #include <Core/ApiServer.h>
@@ -33,6 +33,7 @@
33
33
  #include <oxt/backtrace.hpp>
34
34
 
35
35
  #include <SecurityKit/Crypto.h>
36
+ #include <ServerKit/llversion.h>
36
37
  #include <ResourceLocator.h>
37
38
  #include <Exceptions.h>
38
39
  #include <StaticString.h>
@@ -568,7 +569,15 @@ public:
568
569
  bodyJson["passenger_version"] = PASSENGER_VERSION;
569
570
 
570
571
  bodyJson["server_integration"] = sessionState.config["server_identifier"];
571
- bodyJson["server_version"] = sessionState.config["web_server_version"];
572
+
573
+ if (bodyJson["server_integration"].asString() == "standalone" &&
574
+ sessionState.config["web_server_version"].isNull()) {
575
+ P_INFO("Config web server version was Null while using standalone integration, assuming builtin engine.");
576
+ bodyJson["server_version"] = llhttp_version();
577
+ }else {
578
+ bodyJson["server_version"] = sessionState.config["web_server_version"];
579
+ }
580
+
572
581
  bodyJson["curl_static"] = isCurlStaticallyLinked();
573
582
 
574
583
  string nonce;
@@ -28,7 +28,6 @@
28
28
 
29
29
  #include <oxt/tracable_exception.hpp>
30
30
  #include <string>
31
- #include <stdexcept>
32
31
  #include <limits>
33
32
 
34
33
  #include <Constants.h>
@@ -34,7 +34,7 @@
34
34
  #include <oxt/backtrace.hpp>
35
35
  #include <string>
36
36
  #include <vector>
37
- #include <stdexcept>
37
+ #include <exception>
38
38
  #include <cstddef>
39
39
  #include <cstdlib>
40
40
  #include <cerrno>
@@ -50,6 +50,7 @@
50
50
  #include <FileDescriptor.h>
51
51
  #include <FileTools/FileManip.h>
52
52
  #include <FileTools/PathManip.h>
53
+ #include <IOTools/IOUtils.h>
53
54
  #include <Utils.h>
54
55
  #include <Utils/ScopeGuard.h>
55
56
  #include <SystemTools/SystemTime.h>
@@ -196,8 +197,18 @@ private:
196
197
 
197
198
  while (true) {
198
199
  unsigned long long timeout = 100000;
200
+ bool pingable;
199
201
 
200
- if (pingTcpServer("127.0.0.1", session.expectedStartPort, &timeout)) {
202
+ try {
203
+ pingable = pingTcpServer("127.0.0.1", session.expectedStartPort, &timeout);
204
+ } catch (const std::exception &e) {
205
+ P_WARN("Error checking whether 127.0.0.1:" << session.expectedStartPort
206
+ << " is connectable: " << e.what());
207
+ syscalls::usleep(50000);
208
+ continue;
209
+ }
210
+
211
+ if (pingable) {
201
212
  boost::lock_guard<boost::mutex> l(syncher);
202
213
  socketIsNowPingable = true;
203
214
  finishState = FINISH_SUCCESS;
@@ -550,10 +550,10 @@ dumpFileDescriptorInfo(AbortHandlerWorkingState &state) {
550
550
  }
551
551
 
552
552
  static void
553
- dumpWithCrashWatch(AbortHandlerWorkingState &state) {
553
+ dumpWithCrashWatch(AbortHandlerWorkingState &state, bool toStderr) {
554
554
  int fd = -1;
555
555
 
556
- if (state.crashLogDirFd != -1) {
556
+ if (state.crashLogDirFd != -1 && !toStderr) {
557
557
  fd = openat(state.crashLogDirFd, "backtrace.log", O_WRONLY | O_CREAT | O_TRUNC, 0600);
558
558
  if (fd != -1) {
559
559
  printCrashLogFileCreated(state, "backtrace.log");
@@ -594,7 +594,25 @@ dumpWithCrashWatch(AbortHandlerWorkingState &state) {
594
594
  write_nowarn(STDERR_FILENO, state.messageBuf, pos - state.messageBuf);
595
595
 
596
596
  } else {
597
- waitpid(child, NULL, 0);
597
+ int status = -1;
598
+ int ret = waitpid(child, &status, 0);
599
+ int e = errno;
600
+ if (ret == -1 || status != 0) {
601
+ pos = state.messageBuf;
602
+ pos = ASSU::appendData(pos, end, "ERROR running 'crash-watch' (");
603
+ if (ret == -1) {
604
+ pos = ASSU::appendData(pos, end, "waitpid() failed, errno=");
605
+ pos = ASSU::appendInteger<int, 10>(pos, end, e);
606
+ } else if (WIFSIGNALED(status)) {
607
+ pos = ASSU::appendData(pos, end, "exited with signal ");
608
+ pos = ASSU::appendInteger<int, 10>(pos, end, WTERMSIG(status));
609
+ } else {
610
+ pos = ASSU::appendData(pos, end, "exit status ");
611
+ pos = ASSU::appendInteger<int, 10>(pos, end, WEXITSTATUS(status));
612
+ }
613
+ pos = ASSU::appendData(pos, end, ")\n");
614
+ write_nowarn(STDERR_FILENO, state.messageBuf, pos - state.messageBuf);
615
+ }
598
616
  }
599
617
 
600
618
  if (fd != -1) {
@@ -852,7 +870,7 @@ dumpDiagnostics(AbortHandlerWorkingState &state) {
852
870
  pos = ASSU::appendData(pos, end, " ] Dumping a backtrace with crash-watch...\n");
853
871
  #endif
854
872
  write_nowarn(STDERR_FILENO, state.messageBuf, pos - state.messageBuf);
855
- dumpWithCrashWatch(state);
873
+ dumpWithCrashWatch(state, ctx->config->dumpCrashWatchToStderr);
856
874
  } else {
857
875
  write_nowarn(STDERR_FILENO, "\n", 1);
858
876
  }
@@ -969,7 +987,7 @@ forkAndRedirectToTeeAndMainLogFile(const char *crashLogDir) {
969
987
  execlp("/usr/bin/cat", "cat", (char *) 0);
970
988
  ASSU::printError("ERROR: cannot execute 'tee' or 'cat'; crash log will be lost!\n");
971
989
  _exit(1);
972
- return false;
990
+ return false; // Unreachable
973
991
  } else if (pid == -1) {
974
992
  ASSU::printError("ERROR: cannot fork a process for executing 'tee'\n");
975
993
  return false;
@@ -26,8 +26,6 @@
26
26
  #ifndef _PASSENGER_AGENT_FUNDAMENTALS_ABORT_HANDLER_H_
27
27
  #define _PASSENGER_AGENT_FUNDAMENTALS_ABORT_HANDLER_H_
28
28
 
29
- #include <cstddef>
30
-
31
29
  namespace Passenger {
32
30
  class ResourceLocator;
33
31
  }
@@ -38,7 +36,7 @@ namespace Fundamentals {
38
36
 
39
37
 
40
38
  struct AbortHandlerConfig {
41
- static const unsigned int MAX_DIAGNOSTICS_DUMPERS = 5;
39
+ static constexpr unsigned int MAX_DIAGNOSTICS_DUMPERS = 5;
42
40
  typedef void (*DiagnosticsDumperFunc)(void *userData);
43
41
 
44
42
  struct DiagnosticsDumper {
@@ -56,26 +54,16 @@ struct AbortHandlerConfig {
56
54
  };
57
55
 
58
56
 
59
- char *ruby;
60
- char **origArgv;
61
- unsigned int randomSeed;
62
- bool dumpWithCrashWatch;
63
- bool beep;
64
- bool stopProcess;
65
- bool forceTerminateProcess;
66
- ResourceLocator *resourceLocator;
57
+ char *ruby = nullptr;
58
+ char **origArgv = nullptr;
59
+ unsigned int randomSeed = 0;
60
+ bool dumpWithCrashWatch = false;
61
+ bool dumpCrashWatchToStderr = false;
62
+ bool beep = false;
63
+ bool stopProcess = false;
64
+ bool forceTerminateProcess = false;
65
+ ResourceLocator *resourceLocator = nullptr;
67
66
  DiagnosticsDumper diagnosticsDumpers[MAX_DIAGNOSTICS_DUMPERS];
68
-
69
- AbortHandlerConfig()
70
- : ruby(NULL),
71
- origArgv(NULL),
72
- randomSeed(0),
73
- dumpWithCrashWatch(false),
74
- beep(false),
75
- stopProcess(false),
76
- forceTerminateProcess(false),
77
- resourceLocator(NULL)
78
- { }
79
67
  };
80
68
 
81
69
  void installAbortHandler(const AbortHandlerConfig *config);
@@ -465,6 +465,7 @@ maybeInitializeAbortHandler() {
465
465
  config->origArgv = context->origArgv;
466
466
  config->randomSeed = context->randomSeed;
467
467
  config->dumpWithCrashWatch = getEnvBool("PASSENGER_DUMP_WITH_CRASH_WATCH", true);
468
+ config->dumpCrashWatchToStderr = getEnvBool("PASSENGER_DUMP_CRASH_WATCH_TO_STDERR", false);
468
469
  config->beep = getEnvBool("PASSENGER_BEEP_ON_ABORT");
469
470
  config->stopProcess = getEnvBool("PASSENGER_STOP_ON_ABORT");
470
471
  config->forceTerminateProcess = getEnvBool("PASSENGER_FORCE_TERMINATE_ON_ABORT");
@@ -139,7 +139,7 @@ using namespace std;
139
139
  * security_update_checker_interval unsigned integer - default(86400)
140
140
  * security_update_checker_proxy_url string - -
141
141
  * security_update_checker_url string - default("https://securitycheck.phusionpassenger.com/v1/check.json")
142
- * server_software string - default("Phusion_Passenger/6.0.27")
142
+ * server_software string - default("Phusion_Passenger/6.1.1")
143
143
  * setsid boolean - default(false)
144
144
  * show_version_in_header boolean - default(true)
145
145
  * single_app_mode_app_root string - default,read_only
@@ -67,6 +67,11 @@ extern "C" const command_rec passenger_commands[] = {
67
67
  NULL,
68
68
  RSRC_CONF,
69
69
  "Use specified HTTP/SOCKS proxy for Phusion Passenger(R) anonymous telemetry collection."),
70
+ AP_INIT_TAKE1("PassengerAppConnectTimeout",
71
+ (Take1Func) cmd_passenger_app_connect_timeout,
72
+ NULL,
73
+ RSRC_CONF | ACCESS_CONF,
74
+ "A timeout for application to accept socket connections."),
70
75
  AP_INIT_TAKE1("PassengerAppEnv",
71
76
  (Take1Func) cmd_passenger_app_env,
72
77
  NULL,
@@ -159,6 +159,11 @@ void
159
159
  ConfigManifestGenerator::autoGenerated_setAppConfigDefaults() {
160
160
  Json::Value &defaultAppConfigContainer = manifest["default_application_configuration"];
161
161
 
162
+ addOptionsContainerStaticDefaultInt(
163
+ defaultAppConfigContainer,
164
+ "PassengerAppConnectTimeout",
165
+ DEFAULT_CONNECT_TIMEOUT);
166
+
162
167
  addOptionsContainerStaticDefaultStr(
163
168
  defaultAppConfigContainer,
164
169
  "PassengerAppEnv",
@@ -98,6 +98,20 @@ cmd_passenger_anonymous_telemetry_proxy(cmd_parms *cmd, void *pcfg, const char *
98
98
  return NULL;
99
99
  }
100
100
 
101
+ static const char *
102
+ cmd_passenger_app_connect_timeout(cmd_parms *cmd, void *pcfg, const char *arg) {
103
+ const char *err = ap_check_cmd_context(cmd, NOT_IN_FILES);
104
+ if (err != NULL) {
105
+ return err;
106
+ }
107
+
108
+ DirConfig *config = (DirConfig *) pcfg;
109
+ config->mAppConnectTimeoutSourceFile = cmd->directive->filename;
110
+ config->mAppConnectTimeoutSourceLine = cmd->directive->line_num;
111
+ config->mAppConnectTimeoutExplicitlySet = true;
112
+ return setIntConfig(cmd, arg, config->mAppConnectTimeout, 1);
113
+ }
114
+
101
115
  static const char *
102
116
  cmd_passenger_app_env(cmd_parms *cmd, void *pcfg, const char *arg) {
103
117
  const char *err = ap_check_cmd_context(cmd, NOT_IN_FILES);
@@ -52,6 +52,7 @@ namespace Apache2Module {
52
52
  static void
53
53
  createDirConfig_autoGenerated(DirConfig *config) {
54
54
  config->mAllowEncodedSlashes = Apache2Module::UNSET;
55
+ config->mAppConnectTimeout = UNSET_INT_VALUE;
55
56
  /*
56
57
  * config->mAppEnv: default initialized
57
58
  */
@@ -133,6 +134,7 @@ createDirConfig_autoGenerated(DirConfig *config) {
133
134
  */
134
135
 
135
136
  config->mAllowEncodedSlashesSourceLine = 0;
137
+ config->mAppConnectTimeoutSourceLine = 0;
136
138
  config->mAppEnvSourceLine = 0;
137
139
  config->mAppGroupNameSourceLine = 0;
138
140
  config->mAppLogFileSourceLine = 0;
@@ -172,6 +174,7 @@ createDirConfig_autoGenerated(DirConfig *config) {
172
174
  config->mUserSourceLine = 0;
173
175
 
174
176
  config->mAllowEncodedSlashesExplicitlySet = false;
177
+ config->mAppConnectTimeoutExplicitlySet = false;
175
178
  config->mAppEnvExplicitlySet = false;
176
179
  config->mAppGroupNameExplicitlySet = false;
177
180
  config->mAppLogFileExplicitlySet = false;
@@ -52,6 +52,9 @@ namespace Apache2Module {
52
52
 
53
53
  static void
54
54
  constructRequestHeaders_autoGenerated(request_rec *r, DirConfig *config, std::string &result) {
55
+ addHeader(r, result, StaticString("!~PASSENGER_APP_CONNECT_TIMEOUT",
56
+ sizeof("!~PASSENGER_APP_CONNECT_TIMEOUT") - 1),
57
+ config->mAppConnectTimeout);
55
58
  addHeader(result, StaticString("!~PASSENGER_APP_ENV",
56
59
  sizeof("!~PASSENGER_APP_ENV") - 1),
57
60
  config->mAppEnv);
@@ -64,6 +64,17 @@ ConfigManifestGenerator::autoGenerated_generateConfigManifestForDirConfig(server
64
64
  pdconf->mAllowEncodedSlashesSourceLine);
65
65
  hierarchyMember["value"] = pdconf->mAllowEncodedSlashes == Apache2Module::ENABLED;
66
66
  }
67
+ if (pdconf->mAppConnectTimeoutExplicitlySet) {
68
+ findOrCreateAppAndLocOptionsContainers(serverRec, csconf, cdconf,
69
+ pdconf, context, &appOptionsContainer, &locOptionsContainer);
70
+ Json::Value &optionContainer = findOrCreateOptionContainer(*appOptionsContainer,
71
+ "PassengerAppConnectTimeout",
72
+ sizeof("PassengerAppConnectTimeout") - 1);
73
+ Json::Value &hierarchyMember = addOptionContainerHierarchyMember(optionContainer,
74
+ pdconf->mAppConnectTimeoutSourceFile,
75
+ pdconf->mAppConnectTimeoutSourceLine);
76
+ hierarchyMember["value"] = pdconf->mAppConnectTimeout;
77
+ }
67
78
  if (pdconf->mAppEnvExplicitlySet) {
68
79
  findOrCreateAppAndLocOptionsContainers(serverRec, csconf, cdconf,
69
80
  pdconf, context, &appOptionsContainer, &locOptionsContainer);
@@ -52,6 +52,10 @@ mergeDirConfig_autoGenerated(DirConfig *config, DirConfig *base, DirConfig *add)
52
52
  (add->mAllowEncodedSlashes != Apache2Module::UNSET)
53
53
  ? add->mAllowEncodedSlashes
54
54
  : base->mAllowEncodedSlashes;
55
+ config->mAppConnectTimeout =
56
+ (add->mAppConnectTimeout != UNSET_INT_VALUE)
57
+ ? add->mAppConnectTimeout
58
+ : base->mAppConnectTimeout;
55
59
  config->mAppEnv =
56
60
  (!add->mAppEnv.empty())
57
61
  ? add->mAppEnv
@@ -202,6 +206,7 @@ mergeDirConfig_autoGenerated(DirConfig *config, DirConfig *base, DirConfig *add)
202
206
  : base->mUser;
203
207
 
204
208
  config->mAllowEncodedSlashesSourceFile = add->mAllowEncodedSlashesSourceFile;
209
+ config->mAppConnectTimeoutSourceFile = add->mAppConnectTimeoutSourceFile;
205
210
  config->mAppEnvSourceFile = add->mAppEnvSourceFile;
206
211
  config->mAppGroupNameSourceFile = add->mAppGroupNameSourceFile;
207
212
  config->mAppLogFileSourceFile = add->mAppLogFileSourceFile;
@@ -241,6 +246,7 @@ mergeDirConfig_autoGenerated(DirConfig *config, DirConfig *base, DirConfig *add)
241
246
  config->mUserSourceFile = add->mUserSourceFile;
242
247
 
243
248
  config->mAllowEncodedSlashesSourceLine = add->mAllowEncodedSlashesSourceLine;
249
+ config->mAppConnectTimeoutSourceLine = add->mAppConnectTimeoutSourceLine;
244
250
  config->mAppEnvSourceLine = add->mAppEnvSourceLine;
245
251
  config->mAppGroupNameSourceLine = add->mAppGroupNameSourceLine;
246
252
  config->mAppLogFileSourceLine = add->mAppLogFileSourceLine;
@@ -280,6 +286,7 @@ mergeDirConfig_autoGenerated(DirConfig *config, DirConfig *base, DirConfig *add)
280
286
  config->mUserSourceLine = add->mUserSourceLine;
281
287
 
282
288
  config->mAllowEncodedSlashesExplicitlySet = add->mAllowEncodedSlashesExplicitlySet;
289
+ config->mAppConnectTimeoutExplicitlySet = add->mAppConnectTimeoutExplicitlySet;
283
290
  config->mAppEnvExplicitlySet = add->mAppEnvExplicitlySet;
284
291
  config->mAppGroupNameExplicitlySet = add->mAppGroupNameExplicitlySet;
285
292
  config->mAppLogFileExplicitlySet = add->mAppLogFileExplicitlySet;